/* =========================================================
   Альфа.Пуск — рабочее пространство (platform.html)
   ========================================================= */

body.app { background: var(--paper-2); }

/* ---------- App shell ---------- */
.app-shell { display: grid; grid-template-columns: 264px 1fr; min-height: 100vh; }

/* Backdrop всегда вне потока (fixed), не участвует в grid */
.side-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 55; opacity: 0; pointer-events: none; transition: opacity .2s; }
.side-backdrop.show { opacity: 1; pointer-events: auto; }

/* Sidebar */
.side {
  position: sticky; top: 0; align-self: start; height: 100vh; overflow-y: auto;
  background: var(--black); color: #fff; padding: 22px 18px; display: flex; flex-direction: column; gap: 8px;
}
.side__brand { display: flex; align-items: center; gap: 10px; padding: 6px 8px 18px; }
.side__brand img { height: 20px; }
.side__mark { display: none; height: 24px; }
.side-toggle {
  align-self: flex-end; width: 34px; height: 34px; border-radius: 10px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.75); display: inline-grid; place-items: center; margin-bottom: 6px;
  transition: background .16s, color .16s;
}
.side-toggle:hover { background: rgba(255,255,255,.14); color: #fff; }
.side-toggle svg { width: 18px; height: 18px; transition: transform .2s var(--ease); }

/* Свёрнутый сайдбар (только десктоп) */
@media (min-width: 901px) {
  .app-shell { transition: grid-template-columns .22s var(--ease); }
  .app-shell.is-collapsed { grid-template-columns: 78px 1fr; }
  .is-collapsed .side { padding: 22px 12px; }
  .is-collapsed .side-toggle { align-self: center; }
  .is-collapsed .side-toggle svg { transform: rotate(180deg); }
  .is-collapsed .side__logo, .is-collapsed .side__brand .brand__sep, .is-collapsed .side__brand b { display: none; }
  .is-collapsed .side__mark { display: block; }
  .is-collapsed .side__brand { justify-content: center; padding: 4px 0 16px; }
  .is-collapsed .side__progress { padding: 0 0 14px; }
  .is-collapsed .side__progress small { display: none; }
  .is-collapsed .side-link { justify-content: center; padding: 13px 0; }
  .is-collapsed .side-link span, .is-collapsed .side-link__n { display: none; }
  .is-collapsed .side__foot { text-align: center; }
  .is-collapsed .side__foot a:not(.btn-app), .is-collapsed .side__foot br { display: none; }
  .is-collapsed .side__foot .btn-app { font-size: 0; padding: 12px 0; }
  .is-collapsed .side__foot .btn-app .spark { font-size: 16px; }
}
.side__brand b { font-weight: 800; }
.side__brand .brand__sep { background: rgba(255,255,255,.2); }
.side__progress { padding: 0 8px 14px; }
.side__progress .progress { background: rgba(255,255,255,.12); }
.side__progress .progress__bar { background: var(--lime); }
.side__progress small { display: block; color: rgba(255,255,255,.5); font-size: 12px; margin-top: 8px; }
.side__nav { display: flex; flex-direction: column; gap: 4px; }
.side-link {
  display: flex; align-items: center; gap: 12px; padding: 12px 12px; border-radius: 12px;
  color: rgba(255,255,255,.7); font-weight: 600; font-size: 15px; transition: background .16s, color .16s;
  border: none; background: transparent; text-align: left; width: 100%; position: relative;
}
.side-link:hover { background: rgba(255,255,255,.08); color: #fff; }
.side-link.active { background: var(--red); color: #fff; }
.side-link svg { width: 20px; height: 20px; flex: none; }
.side-link__n { margin-left: auto; font-size: 12px; opacity: .6; }
.side-link.done .side-link__n { color: var(--lime); opacity: 1; }
.side-link.locked { opacity: .4; }
.side__foot { margin-top: auto; padding: 12px 8px 4px; }
.side__foot a:not(.btn) { display: block; color: rgba(255,255,255,.6); font-size: 15px; padding: 10px 0; }
.side__foot a:not(.btn) + a:not(.btn) { border-top: 1px solid rgba(255,255,255,.08); }
.side__foot a:hover { color: #fff; }

/* Main */
.main { min-width: 0; overflow-x: hidden; }
.topbar {
  position: sticky; top: 0; z-index: 20; height: 64px; background: rgba(244,241,234,.85);
  backdrop-filter: blur(12px); border-bottom: 1px solid var(--line);
  display: flex; align-items: center; gap: 16px; padding: 0 30px;
}
.topbar__title { font-weight: 800; font-size: 18px; }
.topbar__crumb { color: var(--gray-500); font-size: 14px; }
.topbar__actions { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--ink); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 15px; }
.moburger { display: none; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 10px; background: transparent; }
.moburger span { display:block; width:16px; height:2px; background: var(--ink); margin: 3px auto; }

.stage { padding: 34px 30px 80px; max-width: 1120px; }
.stage__head { margin-bottom: 26px; }
.stage__head h1 { font-size: clamp(26px, 3vw, 38px); }
.stage__head p { color: var(--gray-600, var(--gray-500)); margin-top: 8px; max-width: 640px; }

/* ---------- Overview ---------- */
.ov-hero { background: var(--ink); color: #fff; border-radius: var(--r-xl); padding: 36px; position: relative; overflow: hidden; }
.ov-hero::after { content:""; position:absolute; width: 280px; height: 280px; background: var(--red); border-radius:50%; right:-90px; top:-90px; opacity:.9; }
.ov-hero__in { position: relative; z-index: 1; max-width: 560px; }
.ov-hero .hero__cta { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.ov-hero h2 { font-size: clamp(24px,3vw,34px); margin: 14px 0; }
.ov-hero p { color: rgba(255,255,255,.75); }
.ov-steps { display: grid; grid-template-columns: repeat(5,1fr); gap: 14px; margin-top: 26px; }
.ov-step { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 18px; cursor: pointer; transition: transform .18s, box-shadow .18s; }
.ov-step:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.ov-step__ico { width: 42px; height: 42px; border-radius: 11px; display: grid; place-items: center; margin-bottom: 12px; color:#fff; }
.ov-step b { display: block; font-size: 15px; } .ov-step small { color: var(--gray-500); font-size: 12.5px; }
.ov-step__state { margin-top: 10px; font-size: 12px; font-weight: 700; }
.ov-step__state.todo { color: var(--gray-400); } .ov-step__state.done { color: var(--green); }
@media(max-width:900px){ .ov-steps { grid-template-columns: 1fr 1fr; } }

/* ---------- Форма идеи ---------- */
.form-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 30px; }
.form-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
@media(max-width:640px){ .form-2 { grid-template-columns: 1fr; } }
.range-row { display: flex; align-items: center; gap: 16px; }
.range-val { font-weight: 800; font-size: 18px; white-space: nowrap; min-width: 130px; text-align: right; }

/* ---------- AI loader ---------- */
.ai-loader { text-align: center; padding: 40px 0; }
.ai-loader__orb { width: 84px; height: 84px; margin: 0 auto 22px; position: relative; }
.ai-loader__orb::before, .ai-loader__orb::after { content:""; position: absolute; inset: 0; border-radius: 50%; border: 4px solid transparent; }
.ai-loader__orb::before { border-top-color: var(--red); animation: spin 1s linear infinite; }
.ai-loader__orb::after { inset: 12px; border-top-color: var(--lime); animation: spin 1.4s linear infinite reverse; }
@keyframes spin { to { transform: rotate(360deg); } }
.ai-loader__log { max-width: 420px; margin: 0 auto; text-align: left; }
.ai-loader__log li { padding: 9px 0 9px 30px; position: relative; color: var(--gray-500); opacity: .4; transition: opacity .3s, color .3s; }
.ai-loader__log li.on { opacity: 1; color: var(--ink); }
.ai-loader__log li::before { content:""; position:absolute; left:0; top:12px; width:16px;height:16px;border-radius:50%;border:2px solid var(--gray-300); }
.ai-loader__log li.on::before { border-color: var(--green); background: var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/10px no-repeat; }

/* ---------- Report ---------- */
.report { display: grid; gap: 20px; }
.report > *, .rgrid > *, .report__verdict > *, .plan > *, .fund-grid > *, .kpi-grid > * { min-width: 0; }
.report__verdict { display: grid; grid-template-columns: auto 1fr; gap: 28px; align-items: center; background: var(--ink); color: #fff; border-radius: var(--r-lg); padding: 30px; }
.report__verdict.v-green { background: linear-gradient(120deg,#1e2b12,#0e1408); }
.report__verdict.v-red { background: linear-gradient(120deg,#2b1210,#140807); }
.report__verdict.v-blue { background: linear-gradient(120deg,#111a2b,#080c14); }
.gauge { position: relative; width: 150px; height: 150px; flex: none; }
.gauge svg { width: 150px; height: 150px; transform: rotate(-90deg); }
.gauge circle { fill: none; stroke-width: 14; stroke-linecap: round; }
.gauge .bg { stroke: rgba(255,255,255,.12); }
.gauge .fg { stroke: var(--lime); stroke-dasharray: 420; stroke-dashoffset: 420; transition: stroke-dashoffset 1.3s var(--ease); }
.gauge.fg-red .fg { stroke: var(--red); } .gauge.fg-blue .fg { stroke: var(--blue); } .gauge.fg-green .fg { stroke: var(--lime); }
.gauge__v { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; }
.gauge__v b { font-size: 44px; font-weight: 900; line-height: 1; } .gauge__v span { font-size: 12px; color: rgba(255,255,255,.6); }
.report__verdict h3 { font-size: 26px; }
.badge-verdict { display: inline-block; padding: 6px 14px; border-radius: var(--r-pill); font-weight: 800; font-size: 13px; letter-spacing: .04em; margin-bottom: 10px; }
.badge-verdict.green { background: var(--lime); color: var(--ink); }
.badge-verdict.red { background: var(--red); color: #fff; }
.badge-verdict.blue { background: var(--blue); color: #fff; }
.report__verdict p { color: rgba(255,255,255,.75); }

.rgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media(max-width:820px){ .rgrid { grid-template-columns: 1fr; } .report__verdict { grid-template-columns: 1fr; text-align:center; justify-items:center; } }
.rcard { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px; }
.rcard h4 { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--gray-500); margin-bottom: 16px; }
.metric-row { display: flex; justify-content: space-between; align-items: baseline; padding: 10px 0; border-bottom: 1px solid var(--line); }
.metric-row:last-child { border: none; }
.metric-row span { color: var(--gray-600, var(--gray-500)); font-size: 14.5px; }
.metric-row b { font-size: 17px; font-weight: 800; }
.bar-mini { height: 8px; background: var(--gray-200); border-radius: 6px; overflow: hidden; margin-top: 6px; }
.bar-mini i { display: block; height: 100%; background: var(--red); border-radius: 6px; }
.comp-row { display:grid; grid-template-columns: 1fr auto; gap: 6px 12px; align-items:center; padding: 8px 0; }
.comp-row .nm { font-weight: 600; font-size: 14.5px; } .comp-row .sh { font-weight: 800; }
.comp-row .note { grid-column: 1/-1; color: var(--gray-500); font-size: 12.5px; margin-top:-2px; }

.risk { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.risk:last-child { border: none; }
.risk__dot { width: 10px; height: 10px; border-radius: 50%; margin-top: 6px; flex: none; }
.risk.high .risk__dot { background: var(--red); } .risk.mid .risk__dot { background: #E8A317; } .risk.low .risk__dot { background: var(--green); }
.risk b { display: block; } .risk span { color: var(--gray-500); font-size: 14px; }
.risk__lvl { margin-left: auto; font-size: 11px; font-weight: 800; text-transform: uppercase; align-self: center; }
.risk.high .risk__lvl { color: var(--red);} .risk.mid .risk__lvl{color:#B87908}.risk.low .risk__lvl{color:var(--green);}

.plan { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
@media(max-width:820px){ .plan { grid-template-columns: 1fr 1fr; } }
.plan__col { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-md); padding: 16px; }
.plan__d { font-weight: 800; color: var(--red); font-size: 13px; }
.plan__t { font-weight: 700; margin: 4px 0 10px; }
.plan__col li { font-size: 13px; color: var(--gray-600, var(--gray-500)); padding: 4px 0 4px 16px; position: relative; }
.plan__col li::before { content:""; position:absolute; left:0; top:11px; width:6px;height:6px;border-radius:50%;background:var(--gray-400); }

/* ---------- Funding ---------- */
.fund-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media(max-width:720px){ .fund-grid { grid-template-columns: 1fr; } }
.fund { background:#fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); padding: 24px; cursor: pointer; transition: border-color .16s, transform .16s, box-shadow .16s; position: relative; }
.fund:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.fund.is-sel { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(29,29,27,.08); }
.fund.is-top::after { content:"Рекомендация ИИ"; position:absolute; top:-11px; right:18px; background: var(--lime); color: var(--ink); font-size:11px; font-weight:800; padding: 5px 12px; border-radius: var(--r-pill); }
.fund__head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.fund__ico { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; color: #fff; }
.fund__ico svg { width: 24px; height: 24px; }
.fund__name { font-size: 19px; font-weight: 800; }
.fund__fit { margin-left: auto; text-align: right; }
.fund__fit b { font-size: 22px; font-weight: 900; } .fund__fit small { display:block; color: var(--gray-500); font-size: 11px; }
.fund__bar { height: 8px; background: var(--gray-200); border-radius: 6px; overflow: hidden; margin: 12px 0; }
.fund__bar i { display: block; height: 100%; border-radius: 6px; }
.fund p { color: var(--gray-600, var(--gray-500)); font-size: 14.5px; }
.fund__link { margin-top: 14px; display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--red); font-size: 14px; }

/* ---------- Launch checklist ---------- */
.launch-top { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; background: var(--ink); color: #fff; border-radius: var(--r-lg); padding: 24px 28px; margin-bottom: 22px; }
.launch-top .progress { background: rgba(255,255,255,.15); margin-top: 12px; max-width: 460px; }
.launch-top .progress__bar { background: var(--lime); }
.launch-top__pct { font-size: 40px; font-weight: 900; }
.check-list { display: grid; gap: 14px; }
.check { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; background:#fff; border:1px solid var(--line); border-radius: var(--r-lg); padding: 20px 22px; transition: border-color .16s; }
.check.done { border-color: var(--green); background: #fbfdf7; }
.check__box { width: 30px; height: 30px; border-radius: 9px; border: 2px solid var(--gray-300); display: grid; place-items: center; cursor: pointer; flex: none; color: #fff; transition: all .16s; }
.check__box:hover { border-color: var(--ink); }
.check.done .check__box { background: var(--green); border-color: var(--green); }
.check__box svg { width: 18px; height: 18px; opacity: 0; } .check.done .check__box svg { opacity: 1; }
.check__t b { font-size: 17px; } .check__t p { color: var(--gray-500); font-size: 14px; }
.check__link { color: var(--red); font-weight: 700; font-size: 14px; white-space: nowrap; }
@media(max-width:600px){ .check { grid-template-columns: auto 1fr; } .check__link { grid-column: 2; } .launch-top { grid-template-columns: 1fr; } }

/* ---------- Cockpit ---------- */
.kpi-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
@media(max-width:820px){ .kpi-grid { grid-template-columns: 1fr 1fr; } }
.kpi { background:#fff; border:1px solid var(--line); border-radius: var(--r-lg); padding: 20px; }
.kpi small { color: var(--gray-500); font-size: 13px; }
.kpi b { display: block; font-size: 26px; font-weight: 900; margin-top: 6px; }
.kpi .trend { font-size: 13px; font-weight: 700; margin-top: 6px; }
.trend.up { color: var(--green); } .trend.down { color: var(--red); }
.cockpit-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 16px; align-items: start; }
@media(max-width:980px){ .cockpit-grid { grid-template-columns: 1fr; } }
.chart-card { background:#fff; border:1px solid var(--line); border-radius: var(--r-lg); padding: 24px; }
.chart-card h4 { font-size: 16px; margin-bottom: 4px; }
.chart-wrap { position: relative; margin-top: 14px; }
.signal { display: grid; grid-template-columns: 110px 1fr auto; gap: 14px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
.signal:last-child { border: none; }
.signal__cat { font-weight: 800; }
.signal__msg b { display:block; } .signal__msg span { color: var(--gray-500); font-size: 13.5px; }
.signal .btn { white-space: nowrap; }
.sig-badge { font-size: 11px; font-weight: 800; text-transform: uppercase; padding: 4px 10px; border-radius: var(--r-pill); }
.sig-badge.risk { background: var(--red-050); color: var(--red); }
.sig-badge.watch { background: rgba(43,110,242,.12); color: var(--blue); }
@media(max-width:640px){ .signal { grid-template-columns: 1fr; gap:8px; } }

/* ---------- Мониторинг ---------- */
.mon-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.mon-src { display: flex; flex-direction: column; gap: 6px; }
.mon-src .chip { background: rgba(90,138,22,.12); color: var(--green); }
.live-dot { width: 8px; height: 8px; border-radius: 50%; background: #37b24d; box-shadow: 0 0 0 0 rgba(55,178,77,.5); animation: livepulse 1.8s infinite; }
@keyframes livepulse { 0%{ box-shadow: 0 0 0 0 rgba(55,178,77,.5);} 70%{ box-shadow: 0 0 0 7px rgba(55,178,77,0);} 100%{ box-shadow: 0 0 0 0 rgba(55,178,77,0);} }
.mon-src__list { color: var(--gray-500); font-size: 13px; }
.mon-period { display: inline-flex; gap: 2px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-pill); padding: 4px; }
.mp { border: none; background: transparent; padding: 8px 14px; border-radius: var(--r-pill); font-weight: 700; font-size: 13.5px; color: var(--gray-600, var(--gray-500)); }
.mp.is-on { background: var(--ink); color: #fff; }

.mkpi { position: relative; display: flex; flex-direction: column; overflow: hidden; }
.mkpi small { color: var(--gray-500); font-size: 13px; }
.mkpi b { font-size: 24px; font-weight: 900; margin: 6px 0 4px; }
.mtrend { font-size: 13px; font-weight: 800; }
.mtrend.up { color: var(--green); } .mtrend.down { color: var(--red); }
.kpi__spark { margin-top: 10px; line-height: 0; }
.kpi__spark svg { width: 100%; height: 30px; opacity: .85; }

.mon-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 20px; align-items: start; }
.mon-wide { grid-column: 1 / -1; }
.chart-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.chart-head h4 { margin: 0; }
.chart-legend { display: flex; gap: 16px; font-size: 12.5px; color: var(--gray-500); flex-wrap: wrap; }
.chart-legend span { display: inline-flex; align-items: center; gap: 6px; }
.chart-legend i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.chart-legend i.dash { width: 16px; height: 0; border-radius: 0; border-top: 2px dashed var(--gray-400); }

.donut-wrap { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 6px; }
.donut-legend { flex: 1; min-width: 150px; }
.donut-legend li { display: flex; align-items: center; gap: 9px; padding: 7px 0; font-size: 14px; border-bottom: 1px solid var(--line); }
.donut-legend li:last-child { border: none; }
.donut-legend i { width: 12px; height: 12px; border-radius: 3px; flex: none; }
.donut-legend span { flex: 1; color: var(--gray-700); }
.donut-legend b { font-weight: 800; }

.cat-list { display: flex; flex-direction: column; gap: 13px; margin-top: 4px; }
.cat-row { display: grid; grid-template-columns: 132px 1fr auto; gap: 12px; align-items: center; font-size: 14px; }
.cat-lbl { color: var(--gray-700); }
.cat-bar { height: 10px; background: var(--gray-200); border-radius: 6px; overflow: hidden; }
.cat-bar i { display: block; height: 100%; border-radius: 6px; }
.cat-val { font-weight: 800; white-space: nowrap; }

.funnel { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
.fn-row { display: flex; align-items: center; gap: 16px; }
.fn-bar { background: linear-gradient(90deg, var(--red), #ff6a5c); color: #fff; font-weight: 800; padding: 11px 16px; border-radius: 10px; min-width: 64px; text-align: center; font-size: 15px; }
.fn-meta b { display: block; } .fn-meta span { color: var(--gray-500); font-size: 13px; }

@media (max-width: 820px) { .mon-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
  .mon-top { flex-direction: column; align-items: stretch; }
  .mon-period { width: 100%; justify-content: space-between; }
  .cat-row { grid-template-columns: 104px 1fr auto; gap: 8px; font-size: 13px; }
  .fn-meta span { font-size: 12px; }
}

/* ---------- Экосистема / Выход (жизненный цикл) ---------- */
.lc-band { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 22px 24px; }
.lc-band__row { display: grid; grid-template-columns: 92px 1fr; gap: 14px; align-items: start; padding: 11px 0; border-bottom: 1px solid var(--line); }
.lc-band__row:first-child { padding-top: 0; }
.lc-band__row p { color: var(--gray-700); }
.lc-lbl { font-size: 11px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; padding: 6px 0; text-align: center; border-radius: 7px; height: fit-content; }
.lc-pain { background: var(--red-050); color: var(--red-600); }
.lc-sol { background: rgba(198,244,57,.30); color: #61760a; }
.lc-res { background: rgba(43,110,242,.12); color: var(--blue); }
.lc-band__money { margin-top: 14px; font-size: 13.5px; color: var(--gray-500); }
.lc-band__money b { color: var(--gray-700); font-weight: 700; }
.eco-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.eco-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px; }
.eco-card .card__ico { margin-bottom: 14px; }
.eco-card h4 { font-size: 18px; margin-bottom: 8px; }
.eco-card .fund__link { margin-top: 12px; }
@media (max-width: 820px) { .eco-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .lc-band__row { grid-template-columns: 1fr; gap: 5px; } .lc-lbl { justify-self: start; padding: 4px 12px; } }

.liq-card { display: flex; gap: 16px; align-items: flex-start; }
.liq-card .card__ico { margin: 0; flex: none; }

/* Витрина бизнесов */
.biz-market { margin-top: 30px; }
.biz-market__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 16px; }
.biz-tabs { display: inline-flex; gap: 2px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-pill); padding: 4px; margin-bottom: 18px; }
.biz-tab { border: none; background: transparent; padding: 9px 18px; border-radius: var(--r-pill); font-weight: 700; font-size: 14px; color: var(--gray-600, var(--gray-500)); display: inline-flex; align-items: center; gap: 8px; }
.biz-tab span { font-size: 12px; background: rgba(29,29,27,.1); border-radius: var(--r-pill); padding: 1px 8px; }
.biz-tab.is-on { background: var(--ink); color: #fff; }
.biz-tab.is-on span { background: rgba(255,255,255,.2); }
.biz-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 16px; }
.biz-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 22px; display: flex; flex-direction: column; }
.biz-card__top { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.biz-card h4 { font-size: 18px; }
.biz-meta { color: var(--gray-500); font-size: 13.5px; margin: 6px 0 16px; }
.biz-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
.biz-metrics > div { display: flex; flex-direction: column; }
.biz-metrics span { color: var(--gray-500); font-size: 12px; }
.biz-metrics b { font-size: 16px; font-weight: 800; }
.biz-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 16px; }
.biz-price { display: flex; flex-direction: column; }
.biz-price b { font-size: 19px; font-weight: 900; } .biz-price small { color: var(--gray-500); font-size: 11px; }
@media (max-width: 600px) { .biz-market__head .btn { width: 100%; } }

/* ---------- Community ---------- */
.mentor-grid { display:grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
@media(max-width:900px){ .mentor-grid { grid-template-columns: 1fr 1fr; } }
@media(max-width:560px){ .mentor-grid { grid-template-columns: 1fr; } }
.mentor { background:#fff; border:1px solid var(--line); border-radius: var(--r-lg); padding: 22px; text-align:center; }
.mentor__av { position: relative; width: 76px; height: 76px; border-radius: 50%; margin: 0 auto 16px; overflow: hidden; box-shadow: 0 0 0 3px var(--ring, var(--ink)); }
.mentor__ini { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font-weight: 900; font-size: 24px; }
.mentor__ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.mentor b { display:block; } .mentor small { color: var(--gray-500); font-size: 13px; }
.mentor__tags { display:flex; gap:6px; justify-content:center; flex-wrap:wrap; margin-top: 12px; }
.perk-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:16px; }
@media(max-width:820px){ .perk-grid { grid-template-columns: 1fr; } }
.perk { background:#fff; border:1px solid var(--line); border-radius: var(--r-lg); padding: 24px; }
.perk .card__ico { background: var(--paper); }

.next-cta { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; background: var(--lime); border-radius: var(--r-lg); padding: 22px 28px; margin-top: 24px; }
.next-cta b { font-size: 20px; }

.empty-hint { background:#fff; border: 1px dashed var(--gray-300); border-radius: var(--r-lg); padding: 40px; text-align:center; color: var(--gray-500); }
.empty-hint .btn { margin-top: 16px; }

/* ---------- Mobile shell ---------- */
@media(max-width: 900px){
  .app-shell { grid-template-columns: 1fr; }
  .side {
    position: fixed; left: 0; top: 0; bottom: 0; width: min(280px, 84vw); z-index: 60;
    height: 100dvh; overflow-y: auto; -webkit-overflow-scrolling: touch;
    padding-bottom: calc(22px + env(safe-area-inset-bottom, 0px));
    transform: translateX(-100%); transition: transform .25s var(--ease);
  }
  .side.open { transform: none; }
  .moburger { display: block; }
  .side-toggle { display: none; }
}
@media(max-width: 600px){
  .topbar { padding: 0 16px; gap: 12px; }
  .topbar__actions { gap: 10px; }
  .topbar__actions .btn, #tbProject { display: none; }  /* краудфандинг доступен в меню и на этапах */
  .stage { padding: 26px 16px 72px; }
  .ov-hero { padding: 26px 20px; }
  .ov-hero::after { width: 200px; height: 200px; right: -70px; top: -70px; }
  .report__verdict { padding: 22px; }
  .gauge, .gauge svg { width: 128px; height: 128px; }
  .launch-top { padding: 20px; }
  .fund { padding: 20px; }
  /* CTA-блоки этапов — вертикально, кнопки на всю ширину */
  .next-cta { flex-direction: column; align-items: stretch; }
  .next-cta > .flex, .next-cta .flex.wrap { width: 100%; flex-direction: column; }
  .next-cta .btn { width: 100%; }
  .signal { grid-template-columns: 1fr; }
  .signal .flex { flex-direction: row !important; align-items: center !important; justify-content: space-between; width: 100%; }
}
@media(max-width: 480px){
  .kpi-grid { grid-template-columns: 1fr; }
  .plan { grid-template-columns: 1fr; }
}
