/* IT-инструменты (/tools/dev/): тема терминала. Крупный читаемый текст, сетка «меню | утилита»,
   умная вставка на всю ширину над сеткой, панель результата внутри карточки утилиты. Поверх правил .dev-* из visual-system.css. */
body.shell-v2{--dv-acc:#3ddc84;--dv-acc2:#8bf0b8;--dv-blue:#79b8ff;--dv-bg:#0b0d10;--dv-card:#111419;--dv-line:#232831;--dv-line2:#323946;--dv-mut:#9aa3ae;
  --dv-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Consolas,monospace}

/* шапка */
body.shell-v2 .dev-hero{min-height:auto;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);column-gap:clamp(24px,4vw,64px);row-gap:0;align-items:start;align-content:start;
  padding-top:clamp(110px,14vh,150px);padding-bottom:clamp(32px,5vw,64px)}
body.shell-v2 .dev-hero:after{display:none}
body.shell-v2 .dev-hero>*{grid-column:1}
body.shell-v2 .dev-hero .eyebrow{font:500 14px/1 var(--dv-mono);letter-spacing:0;text-transform:none;color:var(--dv-acc)}
body.shell-v2 .dev-hero .eyebrow::before{content:"$ ";color:var(--dv-mut)}
body.shell-v2 .dev-hero h1{font-family:var(--dv-mono);font-weight:600;font-size:clamp(34px,3.6vw,54px);line-height:1.08;letter-spacing:-.05em;margin:16px 0 18px;max-width:14ch;text-wrap:balance}
body.shell-v2 .dev-hero .lead{font-size:clamp(17px,1.3vw,20px);line-height:1.6;color:var(--dv-mut);max-width:34em;text-wrap:pretty}
body.shell-v2 .dev-hero .dv-term{grid-column:2;grid-row:1/span 4;align-self:center}
.dv-term{border:1px solid var(--dv-line2);border-radius:18px;background:var(--dv-bg);overflow:hidden;box-shadow:0 40px 80px -40px rgba(0,0,0,.9)}
.dv-term-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--dv-line);font:500 13px var(--dv-mono);color:var(--dv-mut)}
.dv-term-bar i{width:11px;height:11px;border-radius:50%;background:#2c323c}.dv-term-bar i:first-child{background:var(--dv-acc)}
.dv-term-bar span{margin-left:8px}
.dv-term pre{margin:0;padding:20px 22px 24px;font:15px/1.65 var(--dv-mono);color:#d6dde6;white-space:pre;overflow:hidden}
.dv-term .k{color:var(--dv-blue)}.dv-term .s{color:var(--dv-acc2)}.dv-term .n{color:#ffcf70}.dv-term .c{color:#5f6b78}.dv-term .ok{color:var(--dv-acc)}
.dv-term .ln{display:block;opacity:0;transform:translateY(6px);animation:dv-ln .5s cubic-bezier(.32,.72,0,1) forwards;animation-delay:calc(var(--i)*.18s + .3s)}
@keyframes dv-ln{to{opacity:1;transform:none}}
.dv-term .cur{display:inline-block;width:.6em;height:1.1em;vertical-align:-.15em;background:var(--dv-acc);animation:dv-cur 1s steps(2) infinite}
@keyframes dv-cur{50%{opacity:0}}
body.shell-v2 .dev-privacy{grid-column:1;font-size:15px}

/* сетка */
body.shell-v2 .dev-workspace{grid-template-columns:280px minmax(0,1fr);gap:32px;max-width:1360px;margin:0 auto;padding-top:8px}
body.shell-v2 .dev-workspace>.dv-smart{grid-column:1/-1}
body.shell-v2 .dev-workspace>.dev-tool-nav{grid-column:1;grid-row:2}
body.shell-v2 .dev-workspace>.dev-panels{grid-column:2;grid-row:2}

/* умная вставка */
body.shell-v2 .dv-smart{margin:0;padding:20px 24px;border:1px solid var(--dv-line2);border-radius:18px;background:var(--dv-card);display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 24px;align-items:center}
body.shell-v2 .dv-smart label{grid-column:1;margin:0;font:600 16px/1.3 var(--hv-sans);color:var(--hv-text)}
body.shell-v2 .dv-smart .dv-smart-row{grid-column:2}
body.shell-v2 .dv-smart textarea{min-height:56px;font:16px/1.5 var(--dv-mono);background:var(--dv-bg);border-color:var(--dv-line2)}
body.shell-v2 .dv-smart textarea:focus{border-color:var(--dv-acc)}
body.shell-v2 .dv-smart-hint{grid-column:2;margin:0;font-size:14px;color:var(--dv-mut)}

/* меню утилит */
body.shell-v2 .dev-tool-nav{top:96px;gap:4px;padding:10px;border:1px solid var(--dv-line);border-radius:18px;background:var(--dv-card)}
body.shell-v2 .dev-tool-nav button{grid-template-columns:34px 1fr;gap:10px;padding:11px 12px;border:0;border-radius:10px;color:#c3cad3;font:500 16px/1.3 var(--hv-sans);
  transition:background .5s cubic-bezier(.32,.72,0,1),color .5s cubic-bezier(.32,.72,0,1)}
body.shell-v2 .dev-tool-nav button span{font:500 13px var(--dv-mono);color:#66707c}
body.shell-v2 .dev-tool-nav button:hover,body.shell-v2 .dev-tool-nav button:focus-visible{transform:none;background:rgba(255,255,255,.04);color:#fff}
body.shell-v2 .dev-tool-nav button:focus-visible{outline:2px solid var(--dv-acc);outline-offset:-2px}
body.shell-v2 .dev-tool-nav button.is-active{background:rgba(61,220,132,.1);color:#fff}
body.shell-v2 .dev-tool-nav button.is-active span{color:var(--dv-acc)}
body.shell-v2 .dev-tool-nav button.is-active:after{left:0;top:10px;bottom:10px;width:3px;height:auto;border-radius:3px;background:var(--dv-acc);box-shadow:0 0 12px var(--dv-acc);animation:none}

/* карточка утилиты */
body.shell-v2 .dev-panels{padding:28px 32px 0;border:1px solid var(--dv-line);border-radius:22px;background:var(--dv-card)}
body.shell-v2 .dev-panels:before{display:none}
body.shell-v2 .dev-panel>header{display:block;margin-bottom:24px}
body.shell-v2 .dev-panel>header .eyebrow{font:500 14px/1 var(--dv-mono);letter-spacing:0;text-transform:none;color:var(--dv-acc);margin-bottom:12px}
body.shell-v2 .dev-panel>header h2{font-family:var(--dv-mono);font-weight:600;font-size:clamp(30px,2.6vw,40px);line-height:1.1;letter-spacing:-.04em;margin:0 0 10px}
body.shell-v2 .dev-panel>header>p:last-child{font-size:17px;line-height:1.6;max-width:44em;color:var(--dv-mut)}
body.shell-v2 .dev-panel label{margin:20px 0 8px;font:600 15px/1.3 var(--hv-sans);letter-spacing:0;text-transform:none;color:#d7dde4}
body.shell-v2 .dev-panel textarea,body.shell-v2 .dev-panel input,body.shell-v2 .dev-panel select{border:1px solid var(--dv-line2);border-radius:12px;background:var(--dv-bg);font:16px/1.6 var(--dv-mono);color:#e8edf2}
body.shell-v2 .dev-panel textarea{min-height:200px;padding:16px 18px}
body.shell-v2 .dev-panel input,body.shell-v2 .dev-panel select{min-height:52px;padding:0 16px}
body.shell-v2 .dev-panel textarea:focus,body.shell-v2 .dev-panel input:focus,body.shell-v2 .dev-panel select:focus{border-color:var(--dv-acc);background:#0d1014;box-shadow:0 0 0 3px rgba(61,220,132,.12)}
body.shell-v2 .dev-actions{gap:10px;margin:18px 0 22px}
body.shell-v2 .dev-actions button,body.shell-v2 .dev-result-tools button{min-height:48px;padding:12px 20px;border-radius:12px;border:1px solid var(--dv-line2);background:#1a1f27;color:#eef2f6;font:600 16px/1 var(--hv-sans);
  transition:background .5s cubic-bezier(.32,.72,0,1),transform .5s cubic-bezier(.32,.72,0,1),border-color .5s cubic-bezier(.32,.72,0,1)}
body.shell-v2 .dev-actions button:first-child{background:var(--dv-acc);border-color:var(--dv-acc);color:#06140c}
body.shell-v2 .dev-actions button:hover,body.shell-v2 .dev-result-tools button:hover{background:#252c36;color:#fff;transform:translateY(-1px)}
body.shell-v2 .dev-actions button:first-child:hover{background:var(--dv-acc2);color:#06140c}
body.shell-v2 .dev-actions button:active,body.shell-v2 .dev-result-tools button:active{transform:scale(.98)}
body.shell-v2 .dev-actions button:focus-visible,body.shell-v2 .dev-result-tools button:focus-visible{outline:2px solid var(--dv-acc);outline-offset:2px}
body.shell-v2 .dev-actions button.secondary{background:transparent;color:var(--dv-mut)}
body.shell-v2 .dev-output{min-height:220px;max-height:560px;padding:18px 20px;border:1px solid var(--dv-line2);border-radius:14px;background:var(--dv-bg);font:16px/1.65 var(--dv-mono);color:#e3e9ef}
body.shell-v2 .dev-output:empty:before{content:"Результат появится здесь";color:#5f6b78}
body.shell-v2 .dev-inline{grid-template-columns:minmax(0,1fr) 160px;gap:12px}
body.shell-v2 .dev-split{gap:16px}

/* панель результата: прилипает к низу карточки при прокрутке */
body.shell-v2 .dev-result-tools{position:sticky;bottom:0;z-index:2;margin:20px -32px 0;padding:14px 32px 16px;border-top:1px solid var(--dv-line);border-radius:0 0 22px 22px;
  background:rgba(17,20,25,.92);backdrop-filter:blur(10px)}
body.shell-v2 .dev-result-tools>span{font:500 14px var(--dv-mono);text-transform:none;color:var(--dv-mut)}
body.shell-v2 .dev-result-tools>span::before{content:"●";margin-right:8px;color:#5f6b78}
body.shell-v2 .dev-result-tools>span[data-state=done]::before,body.shell-v2 .dev-result-tools>span[data-state=done]{color:var(--dv-acc)}
body.shell-v2 .dev-result-tools [data-dev-copy]{background:var(--dv-acc);border-color:var(--dv-acc);color:#06140c}
body.shell-v2 .dev-result-tools [data-dev-copy]:hover{background:var(--dv-acc2);color:#06140c}

/* «как это устроено» */
body.shell-v2 .dev-guide{padding-top:clamp(64px,8vw,110px);padding-bottom:clamp(80px,10vw,140px)}
body.shell-v2 .dev-guide .eyebrow{font:500 14px var(--dv-mono);text-transform:none;letter-spacing:0;color:var(--dv-acc)}
body.shell-v2 .dev-guide-list span{font:500 14px var(--dv-mono);color:var(--dv-acc)}
body.shell-v2 .dev-guide-list small{font-size:17px}

@media (max-width:1100px){
  body.shell-v2 .dev-hero{grid-template-columns:1fr}
  body.shell-v2 .dev-hero .dv-term{grid-column:1;grid-row:auto;margin-top:16px}
}
@media (max-width:900px){
  body.shell-v2 .dev-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
  body.shell-v2 .dev-workspace>.dev-tool-nav{grid-column:1;grid-row:2;position:static;flex-direction:row;overflow-x:auto;scrollbar-width:none;margin:0;padding:8px}
  body.shell-v2 .dev-workspace>.dev-tool-nav button{flex:0 0 auto;min-width:0;width:auto;white-space:nowrap}
  body.shell-v2 .dev-workspace>.dev-panels{grid-column:1;grid-row:3;padding:20px 16px 0}
  body.shell-v2 .dv-smart{grid-template-columns:1fr}
  body.shell-v2 .dv-smart label,body.shell-v2 .dv-smart .dv-smart-row,body.shell-v2 .dv-smart-hint{grid-column:1}
  body.shell-v2 .dev-result-tools{margin:16px -16px 0;padding:12px 16px 14px;flex-wrap:wrap}
  body.shell-v2 .dev-split{grid-template-columns:1fr}
  body.shell-v2 .dev-inline{grid-template-columns:1fr}
  body.shell-v2 .dev-guide-list p{grid-template-columns:36px 1fr}
  body.shell-v2 .dev-guide-list small{grid-column:2}
}
@media (prefers-reduced-motion:reduce){.dv-term .ln{animation:none;opacity:1;transform:none}.dv-term .cur{animation:none}}
