:root{
  --bg:#0f1216; --panel:#171b22; --panel2:#1e242d; --line:#2a323d;
  --txt:#e6eaf0; --muted:#9aa6b4; --accent:#ee6622; --accent2:#3d7a33;
  --radius:14px; --shadow:0 6px 24px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--txt);
  font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--accent);text-decoration:none}
.wrap{max-width:1000px;margin:0 auto;padding:22px 18px 60px}

/* top bar */
.topbar{position:sticky;top:0;z-index:20;background:rgba(15,18,22,.86);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.topbar .wrap{padding-top:14px;padding-bottom:14px;display:flex;align-items:center;gap:16px}
.brand{font-weight:800;font-size:19px;letter-spacing:.2px;display:flex;align-items:center;gap:10px;cursor:pointer}
.brand .dot{width:12px;height:12px;border-radius:3px;background:var(--accent)}
.brand small{font-weight:500;color:var(--muted);font-size:12px}
.spacer{flex:1}
.search{flex:0 1 340px;position:relative}
.search input{width:100%;padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--txt);font-size:14px;outline:none}
.search input:focus{border-color:var(--accent)}

/* list */
.hero{margin:8px 0 22px}
.hero h1{margin:0 0 6px;font-size:26px}
.hero p{margin:0;color:var(--muted)}
.cats{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 26px}
.chip{padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;font-size:13px;white-space:nowrap;user-select:none}
.chip.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.catgroup{margin:30px 0}
.catgroup h2{font-size:15px;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);margin:0 0 14px;font-weight:700;display:flex;align-items:center;gap:10px}
.catgroup h2 .ready{font-size:11px;letter-spacing:.3px;text-transform:none;color:var(--accent2-txt,#7bc76e);background:rgba(61,122,51,.16);border:1px solid rgba(61,122,51,.4);padding:2px 8px;border-radius:999px;font-weight:600}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;transition:.14s;display:flex;flex-direction:column;
}
.card.ready{cursor:pointer}
.card.ready:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:var(--shadow)}
.card.ready:hover .cta{color:var(--accent)}
.card.soon{opacity:.62}
.card .thumb{position:relative;aspect-ratio:3/2;background:#0c0f13;overflow:hidden}
.card .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.card .noimg{width:100%;height:100%;background:linear-gradient(135deg,#1e242d,#12161c)}
.card.soon .thumb img{filter:grayscale(.7) brightness(.72)}
.soonbadge,.draftbadge{position:absolute;top:8px;font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.4px}
.soonbadge{left:8px;background:rgba(20,24,30,.85);color:#c3ccd8;border:1px solid var(--line)}
.draftbadge{right:8px;background:#3a2a12;color:#f0a25e;border:1px solid #5a3d1a}
.card .cbody{padding:12px 14px 14px;display:flex;flex-direction:column;gap:7px;flex:1}
.card .t{font-weight:700;font-size:14px;line-height:1.28}
.card .s{color:var(--muted);font-size:12px;line-height:1.4;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card .cta{font-size:12px;font-weight:700;color:var(--muted);margin-top:2px}
.card.ready .cta{color:var(--txt)}
.empty{color:var(--muted);padding:40px;text-align:center}

/* calculator page */
.calchead{display:flex;align-items:center;gap:14px;margin:6px 0 20px}
.calchead .ctitle-wrap{flex:1;min-width:0}
.back{padding:9px 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--txt);cursor:pointer;font-size:14px;white-space:nowrap}
.back:hover{border-color:var(--accent)}
.calchead h1{margin:0;font-size:22px}
.calchead .sub{color:var(--muted);font-size:13px;margin-top:3px}
.pdfbtn{padding:13px 28px;border-radius:12px;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;font-size:15px;font-weight:700;white-space:nowrap}
.pdfbtn:hover{filter:brightness(1.08)}
.pdfbtn:disabled{opacity:.6;cursor:default}
.calcfoot{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:8px}
.foothint{color:var(--muted);font-size:12.5px;text-align:center;max-width:520px}
.loading{color:var(--muted);padding:50px;text-align:center;font-size:15px}

/* раскладка калькулятора — CSS Grid, как в эталонном рантайме */
.grid{display:grid;column-gap:16px;margin:0 0 14px}
.gcol{min-width:0;display:flex;flex-direction:column;gap:12px}
.calc-dd{margin:0 0 14px}
.calc-dd>summary{cursor:pointer;font-weight:700;font-size:15px;padding:12px 16px;background:var(--panel);border:1px solid var(--line);border-radius:12px;list-style:none;display:flex;justify-content:space-between;align-items:center}
.calc-dd>summary::-webkit-details-marker{display:none}
.calc-dd>summary::after{content:'▾';opacity:.6}
.calc-dd[open]>summary{border-radius:12px 12px 0 0;margin-bottom:12px}

.field{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:7px}
.field input[type=text],.field input[type=number],.field select{
  width:100%;padding:9px 11px;border-radius:9px;border:1px solid var(--line);
  background:var(--panel2);color:var(--txt);font-size:15px;outline:none
}
.field input:focus,.field select:focus{border-color:var(--accent)}
.field input[type=range]{width:100%;accent-color:var(--accent)}
.rangeval{float:right;color:var(--accent);font-weight:700}

.radios{display:grid;gap:8px}
.radio{border:1px solid var(--line);border-radius:10px;padding:8px;cursor:pointer;text-align:center;background:var(--panel2);font-size:13px;transition:.12s;display:flex;flex-direction:column;gap:6px;align-items:center}
.radio img{width:100%;height:74px;object-fit:contain;border-radius:6px;background:#fff}
.radio.sel{border-color:var(--accent);box-shadow:0 0 0 2px rgba(238,102,34,.35) inset}

.metric{border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}
.metric .mn{font-size:12.5px;opacity:.92;margin-bottom:5px}
.metric .mv{font-size:22px;font-weight:800;line-height:1.15}
.metric .mv b{font-weight:800}

.block{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.block.header{font-weight:700}
.block.text{color:var(--muted);font-size:13.5px;line-height:1.55}

.result{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:6px 4px;overflow-x:auto}
.result .rtitle{font-weight:700;padding:10px 12px 6px;font-size:15px}
table.rt{width:100%;border-collapse:collapse;font-size:13.5px}
table.rt th,table.rt td{padding:8px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
table.rt tr:first-child th,table.rt tr:first-child td{color:var(--muted);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.4px}
table.rt tr:last-child td{border-bottom:none}
table.rt b{color:var(--txt)}

.imgblock img{max-width:100%;border-radius:10px;display:block}
.imgcap{color:var(--muted);font-size:11px;margin-top:4px}

.chartbox{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}
.chartbox .ctitle{font-weight:700;margin-bottom:10px;font-size:14px}
.chartbox svg{width:100%;height:auto;display:block}

@media (max-width:640px){
  .search{display:none}
  .grid{grid-template-columns:1fr !important}
}
