/* calc-stack: solo lo propio de la calculadora de servidor casero (el kit base está en calc.css). */
.stk .calc-in .stk-assume{font-size:.85rem;line-height:1.45;color:var(--mute-on-ink);margin:0;border-top:1px solid rgba(246,244,236,.2);padding-top:14px}
.stk .calc-in .stk-assume b{color:var(--paper)}
.stk .fld input[type=number]{font-size:1.05rem}

/* veredicto: vidrio claro sobre el papel */
.sum{background:linear-gradient(135deg,rgba(255,255,255,.78),rgba(255,255,255,.42)),var(--paper-2);-webkit-backdrop-filter:blur(14px) saturate(1.5);backdrop-filter:blur(14px) saturate(1.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 22px 44px -28px rgba(14,15,10,.45);gap:14px}
.sum-ok{border-color:var(--ink);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 0 0 6px var(--lime),0 22px 44px -28px rgba(14,15,10,.45)}
.sum-no{border-style:dashed}
.sum-t{margin:0;font-weight:700;font-size:1.05rem;line-height:1.4}
.sum-tip{margin:0;font-size:.95rem;line-height:1.45;padding:12px 14px;border-radius:12px;background:var(--lime);color:var(--ink)}
.badge.unk{background:var(--paper);color:var(--mute);border-style:dashed}
/* Evaluación incompleta: ni verde ni ámbar ni rojo; rayas para que no dependa solo del color */
.badge.inc{background:repeating-linear-gradient(135deg,var(--paper) 0 6px,rgba(14,15,10,.12) 6px 12px);color:var(--ink);border-style:dashed}
.sum-inc{border-style:dashed;border-color:var(--ink)}
.rw-inc .meter>.rc{background:rgba(14,15,10,.2)}
.sum-ex{font-size:.85rem;line-height:1.45;color:var(--mute);border-top:1px solid rgba(14,15,10,.2);padding-top:12px}
.sum-ex p{margin:0 0 4px;font-weight:700;color:var(--ink)}
.sum-ex ul{margin:0;padding-left:1.1em}
.stk .prose ul ul{margin-top:8px}
.rows{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.rw{display:grid;gap:8px}
.rw-n{font:700 1rem/1.2 var(--display);letter-spacing:-.01em}
.rw-t{margin:0;font-size:.9rem;line-height:1.45;color:var(--mute)}
.rw-t b{color:var(--ink)}
.rw-w{margin:0;font-size:.82rem;line-height:1.4;color:var(--mute);border-left:4px solid #FFD37A;padding-left:10px}
.stk .meter{position:relative}
.stk .meter>i{position:absolute;left:0;top:0;bottom:0;transition:width .5s var(--ease)}
.stk .meter>.rc{background:rgba(14,15,10,.32)}
.stk .meter>.mn{background:var(--ink)}
.rw-warn .meter>.rc{background:#FFD37A}
.rw-no .meter>.rc{background:rgba(138,29,18,.35)}
.rw-no .meter>.mn{background:#8A1D12}
.rw-unk .meter{opacity:.35}
.aporta{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.aporta li{display:grid;gap:2px;padding-top:8px;border-top:1px solid rgba(14,15,10,.2)}
.aporta li:first-child{border-top:0;padding-top:0}
.aporta span{font:600 .8rem/1.4 var(--mono);color:var(--mute);overflow-wrap:anywhere}

/* selector de repos */
.stk-h{font-size:1.5rem;letter-spacing:-.02em;margin:4px 0 0}
.stk-pick{display:grid;gap:18px}
.stk-grp{border:0;margin:0;padding:0;min-width:0;display:grid;gap:10px}
.stk-grp legend{font:700 .78rem/1.2 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--mute);padding:0 0 10px}
.stk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:12px}
.rcard{position:relative;display:flex;flex-direction:column;min-width:0}
.rcard input{position:absolute;opacity:0;width:44px;height:44px;top:0;right:0;margin:0;cursor:pointer;z-index:2}
.rcard label{flex:1;display:grid;align-content:start;gap:6px;min-height:44px;padding:16px 52px 14px 16px;cursor:pointer;border:2px solid var(--ink);border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.8),rgba(255,255,255,.45)),var(--paper-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.9);transition:background .2s,transform .35s var(--ease),box-shadow .2s}
.rcard label::after{content:"";position:absolute;top:14px;right:14px;width:22px;height:22px;border-radius:7px;border:2px solid var(--ink);background:var(--paper);background-repeat:no-repeat;background-position:center}
.rcard label:hover{transform:translateY(-2px)}
.rcard input:checked+label{background:var(--lime);box-shadow:0 0 0 3px var(--ink)}
.rcard input:checked+label::after{background-color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23C6FF3D' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10.5l4 4 8-9'/%3E%3C/svg%3E");background-size:14px}
.rcard input:focus-visible+label{outline:3px solid var(--ink);outline-offset:3px}
.rcard label b{font:800 1.15rem/1.15 var(--display);letter-spacing:-.02em}
.rcard .what{font-size:.88rem;line-height:1.35;color:var(--mute)}
.rcard input:checked+label .what{color:var(--ink)}
.rcard .spec{font:600 .78rem/1.35 var(--mono)}
.rcard .spec i{font-style:normal;color:var(--mute);display:inline-block;min-width:3.6em}
.rcard input:checked+label .spec i{color:var(--ink)}
.rcard .gpu{justify-self:start;font:700 .72rem/1 var(--mono);padding:.45em .7em;border-radius:999px;border:1.5px solid var(--ink);margin-top:4px}
.rcard .gpu-requerida{background:var(--ink);color:var(--lime)}
.rcard .gpu-opcional{border-style:dashed}
.rcard .lnk{display:inline-flex;align-items:center;gap:.4em;min-height:44px;padding:0 4px;font:700 .85rem/1 var(--body)}
.rcard .lnk svg{width:1em;height:1em}

/* tabla de requisitos */
.stk-tbl{margin-top:clamp(22px,3vw,36px);overflow-x:auto;border:2px solid var(--ink);border-radius:18px;background:var(--paper)}
.stk-tbl:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.stk-tbl table{width:100%;min-width:720px;border-collapse:collapse;font-size:.92rem}
.stk-tbl th,.stk-tbl td{text-align:left;padding:12px 14px;vertical-align:top}
.stk-tbl thead th{font:700 .74rem/1.2 var(--mono);letter-spacing:.05em;text-transform:uppercase;background:var(--ink);color:var(--lime);white-space:nowrap}
.stk-tbl tbody th{font:800 1rem/1.2 var(--display);white-space:nowrap}
.stk-tbl tbody tr:not(.nt) th,.stk-tbl tbody tr:not(.nt) td{border-top:2px solid var(--ink)}
.stk-tbl tbody tr:first-child th,.stk-tbl tbody tr:first-child td{border-top:0}
.stk-tbl tr.nt td{padding-top:0;font-size:.85rem;line-height:1.45;color:var(--mute)}
.stk-tbl small{color:var(--mute);font-size:.78rem}
.stk-tbl a{font-weight:700}

@media (max-width:900px){.stk .calc-in{position:static}}
@media (max-width:480px){.stk-grid{grid-template-columns:1fr}.rcard label{padding-right:48px}}
@media (prefers-reduced-motion:reduce){.rcard label,.stk .meter>i{transition:none}.rcard label:hover{transform:none}}
@media (prefers-reduced-transparency:reduce){.sum,.rcard label{-webkit-backdrop-filter:none;backdrop-filter:none}}
