/* HeapCrash IDE. The code surface is always dark, in both themes. */
.ide{--ide-bg:#0E1626;--ide-bar:#0B1220;--ide-line:rgba(255,255,255,.09);--ide-ink:#DCE3F0;--ide-muted:#7D8AA6;--ide-dim:#4A5672;
  border:1px solid var(--ide-line);border-radius:var(--hf-r-lg,10px);background:var(--ide-bg);color:var(--ide-ink);overflow:hidden;display:flex;flex-direction:column;font-family:var(--hf-sans,system-ui);min-width:0}
.ide *{box-sizing:border-box}
.ide-bar{display:flex;align-items:stretch;justify-content:space-between;gap:8px;background:var(--ide-bar);border-bottom:1px solid var(--ide-line);min-height:42px;flex-wrap:wrap}
.ide-files{display:flex;align-items:stretch;min-width:0;overflow-x:auto}
.ide-file{appearance:none;border:0;background:transparent;color:var(--ide-muted);font:500 12.5px/1 var(--hf-mono,monospace);padding:0 14px;display:flex;align-items:center;gap:8px;border-right:1px solid var(--ide-line);cursor:pointer;white-space:nowrap;min-height:42px}
.ide-file[aria-selected="true"]{background:var(--ide-bg);color:var(--ide-ink);box-shadow:inset 0 2px 0 var(--hf-orange,#F97316)}
.ide-file .ro{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ide-dim)}
.ide-file .dirty{width:7px;height:7px;border-radius:50%;background:var(--ide-muted);display:none}
.ide-file.is-dirty .dirty{display:inline-block}
.ide-actions{display:flex;align-items:center;gap:6px;padding:5px 8px;flex-wrap:wrap}
.ide .ide-sel,.ide select.ide-sel{appearance:none;-webkit-appearance:none;width:auto;min-height:0;height:auto;margin:0;box-shadow:none;background:#141E33 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237D8AA6' fill='none' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 9px center;color:var(--ide-ink);border:1px solid var(--ide-line);border-radius:var(--hf-r-sm,4px);font:500 12.5px/1 var(--hf-mono,monospace);padding:8px 28px 8px 10px;cursor:pointer;color:var(--ide-ink)!important;background-color:#141E33!important}
.ide select.ide-sel option{background:#141E33;color:#DCE3F0}
.ide-sel:focus-visible,.ide-btn:focus-visible,.ide-file:focus-visible,.ide-ctab:focus-visible,.ide-prob:focus-visible{outline:2px solid var(--hf-orange,#F97316);outline-offset:1px}
.ide-btn{appearance:none;border:1px solid var(--ide-line);background:#141E33;color:var(--ide-ink);font:600 12.5px/1 var(--hf-sans,system-ui);padding:8px 12px;border-radius:var(--hf-r-sm,4px);cursor:pointer;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.ide-btn:hover{border-color:rgba(255,255,255,.22)}
.ide-btn[disabled]{opacity:.5;cursor:default}
.ide-btn.run{background:#16233D;border-color:rgba(79,195,217,.35);color:#BFEAF3}
.ide-btn.run svg{fill:#4FC3D9}
.ide-btn.submit{background:var(--hf-orange,#F97316);border-color:var(--hf-orange,#F97316);color:#1A0E04}
.ide-btn kbd{font:500 10.5px/1 var(--hf-mono,monospace);color:inherit;opacity:.65;border:0;background:none;padding:0}
.ide-edwrap{position:relative;min-height:260px}
.ide .CodeMirror{height:auto!important;border:0!important;border-radius:0!important;background:var(--ide-bg)!important;font-size:13.5px;line-height:1.6}
.ide .CodeMirror-scroll{min-height:260px;max-height:62vh}
.ide .CodeMirror-gutters{background:var(--ide-bg)!important;border-right:1px solid var(--ide-line)!important}
.ide .CodeMirror-activeline-background{background:rgba(255,255,255,.035)}
.ide .ide-gut{width:14px}
.ide .ide-mark{display:block;width:8px;height:8px;border-radius:50%;margin:7px 0 0 3px;background:#FF7B6B}
.ide .ide-mark.warning{background:#F6B44B}
.ide .ide-errline{background:rgba(255,123,107,.10)}
.ide .ide-warnline{background:rgba(246,180,75,.07)}
.ide-lens{font:500 12px/1.5 var(--hf-mono,monospace);color:#FF9C8F;padding:2px 10px 4px 10px;background:rgba(255,123,107,.06);border-left:2px solid #FF7B6B;white-space:pre-wrap}
.ide-lens.warning{color:#F6C97A;background:rgba(246,180,75,.05);border-left-color:#F6B44B}
.ide-ro{margin:0;padding:12px 14px;font:13px/1.6 var(--hf-mono,monospace);color:var(--ide-ink);white-space:pre;overflow:auto;max-height:62vh;min-height:260px;font-variant-ligatures:none}
.ide-plain{width:100%;min-height:300px;border:0;border-radius:0;background:var(--ide-bg);color:var(--ide-ink);font:13.5px/1.6 var(--hf-mono,monospace);padding:12px 14px;resize:vertical}
.ide-load{height:2px;background:transparent;position:relative;overflow:hidden}
.ide-load i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--hf-orange,#F97316);transition:width .2s}
.ide-load.indet i{width:30%;animation:ideslide 1.1s linear infinite}
@keyframes ideslide{from{left:-30%}to{left:100%}}
.ide-console{border-top:1px solid var(--ide-line);background:#0A101C;display:flex;flex-direction:column}
.ide-ctabs{display:flex;align-items:stretch;justify-content:space-between;border-bottom:1px solid var(--ide-line);min-height:36px;flex-wrap:wrap}
.ide-ctabs .tabs{display:flex}
.ide-ctab{appearance:none;border:0;background:transparent;color:var(--ide-muted);font:600 11px/1 var(--hf-mono,monospace);letter-spacing:.06em;text-transform:uppercase;padding:0 14px;cursor:pointer;display:flex;align-items:center;gap:6px;min-height:36px}
.ide-ctab[aria-selected="true"]{color:var(--ide-ink);box-shadow:inset 0 -2px 0 var(--hf-orange,#F97316)}
.ide-ctab .n{font-weight:600;border-radius:9px;padding:2px 6px;background:rgba(255,255,255,.08);color:var(--ide-ink);letter-spacing:0}
.ide-ctab .n.err{background:#FF7B6B;color:#14090A}
.ide-meta{font:500 11.5px/1 var(--hf-mono,monospace);color:var(--ide-dim);display:flex;align-items:center;padding:0 12px;gap:10px}
.ide-cbody{min-height:130px;max-height:42vh;overflow:auto;padding:12px 14px;font:13px/1.55 var(--hf-mono,monospace)}
.ide-cbody .idle{color:var(--ide-muted);font-family:var(--hf-sans,system-ui);font-size:13.5px}
.ide-cbody .idle b{color:var(--ide-ink);font-weight:600}
.ide-out{margin:0;white-space:pre-wrap;word-break:break-word;color:var(--ide-ink)}
.ide-out .e{color:#FF9C8F}
.ide-sum{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px;font-family:var(--hf-sans,system-ui);font-size:14px;color:var(--ide-ink)}
.ide-sum .t{color:var(--ide-muted);font-size:12.5px;font-family:var(--hf-mono,monospace)}
.ide-banner{border:1px solid rgba(255,123,107,.35);background:rgba(255,123,107,.08);color:#FFD1CB;border-radius:var(--hf-r-sm,4px);padding:9px 11px;margin:0 0 10px;font-family:var(--hf-sans,system-ui);font-size:13.5px;line-height:1.5}
.ide-banner.info{border-color:rgba(79,195,217,.3);background:rgba(79,195,217,.07);color:#CBEFF6}
.ide-banner b{color:#fff}
.ide-tests{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.ide-tests li{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:baseline;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.ide-tests .nm{color:var(--ide-ink)}
.ide-tests .why{grid-column:2;color:#FF9C8F;font-size:12.5px}
.ide-probs{list-style:none;margin:0;padding:0}
.ide-prob{display:grid;grid-template-columns:12px auto 1fr;gap:10px;align-items:baseline;width:100%;text-align:left;appearance:none;border:0;background:transparent;color:var(--ide-ink);font:13px/1.5 var(--hf-mono,monospace);padding:6px 4px;border-radius:var(--hf-r-sm,4px);cursor:pointer}
.ide-prob:hover{background:rgba(255,255,255,.04)}
.ide-prob .dot{width:8px;height:8px;border-radius:50%;background:#FF7B6B;align-self:center}
.ide-prob.warning .dot{background:#F6B44B}
.ide-prob .loc{color:var(--ide-muted);white-space:nowrap}
.ide-prob .tip{grid-column:3;color:var(--ide-muted);font-family:var(--hf-sans,system-ui);font-size:12.5px}
.ide-prob[disabled]{cursor:default}
.ide-status{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--ide-bar);border-top:1px solid var(--ide-line);font:500 11.5px/1 var(--hf-mono,monospace);color:var(--ide-dim);padding:7px 12px}
.ide-status .ok{color:#4FC3D9}.ide-status .bad{color:#FF7B6B}
.ide .hf-verdict{flex:none}
@media (max-width:640px){
  .ide-btn kbd{display:none}
  .ide-actions{width:100%;justify-content:flex-end;border-top:1px solid var(--ide-line)}
  .ide .CodeMirror{font-size:13px}
  .ide-meta{display:none}
  .ide-prob{grid-template-columns:12px 1fr;gap:2px 10px}
  .ide-prob .dot{grid-row:1}
  .ide-prob .loc{grid-column:2}
  .ide-prob>span:nth-child(3),.ide-prob .tip{grid-column:2}
}
.ide .ide-flash{animation:ideflash 1.8s ease-out}
@keyframes ideflash{0%,35%{background:rgba(249,115,22,.28)}100%{background:transparent}}
.ide-probrow{display:flex;align-items:flex-start;gap:8px}
.ide-probrow .ide-prob{flex:1;min-width:0}
.ide-hintbtn,.ide-lens-hint,.ide-banbtn{appearance:none;flex:none;border:1px solid rgba(249,115,22,.45);background:rgba(249,115,22,.10);color:#FDBA74;font:600 11.5px/1 var(--hf-mono,monospace);padding:5px 9px;border-radius:var(--hf-r-sm,4px);cursor:pointer;margin-top:4px}
.ide-hintbtn:hover,.ide-lens-hint:hover,.ide-banbtn:hover{background:rgba(249,115,22,.2);color:#FED7AA}
.ide-hintbtn[aria-expanded="true"]{background:transparent;color:var(--ide-muted);border-color:var(--ide-line)}
.ide-lens{display:flex;align-items:baseline;gap:10px}
.ide-lens span{flex:1;min-width:0}
.ide-lens-hint{margin:0;padding:2px 7px;font-size:10.5px}
.ide-banbtn{margin:8px 0 0;display:inline-block}
.ide-hint{margin:4px 0 10px 26px;padding:10px 12px;border:1px solid rgba(249,115,22,.28);background:rgba(249,115,22,.05);border-radius:var(--hf-r-sm,4px);font:13.5px/1.55 var(--hf-sans,system-ui);color:var(--ide-ink)}
.ide-hint p{margin:0 0 8px}
.ide-hint p:last-child{margin-bottom:0}
.ide-hint .hh-title{font:600 12px/1.3 var(--hf-mono,monospace);letter-spacing:.04em;text-transform:uppercase;color:#FDBA74}
.ide-hint code{font:12.5px var(--hf-mono,monospace);background:rgba(255,255,255,.07);padding:1px 5px;border-radius:3px}
.ide-hint .hh-code{margin:0 0 8px;padding:8px 10px;background:#070C16;border:1px solid var(--ide-line);border-radius:var(--hf-r-sm,4px);font:12.5px/1.55 var(--hf-mono,monospace);white-space:pre;overflow-x:auto;color:#DCE3F0;font-variant-ligatures:none}
.ide-hint .hh-kind{font:500 10.5px var(--hf-mono,monospace);text-transform:uppercase;letter-spacing:.06em;color:var(--ide-muted);margin-left:6px}
@media (max-width:640px){.ide-hint{margin-left:0}}
.hh-ai{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(249,115,22,.25)}
.ide-explain{appearance:none;border:1px solid #2B3B66;background:#1B2B55;color:#DCE6FF;font:600 12px/1 var(--hf-sans,system-ui);padding:7px 10px;border-radius:var(--hf-r-sm,4px);cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.ide-explain:hover{background:#22356A}
.ide-explain .pro{font:700 9.5px/1 var(--hf-mono,monospace);letter-spacing:.08em;background:#DCE6FF;color:#1B2B55;padding:2px 5px;border-radius:3px}
.hh-wait{color:var(--ide-muted);font-style:italic}
.hh-err{color:#FF9C8F;margin-top:6px}
