/* SOC dashboard v2 — reproduction de la maquette, limitée au composant lab. */
.soc-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}
.soc-lab-section{border-top:1px solid var(--line);padding:clamp(1rem,2vw,2rem) clamp(1rem,2.4vw,2.6rem) clamp(3rem,5vw,4.8rem)!important}
.soc-lab-section *{box-sizing:border-box}
.soc-layout{display:grid;grid-template-columns:minmax(310px,.35fr) minmax(0,1fr);gap:clamp(1rem,1.75vw,2rem);align-items:stretch;min-height:clamp(665px,calc(100svh - 160px),795px)}
.soc-brief{min-width:0;display:flex;flex-direction:column;gap:1.2rem;padding:.75rem .55rem .35rem .2rem;color:var(--ink);font-family:"Manrope",sans-serif}
.soc-eyebrow{display:block;color:var(--muted);font:500 clamp(.78rem,1vw,.88rem)/1.65 "DM Mono",monospace;letter-spacing:.09em}
.soc-brief h3{margin:1.15rem 0 .85rem;color:var(--ink);font:700 clamp(1.4rem,2.35vw,2.3rem)/1.16 "Space Grotesk","Manrope",sans-serif;letter-spacing:-.045em}
.soc-brief-lead>p{margin:0;color:var(--muted);font:400 clamp(.78rem,.92vw,.9rem)/1.75 "Manrope",sans-serif}
.soc-objective{display:flex;align-items:start;gap:.8rem;margin-top:1.25rem;padding:1rem 1.05rem;background:rgba(130,130,120,.065);border-radius:12px}
.soc-objective-icon{color:#ef4f36;font:700 2rem/.95 Arial,sans-serif;flex-shrink:0}
.soc-objective strong{display:block;margin-bottom:.28rem;color:var(--ink);font:700 .82rem "Manrope",sans-serif}
.soc-objective p{margin:0;color:var(--muted);font:.77rem/1.65 "Manrope",sans-serif}
.soc-steps{display:grid;gap:1.05rem;padding:0;margin:0;list-style:none;counter-reset:soc-step}
.soc-steps li{display:flex;align-items:flex-start;gap:.95rem;min-width:0;position:relative;font-family:"Manrope",sans-serif}
.soc-steps li:not(:last-child)::after{content:"";position:absolute;left:21px;top:42px;bottom:-1.05rem;width:1px;background:var(--line)}
.soc-steps li::before{counter-increment:soc-step;content:counter(soc-step);display:grid;place-items:center;flex:0 0 42px;height:42px;z-index:1;background:#f6f5f2;color:#141516;border:1px solid #d2d1ca;border-radius:50%;font:600 .88rem "DM Mono",monospace}
.soc-steps li:first-child::before{background:#15181b;color:white;border-color:#15181b}
html[data-theme="dark"] .soc-steps li::before{background:#292a29;color:#ebebe7;border-color:#555651}
html[data-theme="dark"] .soc-steps li:first-child::before{background:#f0f0ed;color:#151515}
.soc-steps strong{display:block;color:var(--ink);font:700 .8rem/1.45 "Manrope",sans-serif;padding-top:.15rem}
.soc-steps small{display:block;margin-top:.28rem;color:var(--muted);font:400 .71rem/1.55 "Manrope",sans-serif}
.soc-brief-bottom{margin-top:auto;display:grid;gap:.7rem}
.soc-start{display:flex;align-items:center;justify-content:center;gap:.6rem;min-height:49px;width:100%;border:1px solid #151719;border-radius:9px;cursor:pointer;background:#101316;color:white;font:650 .88rem "Manrope",sans-serif;transition:background .2s,transform .2s}
.soc-start:hover{background:#2b3035;transform:translateY(-1px)}
.soc-start span{font-size:1.25rem}
.soc-progress-row{display:flex;justify-content:space-between;gap:.65rem;font:500 .73rem "Manrope",sans-serif;color:var(--muted)}
.soc-progress-row strong{color:var(--ink)}
.soc-hints{border:1px solid var(--line);padding:.65rem .85rem;border-radius:9px;font:.75rem "Manrope",sans-serif;color:var(--ink)}
.soc-hints summary{cursor:pointer;font-weight:700}
.soc-hints p{color:var(--muted);line-height:1.65;margin:.65rem 0 0}
.soc-hints code{font-family:"DM Mono",monospace;color:var(--ink)}
.soc-dashboard{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:#0e1215;border:1px solid #2b3036;border-radius:19px;box-shadow:0 10px 30px rgba(0,0,0,.075);color:#e8ecef}
.soc-tabs{display:flex;align-items:center;gap:.3rem;flex:0 0 auto;min-height:72px;padding:.85rem 1.1rem;border-bottom:1px solid #2b3035;overflow-x:auto;scrollbar-width:thin;font-family:"Manrope",sans-serif}
.soc-tab{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:40px;white-space:nowrap;padding:.65rem .95rem;border-radius:11px;border:1px solid transparent;color:#abb3be;background:transparent;cursor:pointer;font:600 .84rem "Manrope",sans-serif}
.soc-tab span[aria-hidden]{font-size:1.1rem}
.soc-tab.is-active,.soc-tab[aria-selected="true"]{background:#191f24;border-color:#272e34;color:#fff}
.soc-tab:hover:not(.is-active){background:#171d22;color:#f1f1f1}
.soc-alert-count{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:50%;background:#f14e40;color:white;font:700 .7rem "DM Mono",monospace}
.soc-status-badge{margin-left:auto;flex-shrink:0;white-space:nowrap;display:inline-flex;align-items:center;gap:.42rem;padding:.42rem .76rem;border-radius:7px;font:700 .66rem "DM Mono",monospace;letter-spacing:.035em;text-transform:uppercase}
.soc-status-badge::before{content:"";display:block;width:6px;height:6px;border-radius:50%;background:currentColor}
.soc-layout[data-soc-state="critical"] .soc-status-badge{background:rgba(237,74,61,.14);color:#ff7568;border:1px solid rgba(237,74,61,.35)}
.soc-layout[data-soc-state="warning"] .soc-status-badge{background:rgba(241,170,50,.14);color:#f5bb59;border:1px solid rgba(241,170,50,.34)}
.soc-layout[data-soc-state="resolved"] .soc-status-badge{background:rgba(68,186,119,.14);color:#79dc9f;border:1px solid rgba(68,186,119,.32)}
.soc-investigation{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);flex:1;min-height:0;border-bottom:1px solid #2b3035}
.soc-investigation-list{padding:1rem;min-width:0;min-height:0;overflow:auto;border-right:1px solid #2b3035;scrollbar-color:#394048 transparent}
.soc-view{display:flex;flex-direction:column;gap:.25rem;min-height:100%}
.soc-view[hidden]{display:none!important}
.soc-alert-row{display:grid;grid-template-columns:24px 60px minmax(0,1fr) 12px;gap:.65rem;align-items:center;text-align:left;width:100%;min-height:53px;padding:.5rem .75rem;color:#cbd1d7;border:1px solid transparent;border-radius:9px;background:transparent;cursor:pointer;font:500 clamp(.7rem,.86vw,.79rem)/1.35 "Manrope",sans-serif;transition:background .18s,border-color .18s}
.soc-alert-row:hover{background:#191f24}
.soc-alert-row.is-selected{background:linear-gradient(110deg,rgba(217,56,45,.15),rgba(217,56,45,.075));border-color:rgba(216,68,55,.28);color:#f1f0ef}
.soc-alert-row time{font:400 .67rem "DM Mono",monospace;color:#99a6b3}
.soc-alert-row>span:last-child{justify-self:end;font-size:1.35rem;color:#adb4b9}
.soc-alert-icon{display:grid;place-items:center;width:22px;height:22px;border:1.5px solid currentColor;border-radius:50%;font:700 .8rem "DM Mono",monospace}
.soc-alert-icon.critical{color:#f46559}.soc-alert-icon.warning{color:#ebba55}.soc-alert-icon.info{color:#67b4e8}
.soc-view-lead{display:flex;justify-content:space-between;align-items:start;gap:.8rem;margin:0 0 .8rem;color:#eff1f3;font:700 .8rem "Manrope",sans-serif}
.soc-view-lead small{max-width:50%;color:#97a3ae;font:400 .69rem/1.4 "Manrope",sans-serif;text-align:right}
.soc-file-row{width:100%;display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem;align-items:center;text-align:left;padding:.85rem .95rem;border-radius:9px;border:1px solid #2c343b;background:#151b20;color:#e8edf1;cursor:pointer;font-family:"Manrope",sans-serif}
.soc-file-row:hover{background:#1d272d;border-color:#40505b}
.soc-file-row>span{grid-column:1/-1;color:#7ac7ab;font:500 .62rem "DM Mono",monospace;letter-spacing:.06em}
.soc-file-row>strong{font-size:.78rem;font-weight:650}.soc-file-row>small{color:#99a5ae;font:.66rem "DM Mono",monospace}
.soc-alert-detail{min-width:0;display:flex;flex-direction:column;gap:.8rem;overflow:auto;padding:1.3rem clamp(1.15rem,2vw,2rem);scrollbar-color:#394048 transparent;font-family:"Manrope",sans-serif}
.soc-detail-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.soc-detail-meta time{font:400 .72rem "DM Mono",monospace;color:#9aa6b1}
.soc-detail-level{display:inline-block;padding:.3rem .5rem;border-radius:5px;font:700 .65rem "DM Mono",monospace}
.soc-detail-level.critical{color:#ff796b;background:rgba(236,68,54,.14);border:1px solid rgba(236,68,54,.25)}
.soc-detail-level.warning{color:#f8c367;background:rgba(236,172,61,.12);border:1px solid rgba(236,172,61,.27)}
.soc-detail-level.info{color:#82c6f7;background:rgba(59,150,221,.12);border:1px solid rgba(59,150,221,.28)}
.soc-alert-detail h4{margin:0;color:#f1f4f5;font:700 clamp(.94rem,1.2vw,1.18rem)/1.4 "Manrope",sans-serif;letter-spacing:-.025em}
.soc-detail-data{display:grid;gap:.55rem;margin:.3rem 0;color:#d9e0e5;font:400 clamp(.68rem,.88vw,.78rem)/1.45 "DM Mono",monospace}
.soc-detail-data>div{display:grid;grid-template-columns:minmax(80px,.45fr) minmax(0,1fr);gap:.4rem}
.soc-detail-data dt{color:#8493a0}
.soc-detail-data dd{margin:0;overflow-wrap:anywhere}
.soc-detail-description{margin:0;color:#97a4af;font:400 .73rem/1.65 "Manrope",sans-serif}
.soc-quick-actions{margin-top:auto;padding-top:.95rem;border-top:1px solid #2b3136}
.soc-quick-actions>strong{display:block;margin-bottom:.75rem;color:#f0f3f4;font:700 .8rem "Manrope",sans-serif}
.soc-action-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
.soc-action-buttons button{min-height:38px;cursor:pointer;color:#e8ecef;background:#171d22;border:1px solid #333c45;border-radius:8px;font:600 clamp(.65rem,.76vw,.76rem)/1.3 "Manrope",sans-serif;padding:.4rem .45rem}
.soc-action-buttons button:hover{background:#233039;border-color:#647784}
.soc-action-buttons button[data-soc-action="isolate"]{border-color:#79433f}
.soc-terminal-block{display:flex;flex-direction:column;flex:0 0 31%;min-height:205px;min-width:0;margin:.9rem 1rem 1rem;border:1px solid #293039;border-radius:10px;overflow:hidden;background:#0d1114;font-family:"DM Mono",monospace}
.soc-terminal-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:39px;flex-shrink:0;padding:.35rem 1rem;border-bottom:1px solid #252d33;font:500 .68rem "DM Mono",monospace;color:#b9c4ca}
.soc-terminal-name{display:inline-flex;align-items:center;gap:.55rem}
.soc-terminal-name i{width:8px;height:8px;border-radius:50%;background:#4bc686;box-shadow:0 0 0 3px rgba(75,198,134,.12)}
.soc-reset{padding:.35rem .55rem;border:0;border-radius:6px;background:transparent;color:#9faab3;cursor:pointer;font:500 .69rem "Manrope",sans-serif}
.soc-reset:hover{background:#1e2830;color:white}
.soc-output{flex:1;min-height:0;overflow:auto;padding:1rem;color:#cbd5da;white-space:pre-wrap;overflow-wrap:anywhere;scrollbar-color:#37444d transparent;cursor:text;font:400 clamp(.71rem,.86vw,.82rem)/1.65 "DM Mono",monospace}
.soc-line-title{color:#f3f4f6;font-weight:500}.soc-line-muted{color:#81939c}.soc-line-accent{color:#9cdec4}.soc-line-success{color:#77d8a0}.soc-line-error{color:#ff8077}.soc-line-command{color:#f2f5f6;margin-top:.3rem}
.soc-form{display:flex;align-items:center;gap:.65rem;min-width:0;flex-shrink:0;padding:.7rem 1rem;border-top:1px solid #253039}
.soc-form label{color:#7cdaa5;font:500 .72rem "DM Mono",monospace;white-space:nowrap}
.soc-form input{flex:1;min-width:0;width:100%;padding:0;border:0!important;outline:0!important;border-radius:0!important;background:transparent!important;color:#f5f7f8!important;box-shadow:none!important;font:400 16px/1.5 "DM Mono",monospace;caret-color:#80dba7}
.soc-form input::placeholder{color:#687783}
.soc-console-foot{display:flex;gap:1rem;justify-content:space-between;flex-shrink:0;padding:.4rem 1rem;border-top:1px solid #242b31;background:#0d1114!important;color:#7e909b;font:400 .6rem/1.3 "DM Mono",monospace}
.soc-legend{display:grid;grid-template-columns:1.15fr repeat(3,minmax(0,1fr));gap:1.3rem;margin-top:1rem;padding:1.15rem 1.35rem;border:1px solid var(--line);border-radius:13px;background:rgba(130,130,130,.025);font-family:"Manrope",sans-serif}
.soc-legend strong{display:block;color:var(--ink);margin-bottom:.25rem;font-size:.79rem}
.soc-legend p{margin:0;color:var(--muted);font-size:.72rem;line-height:1.65}
.soc-tab:focus-visible,.soc-alert-row:focus-visible,.soc-file-row:focus-visible,.soc-action-buttons button:focus-visible,.soc-reset:focus-visible,.soc-start:focus-visible{outline:2px solid #67bee7;outline-offset:2px}
@media(max-width:1250px){
  .soc-layout{grid-template-columns:minmax(260px,.34fr) minmax(0,1fr);gap:1rem}
  .soc-alert-row{grid-template-columns:22px 53px minmax(0,1fr) 10px;gap:.4rem;padding:.4rem}
  .soc-alert-detail{padding:1rem}
  .soc-action-buttons{grid-template-columns:1fr}
  .soc-action-buttons button{min-height:31px}
  .soc-steps{gap:.7rem}
}
@media(max-width:970px){
  .soc-layout{height:auto;min-height:0;grid-template-columns:minmax(0,1fr)}
  .soc-brief{padding:.8rem .3rem 1rem}
  .soc-brief h3 br{display:none}
  .soc-brief-bottom{margin-top:.6rem}
  .soc-dashboard{height:700px}
  .soc-action-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}
  .soc-legend{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .soc-dashboard{height:auto;min-height:670px}
  .soc-tabs{padding:.6rem .45rem;gap:0;min-height:63px}
  .soc-tab{font-size:.73rem;gap:.3rem;padding:.5rem .47rem}
  .soc-alert-count{width:17px;height:17px;font-size:.58rem}
  .soc-status-badge{font-size:.52rem;padding:.38rem .4rem}
  .soc-investigation{grid-template-columns:1fr;flex:none;border:0}
  .soc-investigation-list{border-right:0;border-bottom:1px solid #2b3035;padding:.75rem;max-height:285px}
  .soc-alert-detail{padding:1rem;min-height:240px}
  .soc-terminal-block{flex:none;height:300px;margin:.5rem .7rem .8rem}
  .soc-legend{grid-template-columns:1fr;gap:.9rem}
  .soc-console-foot span:first-child{display:none}
}
@media(max-width:430px){
  .soc-tab span[aria-hidden]{display:none}
  .soc-detail-data>div{grid-template-columns:95px minmax(0,1fr)}
  .soc-action-buttons{grid-template-columns:1fr}
  .soc-output{font-size:.72rem}
  .soc-form{gap:.35rem}
  .soc-form label{font-size:.6rem}
}
@media(prefers-reduced-motion:reduce){.soc-start,.soc-alert-row{transition:none}}
