.tabs{grid-template-columns:repeat(11,1fr)}
.companion-intro{display:flex;align-items:center;justify-content:space-between;gap:24px}.companion-intro h2{margin:4px 0 6px;font-size:28px}.companion-intro p{margin:0;color:var(--muted)}
.catalog-metrics{display:flex;gap:8px}.catalog-metrics>div{min-width:105px;padding:11px;border:1px solid var(--line);border-radius:12px;background:#081520;text-align:center}.catalog-metrics b,.catalog-metrics span{display:block}.catalog-metrics b{color:var(--gold);font-size:22px}.catalog-metrics span{color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:900}
.filters{display:grid;grid-template-columns:2fr repeat(5,1fr);gap:12px}.companion-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-auto-rows:164px;gap:11px;max-height:600px;overflow:auto;padding:2px 5px 2px 2px}
.companion-card{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:11px;height:100%;min-height:0;padding:10px;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#091722;color:#fff;text-align:left;cursor:pointer}.companion-card:hover{border-color:#4d809e;transform:translateY(-1px)}.companion-card.active{border-color:var(--gold);background:#2b2610;box-shadow:0 0 0 1px #ffd34e55}.companion-card.premium:before{content:"";position:absolute;inset:-1px;border:2px solid #b68a19;border-radius:15px;pointer-events:none}.companion-card>span:last-child{min-width:0}.companion-card img{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 5px 7px #0008)}.companion-card strong{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:16px;line-height:1.25}.companion-card small{display:block;color:var(--muted);font-size:12px;line-height:1.35}.mini-stats{margin-top:4px;color:#86eafa!important}.empty-results{grid-column:1/-1;color:var(--muted);padding:30px;text-align:center}
.card-fallback{display:grid;place-items:center;width:72px;height:72px;border:1px dashed #42657b;border-radius:12px;background:linear-gradient(145deg,#162d3d,#0b1a27);color:#b5d2e8;font-size:21px;font-weight:1000;letter-spacing:.04em}.future-note{width:max-content;margin-top:5px;padding:2px 6px;border:1px solid #43869b;border-radius:999px;color:#73eaff!important;font-size:9px!important;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.badge.availability{color:#a8c5dd}.portrait-fallback{font-size:54px!important;font-weight:1000;letter-spacing:.05em}
.stat-filter-field{position:relative}.multi-select{position:relative}.multi-select summary{display:flex;align-items:center;justify-content:space-between;width:100%;height:52px;padding:0 14px;border:1px solid #31829a;border-radius:12px;background:#071723;color:#fff;cursor:pointer;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.multi-select summary::-webkit-details-marker{display:none}.multi-select summary:after{content:"▾";flex:0 0 auto;margin-left:9px;color:#c8d8e6}.multi-select[open] summary{outline:2px solid var(--cyan);outline-offset:2px}.multi-select-menu{position:absolute;z-index:20;top:calc(100% + 7px);left:0;width:max(100%,230px);padding:9px;border:1px solid #31829a;border-radius:12px;background:#071723;box-shadow:0 16px 30px #000b}.stat-options{display:grid;gap:2px;max-height:300px;overflow:auto}.stat-options label{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:8px;color:#d9ecff;font-size:13px;font-weight:750;text-transform:none;letter-spacing:0;cursor:pointer}.stat-options label:hover{background:#142b3b}.stat-options input{width:17px;height:17px;margin:0;accent-color:var(--cyan)}.multi-select-menu button{width:100%;margin-top:8px;padding:8px;border:1px solid #416477;border-radius:8px;background:#122433;color:#fff;font-weight:850;cursor:pointer}.multi-select-menu button:disabled{opacity:.45;cursor:default}
.companion-hero{display:grid;grid-template-columns:minmax(250px,390px) 1fr;gap:28px;align-items:center}.portrait-stage{position:relative;display:grid;place-items:center;min-height:330px;border:1px solid #32667a;border-radius:18px;background:radial-gradient(circle at 50% 40%,#326477,#091722 72%);overflow:hidden}.portrait-stage img{position:relative;z-index:1;object-fit:contain;filter:drop-shadow(0 16px 17px #0009)}.portrait-stage .figure-full{width:100%;height:330px}.portrait-stage .figure-icon{width:220px;height:220px;border:1px solid #477587;border-radius:26px;background:#102534}.portrait-fallback{position:absolute;color:#7991a3;font-size:72px}.identity h2{font-size:42px;margin:8px 0 2px}.identity>p{color:var(--muted);margin:0 0 16px}.badges{display:flex;gap:7px;flex-wrap:wrap}.badge{border:1px solid currentColor;border-radius:999px;padding:4px 9px;color:var(--cyan);font-size:11px;font-weight:1000;text-transform:uppercase}.badge.premium{color:var(--gold)}.recommendation{padding:14px;border:1px solid var(--line);border-radius:14px;background:#091722}.recommendation>span{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}.recommendation small{display:block;color:var(--muted);margin-top:7px}.class-chips,.source-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:6px}.class-chip,.source-chip{padding:5px 9px;border:1px solid #3a7187;border-radius:999px;color:#cff8ff;font-weight:900;font-size:12px}.quick-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}.fact{padding:10px;border:1px solid var(--line);border-radius:11px;background:#0b1823}.fact span,.fact b{display:block}.fact span{color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:900}
.friendship-control{display:grid;grid-template-columns:minmax(240px,auto) 1fr 100px;gap:18px;align-items:center;margin-top:22px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#0a1721}.friendship-control h3{margin:3px 0}.friendship-control output{color:var(--gold)}.friendship-control input[type=range]{accent-color:var(--gold);width:100%}.friendship-control input[type=number]{height:48px;width:100%;padding:0 12px;border:1px solid #31829a;border-radius:10px;background:#071723;color:#fff}.level-note{color:var(--muted);font-size:13px;margin:8px 2px 0}
.stat-sections{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:15px}.stat-box,.info-card{padding:16px;border:1px solid var(--line);border-radius:15px;background:#081620}.stat-box.special{border-color:#8f761d;background:#1c1b0f}.stat-list{display:grid;gap:6px;margin-top:10px}.stat-row{display:flex;justify-content:space-between;gap:12px;padding:7px 9px;border-radius:8px;background:#122433}.stat-row span{color:#bdd8f3}.stat-row b{color:#fff}.special .stat-row b{color:var(--gold)}
.lower-grid{display:grid;grid-template-columns:minmax(260px,.7fr) 1.3fr;gap:12px;margin-top:12px}.info-card h3{margin:8px 0;font-size:20px}.profiles{display:grid;gap:8px;margin-top:9px}.profiles details{border:1px solid var(--line);border-radius:10px;background:#0d1c28;padding:9px 11px}.profiles summary{cursor:pointer;color:#eaf6ff;font-weight:900}.profiles p{white-space:pre-line;color:#bad6f2;margin:10px 0 2px}.methodology p{margin:6px 0 0;color:var(--muted)}
@media(max-width:1100px){.tabs{grid-template-columns:repeat(3,1fr)}.filters{grid-template-columns:repeat(2,1fr)}.search-field{grid-column:1/-1}.stat-sections{grid-template-columns:1fr 1fr}.stat-box:last-child{grid-column:1/-1}}
@media(max-width:760px){.companion-intro{align-items:stretch;flex-direction:column}.catalog-metrics{display:grid;grid-template-columns:repeat(3,1fr)}.catalog-metrics>div{min-width:0}.filters,.companion-hero,.stat-sections,.lower-grid{grid-template-columns:1fr}.search-field,.stat-box:last-child{grid-column:auto}.friendship-control{grid-template-columns:1fr 90px}.friendship-control>div{grid-column:1/-1}.quick-facts{grid-template-columns:1fr 1fr}.identity h2{font-size:33px}.portrait-stage,.portrait-stage img{min-height:270px;height:270px}}
@media(max-width:520px){.tabs{grid-template-columns:1fr 1fr}.companion-grid{grid-template-columns:1fr;grid-auto-rows:132px}.catalog-metrics{grid-template-columns:1fr}.quick-facts{grid-template-columns:1fr}}
