/* ============================================================
   AIKraft — Companies: list (/catalog/manufacturers)
   + hub (/catalog/manufacturers/[slug]). Light shell.
   ============================================================ */
.cm-top { padding:18px 0 0; }
.crumbs { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--text-3); font-family:var(--font-mono); flex-wrap:wrap; }
.crumbs a:hover { color:var(--text-2); } .crumbs .sep { opacity:.5; } .crumbs .cur { color:var(--text-2); }

.cm-hero { padding:22px 0 18px; }
.cm-hero h1 { font-size:32px; font-weight:600; letter-spacing:-.025em; margin:0; }
.cm-hero .lede { font-size:15px; color:var(--text-2); margin:8px 0 0; max-width:64ch; line-height:1.5; }

/* tabs */
.cm-tabs { display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; margin:16px 0 18px; }
.cm-tabs::-webkit-scrollbar { display:none; }
.cm-tab { white-space:nowrap; height:36px; padding:0 15px; border-radius:9px; background:var(--bg-elev); border:1px solid var(--border); font-size:13px; font-weight:500; color:var(--text-2); font-family:inherit; cursor:pointer; }
.cm-tab:hover { border-color:var(--border-strong); color:var(--text); }
.cm-tab.active { background:var(--accent); border-color:transparent; color:#fff; }

/* company cards grid */
.cm-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; padding-bottom:56px; }
.cmcard { display:flex; flex-direction:column; gap:13px; background:var(--bg-elev); border:1px solid var(--border); border-radius:16px; padding:18px; cursor:pointer; transition:border .15s, transform .15s, box-shadow .15s; }
.cmcard:hover { border-color:var(--border-strong); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.cmcard-head { display:flex; align-items:center; gap:13px; }
.cmcard-logo { width:46px; height:46px; border-radius:13px; display:inline-flex; align-items:center; justify-content:center; color:#fff; font-family:var(--font-mono); font-weight:700; font-size:15px; flex-shrink:0; box-shadow:var(--shadow-sm); }
.cmcard-id .nm { font-size:16px; font-weight:600; letter-spacing:-.01em; display:flex; align-items:center; gap:7px; }
.cmcard-id .country { font-size:12px; color:var(--text-3); font-family:var(--font-mono); display:flex; align-items:center; gap:5px; margin-top:2px; }
.cmcard-desc { font-size:13px; color:var(--text-2); line-height:1.45; flex:1; }
.cmcard-foot { display:flex; align-items:center; gap:8px 14px; flex-wrap:wrap; padding-top:13px; border-top:1px solid var(--border); font-size:12px; color:var(--text-3); font-family:var(--font-mono); }
.cmcard-foot b { color:var(--text); font-weight:600; }
.ru-badge { display:inline-flex; align-items:center; gap:5px; height:21px; padding:0 8px; border-radius:5px; font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; background:var(--green-soft); color:var(--green); }
.prov-badge { display:inline-flex; align-items:center; height:21px; padding:0 8px; border-radius:5px; font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; background:var(--accent-soft); color:var(--accent); }
.oss-badge { display:inline-flex; align-items:center; height:21px; padding:0 8px; border-radius:5px; font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; background:var(--amber-soft); color:var(--amber); }

/* ============ HUB ============ */
.ch-hero { padding:24px 0 28px; border-bottom:1px solid var(--border); }
.ch-hero-grid { display:grid; grid-template-columns:1fr 300px; gap:36px; align-items:start; }
.ch-id { display:flex; gap:18px; align-items:flex-start; }
.ch-logo { width:72px; height:72px; border-radius:18px; flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; color:#fff; font-family:var(--font-mono); font-weight:700; font-size:24px; box-shadow:var(--shadow-md); }
.ch-title h1 { margin:0; font-size:30px; font-weight:600; letter-spacing:-.025em; }
.ch-title .sub { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin-top:8px; font-size:13.5px; color:var(--text-2); }
.ch-title .sub .country { font-family:var(--font-mono); display:inline-flex; align-items:center; gap:6px; }
.ch-title .sub a.site { color:var(--accent); display:inline-flex; align-items:center; gap:5px; }
.ch-about { font-size:15px; color:var(--text-2); line-height:1.65; margin:20px 0 0; max-width:62ch; }
.ch-about p { margin:0 0 12px; } .ch-about strong { color:var(--text); font-weight:500; }
.ch-badges { display:flex; gap:6px; margin-top:16px; flex-wrap:wrap; }

/* facts panel */
.ch-facts { background:var(--bg-elev); border:1px solid var(--border); border-radius:14px; overflow:hidden; }
.ch-fact { display:flex; align-items:center; justify-content:space-between; padding:13px 16px; border-bottom:1px solid var(--border); font-size:13px; }
.ch-fact:last-child { border-bottom:none; }
.ch-fact .k { color:var(--text-3); }
.ch-fact .v { font-weight:500; text-align:right; }
.ch-fact .v.ok { color:var(--green); } .ch-fact .v.warn { color:var(--amber); } .ch-fact .v.no { color:var(--text-mute); }

/* sections */
.ch-sec { padding:38px 0; border-bottom:1px solid var(--border); }
.ch-sec:last-child { border-bottom:none; }
.ch-sec > h2 { font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.07em; color:var(--text-3); margin:0 0 4px; }
.ch-sec .lede { font-size:20px; font-weight:600; letter-spacing:-.01em; margin:4px 0 18px; }
.ch-sec .lede .cnt { color:var(--text-3); font-weight:400; font-size:15px; font-family:var(--font-mono); margin-left:8px; }

/* model/tool cards */
.ch-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.ch-item { display:flex; flex-direction:column; gap:10px; background:var(--bg-elev); border:1px solid var(--border); border-radius:12px; padding:15px; cursor:pointer; transition:border .12s, transform .12s; }
.ch-item:hover { border-color:var(--border-strong); transform:translateY(-1px); }
.ch-item-head { display:flex; align-items:center; gap:10px; }
.ch-item-head .logo { width:34px; height:34px; border-radius:9px; display:inline-flex; align-items:center; justify-content:center; color:#fff; font-family:var(--font-mono); font-weight:700; font-size:11px; flex-shrink:0; }
.ch-item-head .nm { font-size:14.5px; font-weight:600; }
.ch-item-head .nm .ver { color:var(--text-3); font-family:var(--font-mono); font-size:11px; font-weight:400; margin-left:4px; }
.ch-item-head .score { margin-left:auto; font-family:var(--font-mono); font-size:16px; font-weight:600; color:var(--accent); }
.ch-item .tag { font-size:12.5px; color:var(--text-2); line-height:1.4; flex:1; }
.ch-item .foot { display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding-top:10px; border-top:1px solid var(--border); font-size:11px; font-family:var(--font-mono); color:var(--text-3); }
.mini-badge { font-size:9.5px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; padding:2px 6px; border-radius:4px; background:var(--bg-elev-2); border:1px solid var(--border); color:var(--text-3); }
.mini-badge.ru { color:var(--green); background:var(--green-soft); border-color:rgba(16,185,129,.3); }
.mini-badge.oss { color:var(--amber); background:var(--amber-soft); border-color:rgba(245,158,11,.3); }

/* rating positions */
.ch-ratings { border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.ch-rrow { display:grid; grid-template-columns:1fr auto auto; gap:16px; align-items:center; padding:13px 16px; border-bottom:1px solid var(--border); font-size:13.5px; }
.ch-rrow:last-child { border-bottom:none; }
.ch-rrow:hover { background:var(--bg-hover); }
.ch-rrow .rt-name { font-weight:500; }
.ch-rrow .rt-model { font-size:12px; color:var(--text-3); font-family:var(--font-mono); }
.ch-rrow .rt-place { font-family:var(--font-mono); font-weight:600; color:var(--accent); }
.ch-rrow .rt-place small { color:var(--text-3); font-weight:400; }

/* news preview */
.ch-news { display:flex; flex-direction:column; gap:2px; }
.ch-news a { display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; padding:12px 10px; border-radius:8px; }
.ch-news a:hover { background:var(--bg-hover); }
.ch-news .ntag { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; padding:2px 7px; border-radius:4px; background:var(--accent-soft); color:var(--accent); white-space:nowrap; }
.ch-news .nt { font-size:13.5px; font-weight:500; line-height:1.35; }
.ch-news .nage { font-size:11px; color:var(--text-3); font-family:var(--font-mono); white-space:nowrap; }

/* RU availability */
.ru-summary { background:linear-gradient(135deg, var(--green-soft), transparent 70%), var(--bg-elev); border:1px solid rgba(16,185,129,.3); border-radius:14px; padding:20px 22px; }
.ru-summary h3 { margin:0 0 14px; font-size:15px; font-weight:600; display:flex; align-items:center; gap:9px; }
.ru-summary h3 svg { color:var(--green); }
.ru-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ru-item { display:flex; gap:10px; align-items:flex-start; font-size:13px; }
.ru-item .ic { width:16px; height:16px; flex-shrink:0; margin-top:1px; }
.ru-item.ok .ic { color:var(--green); } .ru-item.warn .ic { color:var(--amber); } .ru-item.no .ic { color:var(--text-mute); }
.ru-item b { color:var(--text); font-weight:500; }
.ru-item span { color:var(--text-2); }

/* sources */
.ch-sources { background:var(--bg-elev); border:1px solid var(--border); border-radius:12px; padding:8px 16px; }
.src-row { display:grid; grid-template-columns:1fr auto auto; gap:14px; align-items:center; padding:11px 0; border-bottom:1px solid var(--border); font-size:12.5px; }
.src-row:last-child { border-bottom:none; }
.src-row .field { color:var(--text-2); } .src-row .who { color:var(--text); font-family:var(--font-mono); font-size:12px; } .src-row .when { color:var(--text-3); font-family:var(--font-mono); font-size:11px; }

/* skeleton/states reuse .state-empty from styles.css */
.cm-skel { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.skel-cmcard { background:var(--bg-elev); border:1px solid var(--border); border-radius:16px; padding:18px; display:flex; flex-direction:column; gap:13px; }
.skel-cmcard .h { display:flex; gap:13px; align-items:center; }

@media (max-width:1024px){
  .cm-grid, .ch-cards, .cm-skel { grid-template-columns:repeat(2,1fr); }
  .ch-hero-grid { grid-template-columns:1fr; }
}
@media (max-width:680px){
  .cm-hero h1, .ch-title h1 { font-size:25px; }
  .cm-grid, .ch-cards, .cm-skel { grid-template-columns:1fr; }
  .ru-grid { grid-template-columns:1fr; }
}
