/*@4.LAPLC.1*/

.pl-lab {
  --pl-gap: .6rem;
  --pl-ctrl: 34px;
  --pl-side-w: 236px;
  --pl-out-w: 366px;
  --pl-rail: 44px;
  --pl-accent: var(--st-accent, #a78bfa);
  --pl-accent-soft: color-mix(in srgb, var(--pl-accent) 12%, transparent);
  --pl-ok: var(--st-ok, #10b981);
  --pl-code-bg: var(--bg-surface);
  --pl-shell-h: 64px;
  /*@4.LAPLC.2*/
  --pl-fs-ctrl: .76rem;
  --pl-fs-item: .84rem;
  --pl-fs-note: .7rem;
  --pl-code-fs: .82rem;
  --pl-code-lh: 1.65;

  display: grid;
  /*@4.LAPLC.3*/
  grid-template-columns: var(--pl-side-w) var(--pl-gap) minmax(0, 1fr) var(--pl-gap) var(--pl-out-w);
  gap: 0;
  height: calc(100dvh - var(--pl-shell-h) - 1.5rem);
  padding: .75rem;
  max-width: 1720px;
  margin-inline: auto;
}

/*@4.LAPLC.4*/
.pl-tint {
  background: color-mix(in srgb, var(--tint) var(--tint-fill), transparent);
  color: color-mix(in srgb, var(--tint) 72%, var(--tint-ink));
  border: 1px solid color-mix(in srgb, var(--tint) 30%, transparent);
}
.pl-tint > i { color: color-mix(in srgb, var(--tint) 82%, var(--tint-ink)); }

/*@4.LAPLC.5*/
.pl-lab, .pl-overlay {
  --tint-ink: #ffffff;   /*@4.LAPLC.6*/
  --tint-fill: 15%;
  --tint-ok:   #10b981;
  --tint-bad:  #ef4444;
  --tint-warn: #f59e0b;
  --tint-run:  #38bdf8;
  --tint-tab:  #a78bfa;
  --tok-key:  #c792ea;   /*@4.LAPLC.7*/
  --tok-str:  #c3e88d;   /*@4.LAPLC.8*/
  --tok-num:  #f78c6c;   /*@4.LAPLC.9*/
  --tok-com:  #8d9ab0;   /*@4.LAPLC.10*/
  --tok-fn:   #82aaff;   /*@4.LAPLC.11*/
  --tok-op:   #89ddff;   /*@4.LAPLC.12*/
  --tok-punc: var(--text-secondary);
}
:root[data-theme="dim"] .pl-lab {
  --tok-key: #d0a8f0; --tok-str: #b9e88d; --tok-num: #ffab7a;
  --tok-com: #8794a8; --tok-fn: #8ab4ff; --tok-op: #7fd6ff;
}
:root[data-theme="light"] .pl-lab, :root[data-theme="light"] .pl-overlay {
  --pl-code-bg: #fdfdfe;
  --tint-ink: #0f1720;   /*@4.LAPLC.13*/
  --tint-fill: 13%;
  --tok-key: #8b2fb8;  /*@4.LAPLC.14*/
  --tok-str: #0f7a3d;  /*@4.LAPLC.15*/
  --tok-num: #b34700;  /*@4.LAPLC.16*/
  --tok-com: #6b7280;  /*@4.LAPLC.17*/
  --tok-fn:  #1f5fd0;  /*@4.LAPLC.18*/
  --tok-op:  #0b6e8a;  /*@4.LAPLC.19*/
}


/*@4.LAPLC.21*/
:root body[data-pl-theme] .pl-code,
:root body[data-pl-theme] .pl-stdout,
:root body[data-pl-theme] .pl-c-body,
:root body[data-pl-theme] .pl-console,
:root body[data-pl-theme] .pl-stdin-wrap {
  background: var(--plt-bg); color: var(--plt-fg);
}
/*@4.LAPLC.150*/
:root body[data-pl-theme] .pl-stdout .pl-line,
:root body[data-pl-theme] .pl-c-t { color: var(--plt-fg); }
/*@4.LAPLC.22*/
:root body[data-pl-theme] .pl-gutter {
  background: var(--plt-bg); color: var(--plt-dim); opacity: 1;
  border-inline-end-color: var(--plt-border);
}
:root body[data-pl-theme] .pl-editor { caret-color: var(--plt-fg); }
:root body[data-pl-theme] .pl-line.pl-note,
:root body[data-pl-theme] .pl-c-line.is-sys .pl-c-t { color: var(--plt-dim); }

/*@4.LAPLC.23*/
:root body[data-pl-theme] {
  --bg-body: var(--plt-bg); --bg-surface: var(--plt-panel);
  --bg-card: var(--plt-panel); --bg-elevated: var(--plt-raise);
  --border-color: var(--plt-border); --border-subtle: var(--plt-border);
  --border-hover: var(--plt-border-2);
  --text-primary: var(--plt-fg); --text-secondary: var(--plt-fg-2);
  --text-muted: var(--plt-dim);
  --st-accent: var(--plt-accent); --code-bg: var(--plt-bg);
  --shadow-base: rgba(0, 0, 0, .35);
  /*@4.LAPLC.24*/
  background-color: var(--plt-bg);
}
/*@4.LAPLC.20*/
:root body[data-pl-theme] .pl-lab, :root .pl-lab[data-pl-theme] {
  --pl-code-bg: var(--plt-bg); --pl-accent: var(--plt-accent);
  --tok-key: var(--plt-key); --tok-str: var(--plt-str); --tok-num: var(--plt-num);
  --tok-com: var(--plt-com); --tok-fn: var(--plt-fn); --tok-op: var(--plt-op);
  --tok-punc: var(--plt-fg); --tint-ink: var(--plt-ink); --tint-run: var(--plt-accent);
  /*@4.LAPLC.25*/
  --tok-typ: var(--plt-typ); --tok-lit: var(--plt-lit); --tok-var: var(--plt-var);
  --tok-ann: var(--plt-op); --tok-tag: var(--plt-var); --tok-att: var(--plt-fn);
}

/*@4.LAPLC.26*/
body[data-pl-theme="terminal"] {
  --plt-bg: #000000; --plt-panel: #0b0b0b; --plt-raise: #171717;
  --plt-border: #2a2a2a; --plt-border-2: #3d3d3d;
  --plt-fg: #e6e6e6; --plt-fg-2: #b9b9b9; --plt-dim: #7d7d7d;
  --plt-accent: #5fd7ff; --plt-ink: #ffffff;
  --plt-key: #5fd7ff; --plt-str: #98e06a; --plt-num: #ffb86c;
  --plt-com: #7f8c8d; --plt-fn: #ffd75f; --plt-op: #ff79c6;
  --plt-typ: #87d7ff; --plt-lit: #ff87af; --plt-var: #ffaf5f;
  color-scheme: dark;
}
/*@4.LAPLC.27*/
body[data-pl-theme="vsdark"] {
  --plt-bg: #1e1e1e; --plt-panel: #252526; --plt-raise: #2d2d30;
  --plt-border: #3e3e42; --plt-border-2: #545458;
  --plt-fg: #d4d4d4; --plt-fg-2: #bdbdbd; --plt-dim: #8a8a8a;
  --plt-accent: #3794ff; --plt-ink: #ffffff;
  --plt-key: #569cd6; --plt-str: #ce9178; --plt-num: #b5cea8;
  --plt-com: #6a9955; --plt-fn: #dcdcaa; --plt-op: #d4d4d4;
  --plt-typ: #4ec9b0; --plt-lit: #569cd6; --plt-var: #9cdcfe;
  color-scheme: dark;
}
/*@4.LAPLC.28*/
body[data-pl-theme="monokai"] {
  --plt-bg: #272822; --plt-panel: #2f302a; --plt-raise: #3e3d32;
  --plt-border: #49483e; --plt-border-2: #5f5e50;
  --plt-fg: #f8f8f2; --plt-fg-2: #d6d6cc; --plt-dim: #9b9c93;
  --plt-accent: #a6e22e; --plt-ink: #ffffff;
  --plt-key: #f92672; --plt-str: #e6db74; --plt-num: #ae81ff;
  --plt-com: #9b9c93; --plt-fn: #a6e22e; --plt-op: #f92672;
  --plt-typ: #66d9ef; --plt-lit: #ae81ff; --plt-var: #fd971f;
  color-scheme: dark;
}
/*@4.LAPLC.29*/
body[data-pl-theme="dracula"] {
  --plt-bg: #282a36; --plt-panel: #2f313f; --plt-raise: #3a3d4d;
  --plt-border: #44475a; --plt-border-2: #5a5d72;
  --plt-fg: #f8f8f2; --plt-fg-2: #d8d8d2; --plt-dim: #9aa3c4;
  --plt-accent: #bd93f9; --plt-ink: #ffffff;
  --plt-key: #ff79c6; --plt-str: #f1fa8c; --plt-num: #bd93f9;
  --plt-com: #8f9ac0; --plt-fn: #50fa7b; --plt-op: #ff79c6;
  --plt-typ: #8be9fd; --plt-lit: #bd93f9; --plt-var: #ffb86c;
  color-scheme: dark;
}
/*@4.LAPLC.30*/
body[data-pl-theme="vslight"] {
  --plt-bg: #ffffff; --plt-panel: #f6f6f6; --plt-raise: #ececec;
  --plt-border: #d6d6d6; --plt-border-2: #b9b9b9;
  --plt-fg: #1f1f1f; --plt-fg-2: #3b3b3b; --plt-dim: #6a6a6a;
  --plt-accent: #005fb8; --plt-ink: #0f1720;
  --plt-key: #0000ff; --plt-str: #a31515; --plt-num: #098658;
  --plt-com: #008000; --plt-fn: #795e26; --plt-op: #1f1f1f;
  --plt-typ: #267f99; --plt-lit: #0000ff; --plt-var: #001080;
  color-scheme: light;
}
/*@4.LAPLC.31*/
body[data-pl-theme="solar"] {
  --plt-bg: #fdf6e3; --plt-panel: #f4edda; --plt-raise: #eee8d5;
  --plt-border: #ded7c3; --plt-border-2: #c9c2ae;
  --plt-fg: #073642; --plt-fg-2: #3f5661; --plt-dim: #7c8b8b;
  --plt-accent: #1d6fa5; --plt-ink: #002b36;
  /*@4.LAPLC.32*/
  --plt-key: #6b7d00; --plt-str: #0f7068; --plt-num: #d33682;
  --plt-com: #657b83; --plt-fn: #1d6fa5; --plt-op: #8a6800;
  --plt-typ: #565ba8; --plt-lit: #d33682; --plt-var: #a03a10;
  color-scheme: light;
}

/*@4.LAPLC.33*/
.pl-out.is-striped .pl-stdout .pl-line.is-alt:not(.pl-err):not(.pl-warn):not(.pl-note),
.pl-out.is-striped .pl-c-line.is-alt:not(.is-err):not(.is-sys) {
  background: color-mix(in srgb, var(--plt-fg, var(--text-primary)) 5%, transparent);
}

/*@4.LAPLC.34*/
.pl-theme-pop {
  position: absolute; z-index: 40; inset-inline-end: .4rem; top: 2.4rem;
  display: flex; flex-direction: column; gap: .12rem; padding: .3rem;
  min-width: 190px; max-height: 60vh; overflow: auto;
  background: var(--bg-card); border: 1px solid var(--border-color);
  border-radius: var(--radius-lg); box-shadow: 0 10px 30px rgba(0,0,0,.28);
}
.pl-theme-pop[hidden] { display: none; }
.pl-theme-opt {
  display: flex; align-items: center; gap: .5rem; width: 100%;
  padding: .35rem .45rem; border: 1px solid transparent; border-radius: var(--radius-md);
  background: transparent; cursor: pointer; font-family: inherit;
  font-size: var(--pl-fs-ctrl); color: var(--text-secondary); text-align: start;
}
.pl-theme-opt:hover { background: var(--bg-elevated); color: var(--text-primary); }
.pl-theme-opt.is-on { border-color: var(--pl-accent); color: var(--text-primary); font-weight: 700; }
/*@4.LAPLC.35*/
.pl-theme-swatch {
  width: 34px; height: 20px; flex-shrink: 0; border-radius: 5px;
  border: 1px solid var(--border-color); display: flex; align-items: center;
  justify-content: center; gap: 2px; overflow: hidden;
}
.pl-theme-swatch i { width: 4px; height: 9px; border-radius: 1px; display: block; }
.pl-theme-sep {
  margin: .25rem .2rem .1rem; font-size: .6rem; font-weight: 800;
  color: var(--text-muted); letter-spacing: .02em;
}
.pl-theme-toggle {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  padding: .35rem .45rem; margin-top: .2rem; border-top: 1px solid var(--border-subtle);
  font-size: var(--pl-fs-ctrl); color: var(--text-secondary);
  background: transparent; border-inline: 0; border-bottom: 0; width: 100%;
  cursor: pointer; font-family: inherit;
}
.pl-theme-toggle b { font-weight: 700; color: var(--text-primary); }
.pl-theme-toggle span { font-size: .66rem; color: var(--text-muted); }

.pl-lab.is-side-collapsed { grid-template-columns: var(--pl-rail) var(--pl-gap) minmax(0, 1fr) var(--pl-gap) var(--pl-out-w); }
.pl-lab.is-out-collapsed  { grid-template-columns: var(--pl-side-w) var(--pl-gap) minmax(0, 1fr) var(--pl-gap) var(--pl-rail); }
.pl-lab.is-side-collapsed.is-out-collapsed { grid-template-columns: var(--pl-rail) var(--pl-gap) minmax(0, 1fr) var(--pl-gap) var(--pl-rail); }
/*@4.LAPLC.36*/
.pl-lab.is-side-collapsed .pl-grip[data-grip="side"],
.pl-lab.is-out-collapsed .pl-grip[data-grip="out"] { pointer-events: none; opacity: 0; }

.pl-side, .pl-main, .pl-out {
  background: var(--bg-card); border: 1px solid var(--border-color);
  border-radius: var(--radius-xl);
  display: flex; flex-direction: column; min-width: 0; overflow: hidden;
}

/*@4.LAPLC.37*/
.pl-lab button, .pl-lab input, .pl-lab textarea, .pl-lab label, .pl-lab span, .pl-lab p, .pl-lab em {
  font-family: 'Cairo', sans-serif;
}
/*@4.LAPLC.38*/
.pl-lab .pl-line, .pl-lab .pl-line-t, .pl-lab .pl-ln,
.pl-lab .pl-c-line, .pl-lab .pl-c-t, .pl-lab .pl-c-mark,
.pl-lab .pl-a, .pl-lab .pl-typed, .pl-lab .pl-c-field {
  font-family: ui-monospace, 'Cascadia Mono', 'Segoe UI Mono', 'SFMono-Regular',
               Consolas, 'DejaVu Sans Mono', 'Liberation Mono', monospace;
  font-variant-ligatures: none;
}

[dir="ltr"] .pl-lab button, [dir="ltr"] .pl-lab input, [dir="ltr"] .pl-lab textarea,
[dir="ltr"] .pl-lab label, [dir="ltr"] .pl-lab span, [dir="ltr"] .pl-lab p, [dir="ltr"] .pl-lab em {
  font-family: 'Inter', 'Cairo', sans-serif;
}
/*@4.LAPLC.39*/
.pl-lab .ltr, .pl-lab kbd, .pl-lab .pl-metrics,
.pl-lab .pl-editor, .pl-lab .pl-hl, .pl-lab .pl-gutter, .pl-lab .pl-stdin,
.pl-lab .pl-lang-name, .pl-lab .pl-lang-ver, .pl-lab .pl-opt-name, .pl-lab .pl-opt-ver,
.pl-lab .pl-keys button { font-family: 'JetBrains Mono', 'Cairo', monospace; }
/*@4.LAPLC.40*/
.pl-lab .pl-hl span, .pl-lab .pl-hl i, .pl-lab .pl-hl b,
.pl-lab .pl-stdout span, .pl-lab .pl-stdout .pl-line { font-family: inherit; }

/*@4.LAPLC.41*/
.pl-side-tabs { display: flex; gap: .25rem; padding: .45rem; border-block-end: 1px solid var(--border-color); }
.pl-side-tab, .pl-out-tab {
  flex: 1; padding: .36rem .3rem; border: 1px solid transparent; background: transparent;
  color: var(--text-muted); font-size: var(--pl-fs-ctrl); font-weight: 700;
  border-radius: var(--radius-md); cursor: pointer; white-space: nowrap;
  transition: color .18s, background-color .18s, border-color .18s;
}
.pl-side-tab:hover, .pl-out-tab:hover { color: var(--text-primary); border-color: var(--border-color); }
/*@4.LAPLC.42*/
.pl-side-tab.is-on, .pl-out-tab.is-on {
  --tint: var(--tint-tab);
  background: color-mix(in srgb, var(--tint) var(--tint-fill), transparent);
  color: color-mix(in srgb, var(--tint) 72%, var(--tint-ink));
  border-color: color-mix(in srgb, var(--tint) 30%, transparent);
  font-weight: 800;
}

.pl-side-body { flex: 1; overflow-y: auto; padding: .5rem; display: flex; flex-direction: column; gap: .18rem; }
.pl-side-body[hidden] { display: none; }

.pl-file, .pl-ex, .pl-save {
  display: flex; align-items: center; gap: .5rem;
  padding: .44rem .55rem; border-radius: var(--radius-md);
  border: 1px solid transparent; cursor: pointer;
  color: var(--text-secondary); font-size: var(--pl-fs-item); font-weight: 600;
  transition: border-color .18s, background-color .18s, color .18s;
}
.pl-file i, .pl-ex i, .pl-save i { color: var(--text-muted); font-size: .76rem; }
.pl-file:hover, .pl-ex:hover, .pl-save:hover { border-color: var(--border-color); color: var(--text-primary); background: var(--bg-elevated); }
.pl-file.is-on, .pl-ex.is-on {
  background: color-mix(in srgb, var(--tint, var(--tint-ok)) var(--tint-fill), transparent);
  border-color: color-mix(in srgb, var(--tint, var(--tint-ok)) 34%, transparent);
  color: var(--text-primary);
}
.pl-file.is-on > i, .pl-ex.is-on > i { color: var(--pl-ok); }
.pl-ex { width: 100%; background: transparent; font-family: inherit; text-align: start; }
.pl-ex span, .pl-save span, .pl-file span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl-save em { font-style: normal; font-size: var(--pl-fs-note); color: var(--text-secondary); }

/*@4.LAPLC.43*/
.pl-sep {
  display: flex; align-items: center; gap: .5rem;
  padding: .7rem .2rem .3rem;
  font-size: .68rem; font-weight: 800; letter-spacing: .04em;
  /*@4.LAPLC.44*/
  color: var(--text-secondary); white-space: nowrap;
}
.pl-sep::before, .pl-sep::after {
  content: ''; flex: 1; height: 1px;
  background: linear-gradient(to left, var(--border-color), transparent);
}
[dir="ltr"] .pl-sep::before, [dir="ltr"] .pl-sep::after {
  background: linear-gradient(to right, var(--border-color), transparent);
}
.pl-sep::after { transform: scaleX(-1); }
.pl-sep > span { flex-shrink: 0; }

.pl-dashed {
  margin-top: .4rem; padding: .48rem .6rem;
  background: transparent; border: 1px dashed color-mix(in srgb, var(--text-muted) 60%, transparent);
  border-radius: var(--radius-md); color: var(--text-muted);
  font-size: var(--pl-fs-ctrl); font-weight: 700; cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: .4rem;
  transition: border-color .18s, color .18s;
}
.pl-dashed:hover { border-color: var(--pl-accent); color: var(--pl-accent); }

.pl-ex-search { position: relative; margin-bottom: .25rem; }
.pl-ex-search i {
  position: absolute; inset-inline-start: .65rem; top: 50%; transform: translateY(-50%);
  color: var(--text-muted); font-size: .72rem; pointer-events: none;
}
.pl-ex-search input {
  width: 100%; padding: .42rem .65rem; padding-inline-start: 1.9rem;
  background: var(--bg-elevated); border: 1px solid var(--border-color);
  border-radius: var(--radius-pill); color: var(--text-primary);
  font-size: var(--pl-fs-ctrl); font-weight: 600;
  transition: border-color .18s, box-shadow .18s;
}
.pl-ex-search input:focus {
  outline: none; border-color: var(--pl-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pl-accent) 18%, transparent);
}

/*@4.LAPLC.45*/
.pl-bar { display: flex; align-items: center; gap: .45rem; padding: .45rem .55rem;
  border-block-end: 1px solid var(--border-color); flex-shrink: 0; position: relative; }
.pl-spacer { flex: 1; min-width: 0; }

.pl-collapse {
  width: var(--pl-ctrl); height: var(--pl-ctrl); flex-shrink: 0;
  display: grid; place-items: center;
  background: var(--bg-elevated); border: 1px solid transparent;
  border-radius: var(--radius-md); color: var(--text-muted);
  font-size: 1rem; font-weight: 800; cursor: pointer;
  transition: border-color .18s, color .18s;
}
.pl-collapse:hover { border-color: var(--pl-accent); color: var(--pl-accent); }

/*@4.LAPLC.46*/
.pl-lang { position: relative; flex-shrink: 0; }
.pl-lang-btn {
  display: flex; align-items: center; gap: .4rem;
  height: var(--pl-ctrl); padding-inline: .7rem;
  background: var(--bg-elevated); border: 1px solid var(--border-color);
  border-radius: var(--radius-lg); cursor: pointer;
  transition: border-color .18s;
}
.pl-lang-btn:hover { border-color: var(--pl-accent); }
.pl-lang-name { font-size: .84rem; font-weight: 600; color: var(--text-primary); letter-spacing: -.01em; }
.pl-lang-ver {
  font-size: .64rem; font-weight: 600; color: var(--text-secondary);
  padding: .08rem .34rem; border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--text-muted) 14%, transparent);
}
.pl-lang-ver:empty { display: none; }
.pl-car { font-size: .58rem; color: var(--text-muted); transition: transform .2s; }
.pl-lang-btn[aria-expanded="true"] .pl-car { transform: rotate(180deg); }

.pl-pop {
  position: absolute; top: calc(100% + .4rem); inset-inline-start: 0;
  width: 320px; max-height: min(62vh, 460px); overflow-y: auto; overscroll-behavior: contain;
  background: color-mix(in srgb, var(--bg-surface) 94%, transparent);
  backdrop-filter: blur(14px) saturate(150%);
  border: 1px solid var(--border-color); border-radius: var(--radius-lg);
  box-shadow: 0 16px 38px -12px rgba(0,0,0,.5);
  padding: .5rem; z-index: 60;
  animation: plPop .2s var(--skin-ease-out, cubic-bezier(.22,1,.36,1));
}
.pl-pop[hidden] { display: none; }
@keyframes plPop { from { opacity: 0; transform: translateY(-6px) scale(.97); } }
@media (prefers-reduced-motion: reduce) { .pl-pop { animation: none; } }

.pl-opt {
  display: flex; align-items: center; gap: .5rem; width: 100%;
  padding: .44rem .55rem; border: 1px solid transparent; border-radius: var(--radius-md);
  background: transparent; cursor: pointer; text-align: start;
  transition: border-color .18s, background-color .18s;
}
.pl-opt:hover { background: var(--bg-elevated); border-color: var(--border-color); }
.pl-opt.is-on {
  background: var(--pl-accent-soft);
  border-color: color-mix(in srgb, var(--pl-accent) 40%, transparent);
}
/*@4.LAPLC.47*/
.pl-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; background: var(--lang-color, var(--text-muted)); }
.pl-opt-name { font-size: .82rem; font-weight: 600; color: var(--text-primary); flex-shrink: 0; letter-spacing: -.01em; }
.pl-opt-ver {
  font-size: .64rem; font-weight: 600; color: var(--text-secondary);
  padding: .06rem .32rem; border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--text-muted) 14%, transparent);
}
.pl-opt-ver:empty { display: none; }
.pl-opt-where {
  margin-inline-start: auto; font-size: .64rem; font-weight: 700;
  padding: .12rem .45rem; border-radius: var(--radius-pill);
  color: var(--text-secondary); border: 1px solid var(--border-color); white-space: nowrap;
}
.pl-opt-where {
  --tint: var(--tint-run);
  background: color-mix(in srgb, var(--tint) 12%, transparent);
  color: color-mix(in srgb, var(--tint) 70%, var(--tint-ink));
  border-color: color-mix(in srgb, var(--tint) 26%, transparent);
}
.pl-opt-where.is-browser { --tint: var(--tint-ok); }

.pl-tier {
  display: inline-flex; align-items: center; gap: .35rem; flex-shrink: 0;
  font-size: var(--pl-fs-note); font-weight: 700; color: var(--text-secondary);
  padding: .2rem .6rem; border: 1px solid var(--border-color); border-radius: var(--radius-pill);
}
.pl-tier i { font-size: .64rem; }
/*@4.LAPLC.48*/
.pl-tier { font-family: inherit; cursor: default; }
/*@4.LAPLC.49*/
.pl-tier.is-switch { cursor: pointer; }
.pl-tier.is-switch:hover { border-color: color-mix(in srgb, var(--tint) 55%, transparent); }
.pl-tier.is-switch:focus-visible { outline: 2px solid var(--tint); outline-offset: 2px; }
.pl-tier-swap { opacity: .6; }
.pl-tier.is-switch:hover .pl-tier-swap { opacity: 1; }
.pl-tier {
  --tint: var(--tint-run);
  background: color-mix(in srgb, var(--tint) var(--tint-fill), transparent);
  color: color-mix(in srgb, var(--tint) 72%, var(--tint-ink));
  border-color: color-mix(in srgb, var(--tint) 30%, transparent);
}
.pl-tier.is-browser { --tint: var(--tint-ok); }

.pl-saved { display: inline-flex; align-items: center; gap: .3rem; font-size: var(--pl-fs-note); font-weight: 700; color: var(--text-secondary); white-space: nowrap; }
.pl-saved i { color: var(--pl-ok); font-size: .64rem; }

.pl-icon {
  width: var(--pl-ctrl); height: var(--pl-ctrl); flex-shrink: 0;
  display: grid; place-items: center;
  background: var(--bg-elevated); border: 1px solid transparent;
  border-radius: var(--radius-md); color: var(--text-muted); cursor: pointer;
  transition: border-color .18s, color .18s;
}
.pl-icon:hover { border-color: var(--pl-accent); color: var(--pl-accent); }

/*@4.LAPLC.50*/
.pl-editor-wrap { flex: 1; min-height: 0; display: flex; background: var(--pl-code-bg); overflow: hidden; }
.pl-gutter {
  flex-shrink: 0; padding: .75rem .5rem .75rem .35rem;
  font-size: var(--pl-code-fs); line-height: var(--pl-code-lh);
  color: var(--text-muted); opacity: .45; text-align: end; user-select: none;
  direction: ltr; overflow: hidden; white-space: pre;
  border-inline-end: 1px solid var(--border-color);
}
.pl-code { position: relative; flex: 1; min-width: 0; overflow: hidden; }
/*@4.LAPLC.51*/
.pl-hl, .pl-editor {
  margin: 0; padding: .75rem .8rem; border: 0;
  font-size: var(--pl-code-fs); line-height: var(--pl-code-lh);
  white-space: pre; tab-size: 4; letter-spacing: 0; word-spacing: 0;
  direction: ltr; unicode-bidi: isolate; text-align: start;
  overflow-wrap: normal; word-break: normal;
  /*@4.LAPLC.52*/
  font-weight: 400;
  font-variant-ligatures: none;
  font-kerning: none;
  font-feature-settings: normal;
}
.pl-hl {
  position: absolute; inset: 0; overflow: auto; pointer-events: none;
  color: var(--tok-punc);
}
.pl-editor {
  position: relative; width: 100%; height: 100%; resize: none; overflow: auto;
  background: transparent; color: transparent; caret-color: var(--text-primary);
  outline: none;
}
.pl-editor::selection { background: color-mix(in srgb, var(--pl-accent) 32%, transparent); }
/*@4.LAPLC.53*/
.tok-key  { color: var(--tok-key); }
.tok-str  { color: var(--tok-str); }
.tok-num  { color: var(--tok-num); }
.tok-com  { color: var(--tok-com); }
.tok-fn   { color: var(--tok-fn); }
.tok-op   { color: var(--tok-op); }

.pl-keys { display: none; gap: .25rem; padding: .35rem .4rem; overflow-x: auto;
  border-block-start: 1px solid var(--border-color); scrollbar-width: none; }
.pl-keys::-webkit-scrollbar { display: none; }
.pl-keys button {
  flex-shrink: 0; min-width: 38px; height: 34px;
  background: var(--bg-elevated); border: 1px solid var(--border-color);
  border-radius: var(--radius-md); color: var(--text-secondary);
  font-size: .84rem; cursor: pointer;
}
.pl-keys button:active { transform: scale(.94); border-color: var(--pl-accent); }

/*@4.LAPLC.54*/
.pl-run { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap;
  padding: .5rem .55rem; border-block-start: 1px solid var(--border-color); flex-shrink: 0; }
.pl-primary {
  display: inline-flex; align-items: center; gap: .45rem;
  height: var(--pl-ctrl); padding-inline: 1.1rem;
  background: linear-gradient(135deg, #a78bfa, #7c3aed); color: #fff; border: 0;
  border-radius: var(--radius-lg); font-size: .82rem; font-weight: 800; cursor: pointer;
  box-shadow: 0 4px 15px rgba(124,58,237,.3);
  transition: transform .18s, box-shadow .18s;
}
.pl-primary:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 8px 25px rgba(124,58,237,.35); }
.pl-primary:active:not(:disabled) { transform: scale(.97); }
.pl-primary:disabled { opacity: .55; cursor: progress; box-shadow: none; }
.pl-primary kbd { font-family: 'JetBrains Mono', monospace; font-size: .62rem;
  background: rgba(255,255,255,.18); padding: .1rem .3rem; border-radius: 4px; }
.pl-ghost {
  display: inline-flex; align-items: center; gap: .4rem;
  height: var(--pl-ctrl); padding-inline: .75rem;
  background: var(--bg-elevated); border: 1px solid var(--border-color);
  border-radius: var(--radius-lg); color: var(--text-secondary);
  font-size: var(--pl-fs-ctrl); font-weight: 700; cursor: pointer;
  transition: border-color .18s, color .18s;
}
.pl-ghost:hover { border-color: var(--pl-accent); color: var(--pl-accent); }
.pl-ghost i { font-size: .74rem; }
.pl-quota { display: inline-flex; align-items: center; gap: .35rem; font-size: var(--pl-fs-note);
  font-weight: 700; color: var(--text-secondary); cursor: help; }

/*@4.LAPLC.55*/
.pl-out-tabs { display: flex; align-items: center; gap: .25rem; padding: .45rem;
  border-block-end: 1px solid var(--border-color); flex-shrink: 0; }
/*@4.LAPLC.56*/
.pl-out-tabs-scroll {
  display: flex; align-items: center; gap: .25rem;
  flex: 1 1 auto; min-width: 0; overflow-x: auto; scrollbar-width: none;
  scroll-padding-inline: .5rem;
}
.pl-out-tabs-scroll::-webkit-scrollbar { display: none; }
.pl-out-tabs > .pl-collapse, .pl-out-tabs > .pl-metrics { flex-shrink: 0; }
.pl-out-tab { flex: 0 1 auto; }
.pl-metrics { font-size: .66rem; color: var(--text-secondary); white-space: nowrap; cursor: help; }

.pl-out-body { flex: 1; min-height: 0; overflow: auto; padding: .6rem; display: flex; flex-direction: column; }
.pl-out-body[hidden] { display: none; }

/*@4.LAPLC.57*/
.pl-stdout {
  margin: 0; flex: 1; min-height: 0; overflow: auto;
  padding: .45rem .1rem .55rem;
  direction: ltr; text-align: left;
  /*@4.LAPLC.58*/
  font-family: ui-monospace, 'Cascadia Mono', 'Segoe UI Mono', 'SFMono-Regular',
               Consolas, 'DejaVu Sans Mono', 'Liberation Mono', monospace;
  font-variant-ligatures: none; tab-size: 4;
  /*@4.LAPLC.59*/
  font-size: .78rem; line-height: 1.35; color: var(--text-primary);
  background: var(--pl-code-bg);
  border: 1px solid var(--border-subtle);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  border-block-start: 0;
}
/*@4.LAPLC.60*/
.pl-status[hidden] ~ .pl-stdout {
  border-block-start: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
}
.pl-stdout[hidden] { display: none; }
/*@4.LAPLC.61*/
.pl-line {
  white-space: pre; text-align: start;
  padding-inline: .55rem; border-inline-start: 2px solid transparent;
  /*@4.LAPLC.62*/
  width: 100%; min-width: max-content;
}
/*@4.LAPLC.63*/

.pl-line:empty::after { content: '\00a0'; }
/*@4.LAPLC.64*/
.pl-line.pl-err {
  color: var(--st-danger, #ef4444);
  border-inline-start-color: var(--st-danger, #ef4444);
  background: color-mix(in srgb, var(--st-danger, #ef4444) 7%, transparent);
}
.pl-line.pl-note { color: var(--text-muted); }
.pl-line.pl-warn { color: var(--st-warn, #f59e0b); border-inline-start-color: var(--st-warn, #f59e0b); }

/*@4.LAPLC.65*/
.pl-at {
  font-family: 'JetBrains Mono', monospace; font-weight: 700;
  color: var(--st-warn, #f59e0b); cursor: pointer;
  border-block-end: 1px dashed color-mix(in srgb, var(--st-warn,#f59e0b) 60%, transparent);
}
.pl-at:hover { color: var(--text-primary); border-block-end-color: var(--text-primary); }
@keyframes plFlash { 0%,100% { background: transparent; } 30% { background: color-mix(in srgb, var(--st-warn,#f59e0b) 24%, transparent); } }
.pl-flash { animation: plFlash 1.1s ease-out; display: inline-block; min-width: 100%; }
@media (prefers-reduced-motion: reduce) {
  .pl-flash { animation: none; background: color-mix(in srgb, var(--st-warn,#f59e0b) 18%, transparent); }
}

/*@4.LAPLC.66*/
.pl-status {
  display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; flex-shrink: 0;
  padding: .4rem .55rem;
  background: color-mix(in srgb, var(--tint-run) 8%, transparent);
  border: 1px solid var(--border-subtle); border-block-end: 0;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.pl-status[hidden] { display: none; }
.pl-verdict {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .16rem .6rem; border-radius: var(--radius-pill);
  font-size: .72rem; font-weight: 800; white-space: nowrap;
  background: color-mix(in srgb, var(--tint) var(--tint-fill), transparent);
  color: color-mix(in srgb, var(--tint) 72%, var(--tint-ink));
  border: 1px solid color-mix(in srgb, var(--tint) 30%, transparent);
}
.pl-verdict > i { color: inherit; }
.pl-verdict.ok   { --tint: var(--tint-ok); }
.pl-verdict.bad  { --tint: var(--tint-bad); }
.pl-verdict.warn { --tint: var(--tint-warn); }
.pl-stat {
  display: inline-flex; align-items: center; gap: .28rem;
  padding: .12rem .5rem; border-radius: var(--radius-pill);
  border: 1px solid var(--border-color); background: var(--bg-surface);
  font-family: 'JetBrains Mono', 'Cairo', monospace; font-size: .68rem;
  color: var(--text-secondary); white-space: nowrap;
}
.pl-stat > i { color: var(--text-muted); font-size: .62rem; }
/*@4.LAPLC.67*/
.pl-stat.pl-tint {
  font-family: 'Cairo', sans-serif; font-weight: 700;
  background: color-mix(in srgb, var(--tint) var(--tint-fill), transparent);
  color: color-mix(in srgb, var(--tint) 72%, var(--tint-ink));
  border-color: color-mix(in srgb, var(--tint) 30%, transparent);
}
.pl-stat.pl-tint > i { color: inherit; }
[dir="ltr"] .pl-stat.pl-tint { font-family: 'Inter', 'Cairo', sans-serif; }
.pl-mini {
  width: 26px; height: 26px; display: grid; place-items: center; flex-shrink: 0;
  background: transparent; border: 1px solid transparent; border-radius: var(--radius-md);
  color: var(--text-muted); font-size: .7rem; cursor: pointer;
  transition: border-color .18s, color .18s;
}
.pl-mini:hover { border-color: var(--pl-accent); color: var(--pl-accent); }
.pl-hint {
  margin-top: .6rem; display: flex; gap: .55rem; padding: .55rem .7rem;
  background: color-mix(in srgb, var(--st-warn, #f59e0b) 7%, transparent);
  border-inline-start: 4px solid var(--st-warn, #f59e0b);
  border-radius: var(--radius-md); font-size: var(--pl-fs-ctrl); font-weight: 600;
  color: var(--text-secondary); font-family: 'Cairo', sans-serif;
  unicode-bidi: plaintext;
}
[dir="ltr"] .pl-hint { font-family: 'Inter', 'Cairo', sans-serif; }
/*@4.LAPLC.68*/
.pl-hint-input { flex-direction: column; align-items: stretch; }
/*@4.LAPLC.69*/
.pl-hint-gui > b { display: block; font-size: .78rem; color: var(--text-primary); }
.pl-hint-p { margin: .35rem 0 0; font-weight: 500; line-height: 1.75; }
.pl-hint-row { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .5rem; }
.pl-hint-go {
  --tint: var(--tint-run);
  display: inline-flex; align-items: center; gap: .35rem; cursor: pointer;
  padding: .34rem .7rem; border-radius: 999px; font-family: inherit;
  font-size: .74rem; font-weight: 700; line-height: 1;
  background: color-mix(in srgb, var(--tint) 20%, transparent);
  color: color-mix(in srgb, var(--tint) 72%, var(--tint-ink));
  border: 1px solid color-mix(in srgb, var(--tint) 40%, transparent);
}
.pl-hint-go:hover { background: color-mix(in srgb, var(--tint-run) 30%, transparent); }
.pl-hint-alt {
  background: transparent; border: 0; cursor: pointer; padding: .34rem .2rem;
  font-family: inherit; font-size: .72rem; font-weight: 600;
  color: var(--text-muted); text-decoration: underline; text-underline-offset: 3px;
}
.pl-hint-alt:hover { color: var(--text-primary); }

.pl-stdin {
  flex: 1; min-height: 90px; resize: none; padding: .55rem .6rem;
  background: var(--pl-code-bg); border: 1px solid var(--border-color);
  border-radius: var(--radius-md); color: var(--text-primary);
  font-size: .78rem; line-height: 1.6;
}
.pl-stdin:focus { outline: none; border-color: var(--pl-accent); }
.pl-lbl { font-size: var(--pl-fs-ctrl); font-weight: 700; color: var(--text-secondary); margin-bottom: .35rem; }

.pl-empty { margin: auto; text-align: center; color: var(--text-secondary);
  display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 1rem; }
/*@4.LAPLC.70*/
.pl-empty[hidden] { display: none; }
.pl-empty i { font-size: 1.6rem; opacity: .45; }
.pl-empty p { margin: 0; font-size: var(--pl-fs-ctrl); font-weight: 600; line-height: 1.8; }
.pl-empty strong { color: var(--text-primary); }

/*@4.LAPLC.71*/
#pl-tip {
  position: fixed; z-index: 3000; pointer-events: none;
  max-width: 262px; padding: .45rem .65rem;
  background: var(--bg-elevated); border: 1px solid var(--border-color);
  border-radius: var(--radius-md); box-shadow: 0 10px 26px -8px rgba(0,0,0,.55);
  color: var(--text-secondary); font-family: 'Cairo', sans-serif;
  font-size: .72rem; font-weight: 600; line-height: 1.65;
  opacity: 0; transform: translateY(4px); transition: opacity .15s, transform .15s;
  unicode-bidi: plaintext;
}
[dir="ltr"] #pl-tip { font-family: 'Inter', 'Cairo', sans-serif; }
#pl-tip.on { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { #pl-tip { transition: none; } }
@media (pointer: coarse) { #pl-tip { display: none; } }

/*@4.LAPLC.72*/
.is-side-collapsed .pl-side .pl-side-tabs,
.is-side-collapsed .pl-side .pl-side-body,
.is-out-collapsed  .pl-out .pl-out-body,
.is-out-collapsed:not(.is-out-bottom) .pl-out .pl-out-tab,
.is-out-collapsed:not(.is-out-bottom) .pl-out .pl-metrics { display: none; }
/*@4.LAPLC.73*/
.is-out-collapsed:not(.is-out-bottom) .pl-out #plOutExpand { display: none; }
/*@4.LAPLC.74*/
.is-out-collapsed:not(.is-out-bottom) .pl-out .pl-out-tabs { padding-inline: 4px; justify-content: center; }
.is-out-collapsed:not(.is-out-bottom) .pl-out-tabs { border-block-end: 0; }
/*@4.LAPLC.75*/

/*@4.LAPLC.76*/
@media (max-width: 1080px) {
  .pl-lab { grid-template-columns: 0 0 minmax(0, 1fr) var(--pl-gap) var(--pl-out-w); }
  .pl-side { display: none; }
  .pl-lab.is-side-collapsed { grid-template-columns: 0 0 minmax(0, 1fr) var(--pl-gap) var(--pl-out-w); }
  .pl-lab.is-out-collapsed { grid-template-columns: 0 0 minmax(0, 1fr) var(--pl-gap) var(--pl-rail); }
  .pl-grip[data-grip="side"] { display: none; }
}
@media (max-width: 780px) {
  .pl-lab {
    /*@4.LAPLC.77*/
    --pl-ctrl: 42px;
    grid-template-columns: minmax(0, 1fr);
    /*@4.LAPLC.78*/
    grid-template-rows: minmax(0, 1fr) var(--pl-gap) var(--pl-out-h, 34%);
    height: calc(100dvh - var(--pl-shell-h) - 56px - .9rem);
    padding: .45rem; gap: .45rem;
  }
  .pl-lab.is-out-collapsed { grid-template-rows: minmax(0, 1fr) var(--pl-gap) var(--pl-rail); }
  .pl-keys { display: flex; }
  .pl-collapse#plSideToggle { display: none; }
  .pl-tier > span { display: none; }
  .pl-primary { flex: 1; justify-content: center; }
  .pl-primary kbd { display: none; }
  .pl-quota { display: none; }
  .pl-run { padding-bottom: calc(.5rem + var(--sa-b)); }
  .pl-pop { width: min(320px, calc(100vw - 1.4rem)); }
}
@media (pointer: coarse) {
  .pl-collapse, .pl-icon, .pl-ghost, .pl-primary, .pl-keys button { min-height: 44px; }
  .pl-side-tab, .pl-out-tab { min-height: 40px; }
}

/*@4.LAPLC.79*/
.pl-preview {
  flex: 1; min-height: 220px; width: 100%; border: 0;
  background: #ffffff; border-radius: var(--radius-md);
}
.pl-preview[hidden] { display: none; }

/*@4.LAPLC.80*/
.pl-sql-wrap { overflow-x: auto; margin-block: .35rem; }
.pl-sql-title {
  font-size: .68rem; font-weight: 800; color: var(--text-secondary);
  margin-block: .5rem .25rem; font-family: 'JetBrains Mono', 'Cairo', monospace;
}
.pl-sql {
  border-collapse: collapse; width: max-content; min-width: 100%;
  font-family: 'JetBrains Mono', 'Cairo', monospace; font-size: .72rem;
  direction: ltr;
}
.pl-sql th, .pl-sql td {
  border: 1px solid var(--border-color);
  padding: .28rem .5rem; text-align: start; white-space: nowrap;
}
.pl-sql th {
  background: var(--bg-elevated); color: var(--text-primary);
  font-weight: 700; position: sticky; top: 0;
}
.pl-sql td { color: var(--text-secondary); }
.pl-sql tbody tr:nth-child(even) td { background: color-mix(in srgb, var(--text-muted) 6%, transparent); }
/*@4.LAPLC.81*/
.pl-sql td.is-null { color: var(--text-muted); font-style: italic; }
/*@4.LAPLC.82*/
.pl-sql td.is-num { text-align: end; font-variant-numeric: tabular-nums; }

/*@4.LAPLC.83*/
.pl-toast {
  position: fixed; inset-inline: 0; margin-inline: auto;
  bottom: calc(1.5rem + var(--sa-b));
  width: max-content; max-width: 90vw; z-index: 2000;
  padding: .55rem 1.1rem; border-radius: var(--radius-pill);
  background: var(--bg-elevated); border: 1px solid var(--st-accent, #a78bfa);
  color: var(--text-primary); font-family: 'Cairo', sans-serif;
  font-size: .8rem; font-weight: 700; box-shadow: 0 8px 24px -6px rgba(0,0,0,.5);
  opacity: 0; transform: translateY(8px); transition: opacity .2s, transform .2s;
  pointer-events: none;
}
[dir="ltr"] .pl-toast { font-family: 'Inter', 'Cairo', sans-serif; }
.pl-toast.on { opacity: 1; transform: none; }
@media (max-width: 780px) { .pl-toast { bottom: calc(56px + 1rem + var(--sa-b)); } }
@media (prefers-reduced-motion: reduce) { .pl-toast { transition: none; } }

/*@4.LAPLC.84*/
.pl-overlay {
  position: fixed; inset: 0; z-index: 1200;
  display: flex; align-items: center; justify-content: center; padding: max(1rem, var(--sa-t)) max(1rem, var(--sa-r)) max(1rem, var(--sa-b)) max(1rem, var(--sa-l));
  background: rgba(0,0,0,.6); backdrop-filter: blur(4px);
}
.pl-overlay[hidden] { display: none; }
.pl-modal {
  --pl-accent: var(--st-accent, #a78bfa);          /*@4.LAPLC.85*/
  background: var(--bg-card); border: 1px solid var(--border-color);
  border-radius: var(--radius-xl); width: min(460px, 100%); max-height: 86vh;
  display: flex; flex-direction: column; overflow: hidden;
  font-family: 'Cairo', sans-serif;
}
[dir="ltr"] .pl-modal { font-family: 'Inter', 'Cairo', sans-serif; }
.pl-modal-head {
  display: flex; align-items: center; gap: .5rem;
  padding: .8rem 1rem; border-block-end: 1px solid var(--border-color); flex-shrink: 0;
}
.pl-modal-head h2 { margin: 0; font-size: .95rem; font-weight: 800; color: var(--text-primary); flex: 1; }
.pl-modal-close {
  width: 34px; height: 34px; display: grid; place-items: center; flex-shrink: 0;
  background: var(--bg-elevated); border: 1px solid transparent;
  border-radius: var(--radius-md); color: var(--text-muted); cursor: pointer;
}
.pl-modal-close:hover { border-color: var(--pl-accent); color: var(--pl-accent); }
.pl-modal-body { padding: 1rem; overflow-y: auto; display: flex; flex-direction: column; gap: .6rem; }
.pl-modal-foot {
  display: flex; gap: .5rem; justify-content: flex-end;
  padding: .8rem 1rem; border-block-start: 1px solid var(--border-color); flex-shrink: 0;
}
.pl-field {
  width: 100%; padding: .55rem .7rem;
  background: var(--bg-elevated); border: 1px solid var(--border-color);
  border-radius: var(--radius-md); color: var(--text-primary);
  font-family: inherit; font-size: .86rem;
}
.pl-field:focus {
  outline: none; border-color: var(--pl-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pl-accent) 18%, transparent);
}
.pl-note-line { font-size: .74rem; color: var(--text-secondary); line-height: 1.7; margin: 0; }
.pl-slot-row {
  display: flex; align-items: center; gap: .5rem;
  padding: .5rem .6rem; border: 1px solid var(--border-color);
  border-radius: var(--radius-md); cursor: pointer;
  transition: border-color .18s, background-color .18s;
}
.pl-slot-row:hover { border-color: var(--pl-accent); background: var(--bg-elevated); }
.pl-slot-row > b { flex: 1; font-size: .84rem; font-weight: 700; color: var(--text-primary); min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl-slot-row > em { font-style: normal; font-size: .7rem; color: var(--text-secondary); white-space: nowrap; }
.pl-slot-del {
  width: 28px; height: 28px; display: grid; place-items: center; flex-shrink: 0;
  background: transparent; border: 1px solid transparent; border-radius: var(--radius-md);
  color: var(--text-muted); cursor: pointer; font-size: .72rem;
}
.pl-slot-del:hover { color: var(--st-danger, #ef4444); border-color: color-mix(in srgb, var(--st-danger,#ef4444) 40%, transparent); }
.pl-choice {
  display: flex; align-items: center; gap: .6rem; width: 100%;
  padding: .6rem .7rem; border: 1px solid var(--border-color); border-radius: var(--radius-md);
  background: transparent; cursor: pointer; text-align: start; color: var(--text-secondary);
  font-family: inherit; font-size: .84rem; font-weight: 600;
  transition: border-color .18s, background-color .18s, color .18s;
}
.pl-choice:hover { border-color: var(--pl-accent); color: var(--text-primary); background: var(--bg-elevated); }
.pl-choice > i { color: var(--text-muted); width: 1.1rem; text-align: center; }
.pl-choice:hover > i { color: var(--pl-accent); }
.pl-choice > span { flex: 1; }
.pl-choice > small { font-size: .68rem; color: var(--text-muted); font-weight: 500; }

/*@4.LAPLC.86*/

/*@4.LAPLC.87*/
.pl-lab {
  --tok-typ: #82aaff;   /*@4.LAPLC.88*/
  --tok-fn:  #ffcb6b;   /*@4.LAPLC.89*/
  --tok-lit: #ff9cac;   /*@4.LAPLC.90*/
  --tok-var: #f07178;   /*@4.LAPLC.91*/
  --tok-ann: #7fdbca;   /*@4.LAPLC.92*/
  --tok-tag: #f07178;   /*@4.LAPLC.93*/
  --tok-att: #ffcb6b;   /*@4.LAPLC.94*/
}
:root[data-theme="dim"] .pl-lab {
  --tok-typ: #8ab4ff; --tok-fn: #ffd28a; --tok-lit: #ffa8b6;
  --tok-var: #ff8a8a; --tok-ann: #8fe3d4; --tok-tag: #ff8a8a; --tok-att: #ffd28a;
}
:root[data-theme="light"] .pl-lab {
  --tok-typ: #1f5fd0;  /*@4.LAPLC.95*/
  --tok-fn:  #8a5300;  /*@4.LAPLC.96*/
  --tok-lit: #b0176a;  /*@4.LAPLC.97*/
  --tok-var: #a83a12;  /*@4.LAPLC.98*/
  --tok-ann: #0b6e8a;  /*@4.LAPLC.99*/
  --tok-tag: #a83a12; --tok-att: #8a5300;
}
.tok-typ { color: var(--tok-typ); }
.tok-lit { color: var(--tok-lit); }
.tok-var { color: var(--tok-var); }
.tok-ann { color: var(--tok-ann); }
.tok-tag { color: var(--tok-tag); }
.tok-attr { color: var(--tok-att); }

/*@4.LAPLC.100*/
.pl-sq, .pl-sq-warn {
  text-decoration: underline wavy;
  text-decoration-skip-ink: none;
  text-underline-offset: 3px;
}
.pl-sq { text-decoration-color: var(--st-danger, #ef4444); }
.pl-sq-warn { text-decoration-color: var(--st-warn, #f59e0b); }

/*@4.LAPLC.101*/
.pl-gutter b { font-weight: inherit; font-style: normal; }
.pl-gl.is-err  { color: var(--st-danger, #ef4444); opacity: 1; }
.pl-gl.is-warn { color: var(--st-warn, #f59e0b); opacity: 1; }

/*@4.LAPLC.102*/
.pl-badge {
  min-width: 16px; height: 16px; padding-inline: 4px; margin-inline-start: .3rem;
  display: inline-grid; place-items: center; border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--st-warn, #f59e0b) 24%, transparent);
  color: var(--st-warn, #f59e0b); font-size: .6rem; font-weight: 800; font-style: normal;
}
.pl-badge.is-err {
  background: color-mix(in srgb, var(--st-danger, #ef4444) 22%, transparent);
  color: var(--st-danger, #ef4444);
}
.pl-badge[hidden] { display: none; }
.pl-problems { display: flex; flex-direction: column; gap: .3rem; }
.pl-problem {
  display: flex; align-items: flex-start; gap: .5rem; width: 100%; text-align: start;
  padding: .5rem .6rem; border: 1px solid var(--border-color); border-radius: var(--radius-md);
  background: transparent; color: var(--text-secondary); cursor: pointer;
  font-family: inherit; font-size: var(--pl-fs-ctrl); font-weight: 600; line-height: 1.7;
}
.pl-problem:hover { background: var(--bg-elevated); border-color: var(--pl-accent); }
.pl-problem > i { margin-top: .15rem; font-size: .74rem; }
.pl-problem > span { flex: 1; min-width: 0; }
.pl-problem > em { font-style: normal; font-size: .66rem; color: var(--text-secondary); white-space: nowrap; }
.pl-problem.is-err > i { color: var(--st-danger, #ef4444); }
.pl-problem.is-err { border-inline-start: 3px solid var(--st-danger, #ef4444); }
.pl-problem.is-warn > i { color: var(--st-warn, #f59e0b); }
.pl-problem.is-warn { border-inline-start: 3px solid var(--st-warn, #f59e0b); }

/*@4.LAPLC.103*/
.pl-line { position: relative; }
.pl-ln {
  position: absolute; inset-inline-start: 0; top: 0; width: 1.45rem;
  text-align: end; color: var(--text-muted); opacity: .55;
  font-variant-numeric: tabular-nums; user-select: none; pointer-events: none;
}
/*@4.LAPLC.104*/
.pl-line-t { display: block; text-align: inherit; white-space: pre; }
/*@4.LAPLC.105*/
.pl-a.fg-k { color: #5c6773; } .pl-a.fg-r { color: #e06c75; } .pl-a.fg-g { color: #98c379; }
.pl-a.fg-y { color: #d19a66; } .pl-a.fg-b { color: #61afef; } .pl-a.fg-m { color: #c678dd; }
.pl-a.fg-c { color: #56b6c2; } .pl-a.fg-w { color: var(--text-primary); }
.pl-a.fg-k1 { color: #7f8c98; } .pl-a.fg-r1 { color: #ff7b86; } .pl-a.fg-g1 { color: #b5e08c; }
.pl-a.fg-y1 { color: #ecc48d; } .pl-a.fg-b1 { color: #82aaff; } .pl-a.fg-m1 { color: #d8a5f5; }
.pl-a.fg-c1 { color: #7fdbca; } .pl-a.fg-w1 { color: #ffffff; }
:root[data-theme="light"] .pl-a.fg-k { color: #4b5563; }
:root[data-theme="light"] .pl-a.fg-r { color: #b3261e; }
:root[data-theme="light"] .pl-a.fg-g { color: #0f7a3d; }
:root[data-theme="light"] .pl-a.fg-y { color: #8a5300; }
:root[data-theme="light"] .pl-a.fg-b { color: #1f5fd0; }
:root[data-theme="light"] .pl-a.fg-m { color: #8b2fb8; }
:root[data-theme="light"] .pl-a.fg-c { color: #0b6e8a; }
:root[data-theme="light"] .pl-a.fg-w1 { color: #111827; }
.pl-a.is-b { font-weight: 700; }
.pl-a.is-d { opacity: .65; }
.pl-a.is-u { text-decoration: underline; }

/*@4.LAPLC.106*/
.pl-json {
  margin-top: .6rem; border: 1px solid var(--border-color);
  border-radius: var(--radius-md); overflow: hidden; background: var(--pl-code-bg);
}
.pl-json-head {
  display: flex; align-items: center; gap: .4rem; padding: .35rem .6rem;
  background: var(--bg-elevated); border-block-end: 1px solid var(--border-color);
  font-size: .66rem; font-weight: 800; color: var(--text-secondary);
}
.pl-json-head i { color: var(--pl-accent); font-size: .64rem; }
.pl-json-body {
  margin: 0; padding: .55rem .7rem; overflow-x: auto;
  font-family: 'JetBrains Mono', monospace; font-size: .72rem; line-height: 1.65;
  color: var(--text-secondary); white-space: pre;
}

/*@4.LAPLC.107*/
.pl-lab.is-out-full { grid-template-columns: 0 0 0 0 minmax(0, 1fr); }
/*@4.LAPLC.108*/
.pl-lab.is-out-full .pl-side,
.pl-lab.is-out-full .pl-main,
.pl-lab.is-out-full .pl-grip { display: none; }
/*@4.LAPLC.109*/
.pl-lab.is-out-full .pl-out { grid-column: 1 / -1; grid-row: 1; }
@media (max-width: 780px) {
  .pl-lab.is-out-full { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
}
.pl-lab.is-out-full .pl-preview { min-height: 60vh; }

/*@4.LAPLC.110*/
.pl-prev-bar {
  display: flex; align-items: center; gap: .3rem; flex-shrink: 0;
  padding-bottom: .5rem; margin-bottom: .1rem;
  border-block-end: 1px solid var(--border-color);
}
.pl-prev-bar[hidden] { display: none; }
.pl-prev-bar button {
  padding: .22rem .6rem; border-radius: var(--radius-pill);
  background: transparent; border: 1px solid var(--border-color);
  color: var(--text-muted); font-family: inherit; font-size: .66rem; font-weight: 700; cursor: pointer;
}
.pl-prev-bar button.is-on {
  color: var(--pl-accent); background: var(--pl-accent-soft);
  border-color: color-mix(in srgb, var(--pl-accent) 40%, transparent);
}
.pl-preview { display: block; }

/*@4.LAPLC.111*/
.pl-stdin-wrap {
  position: relative; flex: 1; min-height: 120px; display: flex;
  background: var(--pl-code-bg); border: 1px solid var(--border-color);
  border-radius: var(--radius-md); overflow: hidden;
}
.pl-stdin-wrap:focus-within { border-color: var(--pl-accent); }
.pl-stdin-ruler, .pl-stdin {
  margin: 0; padding: .5rem .6rem; border: 0;
  font-family: 'JetBrains Mono', 'Cairo', monospace;
  font-size: .78rem; line-height: 1.75;
  white-space: pre-wrap; overflow-wrap: break-word; word-break: normal;
  text-align: start; unicode-bidi: plaintext;
  padding-inline-start: 2.6rem;
}
.pl-stdin-ruler {
  position: absolute; inset: 0; overflow: hidden; pointer-events: none; color: transparent;
}
.pl-in-line { position: relative; border-radius: 3px; }
.pl-in-line:nth-child(even) { background: color-mix(in srgb, var(--text-muted) 8%, transparent); }
.pl-in-n {
  position: absolute; inset-inline-start: -2.1rem; width: 1.7rem; text-align: end;
  color: var(--text-muted); opacity: .6; font-variant-numeric: tabular-nums;
}
.pl-stdin {
  position: relative; flex: 1; width: 100%; resize: none; overflow: auto;
  background: transparent; color: var(--text-primary); caret-color: var(--pl-accent);
}
.pl-stdin:focus { outline: none; }
.pl-stdin-foot {
  display: flex; align-items: center; gap: .4rem; flex-wrap: wrap;
  margin: .4rem 0 0; font-size: var(--pl-fs-note); color: var(--text-secondary);
}
.pl-stdin-foot span { font-weight: 800; color: var(--text-secondary); }
.pl-stdin-foot em { font-style: normal; }

/*@4.LAPLC.112*/
.pl-ex-host { display: flex; flex-direction: column; gap: .3rem; }
.pl-lib-head {
  display: flex; align-items: center; gap: .4rem; padding: .1rem .15rem .3rem;
  font-size: var(--pl-fs-note); font-weight: 800; color: var(--text-secondary);
}
.pl-lib-head i { color: var(--pl-accent); font-size: .68rem; margin-inline-end: .25rem; }
.pl-lib-head em {
  font-style: normal; margin-inline-start: auto; padding: .05rem .45rem;
  border-radius: var(--radius-pill); background: var(--bg-elevated);
  color: var(--text-muted); font-size: .64rem;
}
.pl-cat {
  border: 1px solid var(--border-color); border-radius: var(--radius-md);
  overflow: hidden; background: var(--bg-elevated);
}
.pl-cat.is-open { border-color: color-mix(in srgb, var(--tint, var(--pl-accent)) 40%, transparent); }
.pl-cat-head {
  display: flex; align-items: center; gap: .5rem; width: 100%;
  padding: .5rem .55rem; background: transparent; border: 0; cursor: pointer;
  text-align: start; font-family: inherit; color: var(--text-primary);
}
.pl-cat-head:hover { background: color-mix(in srgb, var(--tint, var(--pl-accent)) 9%, transparent); }
.pl-cat-ic {
  width: 26px; height: 26px; flex-shrink: 0; display: grid; place-items: center;
  border-radius: var(--radius-md); font-size: .72rem;
  background: color-mix(in srgb, var(--tint, var(--pl-accent)) var(--tint-fill), transparent);
  color: color-mix(in srgb, var(--tint, var(--pl-accent)) 74%, var(--tint-ink));
}
.pl-cat-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .05rem; }
.pl-cat-t b { font-size: var(--pl-fs-ctrl); font-weight: 800; }
.pl-cat-t em {
  /*@4.LAPLC.113*/
  font-style: normal; font-size: .64rem; color: var(--text-secondary); font-weight: 600;
  /*@4.LAPLC.114*/
  line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.pl-cat-n {
  flex-shrink: 0; padding: .05rem .4rem; border-radius: var(--radius-pill);
  background: var(--bg-surface); color: var(--text-secondary);
  font-size: .62rem; font-weight: 800;
}
.pl-cat-head .pl-car { font-size: .6rem; color: var(--text-muted); transition: transform .18s; }
.pl-cat.is-open .pl-car { transform: rotate(180deg); }
.pl-cat-body { display: flex; flex-direction: column; gap: .15rem; padding: .15rem .3rem .35rem; }
.pl-cat-body[hidden] { display: none; }

.pl-course { display: flex; flex-direction: column; }
.pl-course-head {
  display: flex; align-items: center; gap: .4rem; width: 100%;
  padding: .35rem .4rem; background: transparent; border: 0; cursor: pointer;
  text-align: start; font-family: inherit; color: var(--text-secondary);
  border-radius: var(--radius-md);
}
.pl-course-head:hover { background: var(--bg-surface); color: var(--text-primary); }
.pl-course-head b { font-size: .68rem; font-weight: 800; color: var(--pl-accent); }
.pl-course-head span {
  flex: 1; min-width: 0; font-size: .68rem; font-weight: 700;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pl-course-head em { font-style: normal; font-size: .62rem; color: var(--text-secondary); }
.pl-course-head .pl-car { font-size: .55rem; color: var(--text-muted); transition: transform .18s; }
.pl-course.is-open .pl-car { transform: rotate(180deg); }
.pl-course-body { display: flex; flex-direction: column; gap: .12rem; padding-inline-start: .35rem; }
.pl-course-body[hidden] { display: none; }
/*@4.LAPLC.115*/
.pl-mod {
  font-size: .6rem; font-weight: 800; color: var(--text-secondary);
  padding: .26rem .45rem; margin: .3rem 0 .18rem;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  background: color-mix(in srgb, var(--text-primary) 6%, transparent);
  border-inline-start: 3px solid color-mix(in srgb, var(--pl-accent) 45%, transparent);
  border-radius: var(--radius-sm, 5px);
}
/*@4.LAPLC.116*/
.pl-ex.is-alt { background: color-mix(in srgb, var(--text-primary) 3%, transparent); }
.pl-cat-body .pl-ex:hover, .pl-course-body .pl-ex:hover { background: var(--bg-elevated); }
.pl-ex-tag {
  font-style: normal; font-size: .58rem; color: var(--text-muted);
  padding: .05rem .35rem; border-radius: var(--radius-pill); background: var(--bg-elevated);
  flex-shrink: 0;
}

/*@4.LAPLC.117*/
.pl-modal:has(.pl-gallery) { width: min(880px, 100%); }
.pl-gallery { gap: .75rem; }
.pl-chips { display: flex; flex-wrap: wrap; gap: .3rem; }
.pl-chip {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .25rem .6rem; border-radius: var(--radius-pill);
  background: transparent; border: 1px solid var(--border-color);
  color: var(--text-secondary); font-family: inherit; font-size: .7rem; font-weight: 700; cursor: pointer;
}
.pl-chip:hover { border-color: var(--pl-accent); color: var(--text-primary); }
.pl-chip.is-on {
  color: var(--pl-accent); background: var(--pl-accent-soft);
  border-color: color-mix(in srgb, var(--pl-accent) 45%, transparent);
}
.pl-chip .pl-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.pl-chip em { font-style: normal; font-size: .6rem; color: var(--text-muted); }
.pl-stage { min-height: 240px; }
.pl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: .5rem; }
.pl-tile {
  display: flex; flex-direction: column; align-items: flex-start; gap: .2rem;
  padding: .7rem .75rem; border: 1px solid var(--border-color); border-radius: var(--radius-lg);
  background: var(--bg-elevated); cursor: pointer; text-align: start; font-family: inherit;
  transition: border-color .18s, transform .18s;
}
.pl-tile:hover { border-color: color-mix(in srgb, var(--tint, var(--pl-accent)) 45%, transparent); transform: translateY(-2px); }
.pl-tile-ic {
  width: 30px; height: 30px; display: grid; place-items: center; margin-bottom: .25rem;
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--tint, var(--pl-accent)) var(--tint-fill), transparent);
  color: color-mix(in srgb, var(--tint, var(--pl-accent)) 74%, var(--tint-ink));
}
.pl-tile b { font-size: .82rem; font-weight: 800; color: var(--text-primary); }
.pl-tile em { font-style: normal; font-size: .68rem; color: var(--text-secondary); line-height: 1.6; }
.pl-tile-n { margin-top: .3rem; font-size: .62rem; font-weight: 800;
  color: color-mix(in srgb, var(--tint, var(--pl-accent)) 72%, var(--tint-ink)); }
.pl-back {
  display: inline-flex; align-items: center; gap: .4rem; margin-bottom: .5rem;
  padding: .3rem .6rem; border-radius: var(--radius-pill);
  background: var(--bg-elevated); border: 1px solid var(--border-color);
  color: var(--text-secondary); font-family: inherit; font-size: .72rem; font-weight: 700; cursor: pointer;
}
.pl-back:hover { border-color: var(--pl-accent); color: var(--pl-accent); }
[dir="ltr"] .pl-back i { transform: scaleX(-1); }
.pl-rows { display: flex; flex-direction: column; gap: .35rem; }
.pl-row {
  display: flex; flex-direction: column; gap: .15rem; width: 100%;
  padding: .55rem .7rem; border: 1px solid var(--border-color); border-radius: var(--radius-md);
  background: transparent; cursor: pointer; text-align: start; font-family: inherit;
  transition: border-color .18s, background-color .18s;
}
.pl-row:hover { border-color: var(--pl-accent); background: var(--bg-elevated); }
.pl-row b { font-size: .82rem; font-weight: 700; color: var(--text-primary); }
.pl-row span { font-size: .7rem; color: var(--text-secondary); line-height: 1.7; }
.pl-row em {
  font-style: normal; font-size: .62rem; color: var(--text-muted); font-weight: 700;
}
@media (max-width: 620px) {
  .pl-grid { grid-template-columns: 1fr 1fr; }
  .pl-tile { padding: .55rem .6rem; }
  .pl-tile em { display: none; }
}

/*@4.LAPLC.118*/
.pl-narrow-only { display: none !important; }
@media (max-width: 1080px) {
  .pl-narrow-only { display: grid !important; }
}

/*@4.LAPLC.119*/
.pl-grip {
  position: relative; align-self: stretch; cursor: col-resize;
  touch-action: none; user-select: none; z-index: 3;
}
.pl-grip::before {
  content: ''; position: absolute; inset-block: 0;
  inset-inline-start: 50%; transform: translateX(-50%);
  width: 3px; border-radius: 3px; background: transparent;
  transition: background-color .15s;
}
.pl-grip::after {                     /*@4.LAPLC.120*/
  content: ''; position: absolute; inset-block: 0;
  inset-inline-start: 50%; transform: translateX(-50%); width: 14px;
}
.pl-grip:hover::before, .pl-grip.is-dragging::before {
  background: color-mix(in srgb, var(--pl-accent) 65%, transparent);
}
.pl-lab.is-resizing { cursor: col-resize; user-select: none; }
.pl-lab.is-resizing.is-rows { cursor: row-resize; }
@media (max-width: 780px) {
  .pl-grip { cursor: row-resize; }
  .pl-grip::before { inset-block: auto; inset-inline: 0; top: 50%; transform: translateY(-50%);
                     width: auto; height: 3px; }
  .pl-grip::after { inset-block: auto; inset-inline: 0; top: 50%; transform: translateY(-50%);
                    width: auto; height: 18px; }
}

/*@4.LAPLC.121*/
@media (max-width: 1080px) {
  /*@4.LAPLC.122*/
  .pl-lab.is-side-open .pl-side {
    display: flex; grid-column: 5; grid-row: 1;
    margin-block-start: var(--pl-tabs-h, 42px);
    min-height: 0; z-index: 2;
  }
  /*@4.LAPLC.123*/
  .pl-lab.is-side-open .pl-out { grid-column: 5; grid-row: 1; }
  .pl-lab.is-side-open .pl-out-body { display: none !important; }
  .pl-lab.is-side-open .pl-side .pl-side-tabs { display: none; }
}
@media (max-width: 780px) {
  .pl-lab.is-side-open .pl-side,
  .pl-lab.is-side-open .pl-out { grid-column: 1; grid-row: 3; }
  .pl-out-tab { flex: 0 0 auto; padding-inline: .5rem; }
  /*@4.LAPLC.124*/
  #plOutToggle { display: none; }
}
.pl-side-only { display: none; }
@media (max-width: 1080px) { .pl-side-only { display: inline-flex; align-items: center; gap: .3rem; } }

/*@4.LAPLC.125*/
.pl-out-body { overflow-x: hidden; overscroll-behavior: contain; }
/*@4.LAPLC.126*/
.pl-stdout { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }

/*@4.LAPLC.127*/
.pl-line.is-prose {
  white-space: pre-wrap;
  min-width: 0; max-width: 100%;
  overflow-wrap: anywhere; word-break: normal;
}
.pl-line.is-prose .pl-line-t { white-space: pre-wrap; overflow-wrap: anywhere; }

/*@4.LAPLC.128*/
.pl-modal-foot .pl-primary, .pl-modal-foot .pl-ghost {
  min-width: 104px; height: 38px; justify-content: center;
  border-radius: var(--radius-md); font-family: inherit; font-size: .82rem; font-weight: 700;
}
.pl-modal-foot .pl-primary {
  background: var(--pl-accent); box-shadow: none; color: #fff;
}
:root[data-theme="light"] .pl-modal-foot .pl-primary { color: #fff; }
.pl-modal-foot .pl-primary:hover:not(:disabled) {
  transform: none; box-shadow: 0 4px 14px -4px color-mix(in srgb, var(--pl-accent) 60%, transparent);
  filter: brightness(1.06);
}
.pl-modal-foot .pl-ghost { background: var(--bg-elevated); color: var(--text-secondary); }
.pl-modal-foot .pl-ghost:hover { border-color: var(--border-hover); color: var(--text-primary); }
@media (max-width: 620px) {
  .pl-modal-foot { flex-direction: column-reverse; }
  .pl-modal-foot .pl-primary, .pl-modal-foot .pl-ghost { width: 100%; }
}

/*@4.LAPLC.129*/
.pl-ghost[hidden], .pl-quota[hidden], .pl-out-tab[hidden], .pl-icon[hidden] { display: none !important; }

/*@4.LAPLC.130*/
.pl-ai-bar {
  display: flex; gap: .3rem; flex-wrap: wrap; flex-shrink: 0;
  padding-bottom: .5rem; border-block-end: 1px solid var(--border-color);
}
.pl-ai-mode {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .3rem .65rem; border-radius: var(--radius-pill);
  background: var(--bg-elevated); border: 1px solid var(--border-color);
  color: var(--text-secondary); font-family: inherit; font-size: .72rem;
  font-weight: 700; cursor: pointer; transition: border-color .18s, color .18s;
}
.pl-ai-mode i { font-size: .68rem; }
.pl-ai-mode:hover { border-color: var(--pl-accent); color: var(--text-primary); }
.pl-ai-mode.is-on {
  --tint: var(--tint-tab);
  background: color-mix(in srgb, var(--tint) var(--tint-fill), transparent);
  color: color-mix(in srgb, var(--tint) 72%, var(--tint-ink));
  border-color: color-mix(in srgb, var(--tint) 30%, transparent);
}
.pl-ai-quota {
  flex-shrink: 0; padding: .35rem .1rem 0;
  font-size: var(--pl-fs-note); color: var(--text-secondary);
}
.pl-ai-body { flex: 1; min-height: 0; overflow-y: auto; padding-top: .3rem; }
.pl-ai-answer { font-size: .8rem; line-height: 1.95; color: var(--text-secondary); }
.pl-ai-answer h4 {
  margin: .9rem 0 .3rem; font-size: .82rem; font-weight: 800; color: var(--text-primary);
}
.pl-ai-answer h4:first-child { margin-top: .2rem; }
.pl-ai-answer p { margin: .25rem 0; }
.pl-ai-li { position: relative; padding-inline-start: .9rem; margin: .2rem 0; }
.pl-ai-li::before {
  content: '·'; position: absolute; inset-inline-start: .15rem;
  color: var(--pl-accent); font-weight: 800;
}
.pl-ai-code {
  margin: .5rem 0; padding: .55rem .7rem; overflow-x: auto;
  background: var(--pl-code-bg); border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  font-family: 'JetBrains Mono', monospace; font-size: .72rem; line-height: 1.65;
  color: var(--text-primary); white-space: pre;
}
.pl-ai-wait {
  display: flex; align-items: center; gap: .45rem; padding: .6rem .1rem;
  font-size: var(--pl-fs-ctrl); color: var(--text-secondary);
}
.pl-ai-wait i { color: var(--pl-accent); }
.pl-ai-note {
  padding: .7rem .8rem; border-radius: var(--radius-md);
  background: var(--bg-elevated); border-inline-start: 3px solid var(--pl-accent);
  font-size: var(--pl-fs-ctrl); font-weight: 600; line-height: 1.8; color: var(--text-secondary);
}
.pl-ai-note.is-err { border-inline-start-color: var(--st-danger, #ef4444); }

/*@4.LAPLC.149*/
.pl-ai-fb {
  margin-block-start: .7rem; padding-block-start: .7rem;
  border-block-start: 1px solid var(--border-subtle);
}
.pl-ai-fb-h {
  margin: 0 0 .55rem; font-size: var(--pl-fs-note);
  color: var(--text-muted); line-height: 1.7;
}
.pl-ai-fb-row { display: flex; flex-wrap: wrap; gap: .4rem; }
.pl-ai-fb-copy,
.pl-ai-fb-svc {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .34rem .7rem; border-radius: var(--radius-pill);
  border: 1px solid var(--border-color); background: var(--bg-elevated);
  color: var(--text-secondary); text-decoration: none;
  font-family: inherit; font-size: .72rem; font-weight: 700;
  cursor: pointer; transition: border-color .18s, color .18s, background-color .18s;
}
.pl-ai-fb-copy i,
.pl-ai-fb-svc i { font-size: .68rem; flex-shrink: 0; }
.pl-ai-fb-copy {
  border-color: color-mix(in srgb, var(--pl-accent) 42%, transparent);
  background: color-mix(in srgb, var(--pl-accent) 12%, transparent);
  color: var(--pl-accent);
}
.pl-ai-fb-copy:hover { background: color-mix(in srgb, var(--pl-accent) 20%, transparent); }
.pl-ai-fb-copy.is-done { border-color: var(--st-ok, #10b981); color: var(--st-ok, #10b981); }
.pl-ai-fb-svc:hover { border-color: var(--pl-accent); color: var(--text-primary); }

/*@4.LAPLC.131*/
.pl-console {
  display: flex; flex-direction: column; min-height: 0; flex: 1;
  border: 1px solid var(--border-subtle); border-radius: var(--radius-lg);
  background: var(--pl-code-bg); overflow: hidden;
}
.pl-c-head {
  display: flex; align-items: center; gap: .45rem; flex-shrink: 0;
  padding: .4rem .55rem;
  background: color-mix(in srgb, var(--tint-run) 8%, transparent);
  border-bottom: 1px solid var(--border-subtle);
}
/*@4.LAPLC.132*/
.pl-c-dot {
  width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
  background: var(--tint-ok); box-shadow: 0 0 0 0 color-mix(in srgb, var(--tint-ok) 60%, transparent);
  animation: pl-pulse 2s ease-out infinite;
}
.pl-c-dot.is-off { background: var(--text-muted); animation: none; box-shadow: none; }
@keyframes pl-pulse {
  0%   { box-shadow: 0 0 0 0 color-mix(in srgb, var(--tint-ok) 55%, transparent); }
  70%  { box-shadow: 0 0 0 6px transparent; }
  100% { box-shadow: 0 0 0 0 transparent; }
}
@media (prefers-reduced-motion: reduce) { .pl-c-dot { animation: none; } }
.pl-c-title { font-size: var(--pl-fs-ctrl); font-weight: 700; color: var(--text-primary); }
.pl-c-hint {
  font-size: .7rem; color: var(--text-muted); overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; min-width: 0;
}
.pl-c-btn {
  display: inline-flex; align-items: center; gap: .3rem; flex-shrink: 0;
  padding: .25rem .5rem; border-radius: var(--radius-md); cursor: pointer;
  font-family: inherit; font-size: .7rem; font-weight: 600; line-height: 1;
  background: transparent; border: 1px solid var(--border-subtle); color: var(--text-secondary);
}
.pl-c-btn:hover { color: var(--text-primary); border-color: var(--text-muted); }
.pl-c-btn.is-stop { --tint: var(--tint-bad);
  color: color-mix(in srgb, var(--tint) 72%, var(--tint-ink));
  border-color: color-mix(in srgb, var(--tint) 34%, transparent);
  background: color-mix(in srgb, var(--tint) var(--tint-fill), transparent);
}
.pl-c-btn.is-stop:hover { background: color-mix(in srgb, var(--tint-bad) 24%, transparent); }

/*@4.LAPLC.133*/
.pl-c-body {
  flex: 1; min-height: 0; overflow: auto; padding: .5rem .6rem;
  direction: ltr; text-align: left;
  /*@4.LAPLC.134*/
  font-family: ui-monospace, 'Cascadia Mono', 'Segoe UI Mono', 'SFMono-Regular',
               Consolas, 'DejaVu Sans Mono', 'Liberation Mono', monospace;
  font-variant-ligatures: none; tab-size: 4;
  font-size: .78rem; line-height: 1.35;
}
.pl-c-line {
  display: flex; gap: .4rem; align-items: baseline;
  white-space: pre; min-width: max-content;
}
/*@4.LAPLC.135*/
.pl-c-line.is-sys { white-space: pre-wrap; min-width: 0; max-width: 100%; }
.pl-c-line.is-sys .pl-c-t { white-space: pre-wrap; overflow-wrap: anywhere; }
/*@4.LAPLC.136*/
.pl-console, .pl-c-body { min-width: 0; max-width: 100%; }

/*@4.LAPLC.137*/
.pl-c-tools {
  display: grid; grid-template-columns: repeat(2, auto);
  gap: .25rem; flex-shrink: 0; margin-inline-start: auto;
}
.pl-c-tools .pl-c-btn { justify-content: center; }

/*@4.LAPLC.138*/
.pl-c-t { flex: 1; min-width: 0; color: var(--text-primary); text-align: start; }
.pl-c-line.is-err { background: color-mix(in srgb, var(--st-danger, #ef4444) 8%, transparent); }
.pl-c-line.is-err .pl-c-t { color: var(--st-danger, #ef4444); }
.pl-c-line.is-sys .pl-c-t { color: var(--text-muted); font-style: italic; }
.pl-c-line.is-in .pl-c-t { color: var(--pl-accent); font-weight: 600; }
/*@4.LAPLC.139*/
.pl-c-mark {
  flex-shrink: 0; color: var(--tint-run); font-weight: 700; user-select: none;
  font-family: 'JetBrains Mono', monospace;
}

.pl-c-in {
  display: flex; align-items: center; gap: .4rem; flex-shrink: 0;
  padding: .4rem .55rem; border-top: 1px solid var(--border-subtle);
  background: color-mix(in srgb, var(--tint-run) 6%, transparent);
}
.pl-c-field {
  flex: 1; min-width: 0; background: transparent; border: 0; outline: none;
  color: var(--text-primary); font-family: 'JetBrains Mono', 'Cairo', monospace; font-size: .78rem;
}
.pl-c-field::placeholder { color: var(--text-muted); }
.pl-c-send {
  width: 28px; height: 28px; display: grid; place-items: center; flex-shrink: 0;
  background: transparent; border: 1px solid var(--border-subtle); border-radius: var(--radius-md);
  color: var(--tint-run); font-size: .72rem; cursor: pointer;
}
.pl-c-send:hover { background: color-mix(in srgb, var(--tint-run) 16%, transparent); }
[dir="rtl"] .pl-c-send > i { transform: scaleX(-1); }
.pl-console.is-done .pl-c-head { background: transparent; }

.pl-term-chips {
  display: flex; flex-wrap: wrap; gap: .3rem; flex-shrink: 0; margin-top: .5rem;
}
.pl-term-chip {
  --tint: var(--tint-run);
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .26rem .55rem; border-radius: 999px; cursor: pointer;
  font-family: inherit; font-size: .72rem; font-weight: 600; line-height: 1;
  background: color-mix(in srgb, var(--tint) var(--tint-fill), transparent);
  color: color-mix(in srgb, var(--tint) 72%, var(--tint-ink));
  border: 1px solid color-mix(in srgb, var(--tint) 30%, transparent);
}
.pl-term-chip > i { font-size: .68rem; }
.pl-term-chip:hover { background: color-mix(in srgb, var(--tint) 26%, transparent); }
.pl-term-chip:focus-visible { outline: 2px solid var(--tint-run); outline-offset: 2px; }


/*@4.LAPLC.140*/

/*@4.LAPLC.141*/
@media (min-width: 781px) {
  .pl-lab > .pl-side { grid-column: 1; grid-row: 1; }
  .pl-lab > .pl-grip[data-grip="side"] { grid-column: 2; grid-row: 1; }
  .pl-lab > .pl-main { grid-column: 3; grid-row: 1; }
  .pl-lab > .pl-grip[data-grip="out"] { grid-column: 4; grid-row: 1; }
  .pl-lab > .pl-out { grid-column: 5; grid-row: 1; }
}

/*@4.LAPLC.142*/
@media (min-width: 781px) {
  .pl-lab.is-out-bottom {
    grid-template-columns: var(--pl-side-w) var(--pl-gap) minmax(0, 1fr);
    /*@4.LAPLC.143*/
    grid-template-rows: minmax(0, 1fr) var(--pl-gap) var(--pl-out-h, 34%);
  }
  .pl-lab.is-out-bottom.is-side-collapsed {
    grid-template-columns: var(--pl-rail) var(--pl-gap) minmax(0, 1fr);
  }
  .pl-lab.is-out-bottom.is-out-collapsed {
    grid-template-rows: minmax(0, 1fr) var(--pl-gap) var(--pl-rail);
  }
  .pl-lab.is-out-bottom > .pl-grip[data-grip="out"] { grid-column: 1 / -1; grid-row: 2; }
  .pl-lab.is-out-bottom > .pl-out { grid-column: 1 / -1; grid-row: 3; }

  /*@4.LAPLC.144*/
  .pl-lab.is-out-bottom > .pl-grip[data-grip="out"] { cursor: row-resize; }
  .pl-lab.is-out-bottom > .pl-grip[data-grip="out"]::before {
    inset-block: auto; inset-inline: 0; top: 50%; transform: translateY(-50%);
    width: auto; height: 3px;
  }
  .pl-lab.is-out-bottom > .pl-grip[data-grip="out"]::after {
    inset-block: auto; inset-inline: 0; top: 50%; transform: translateY(-50%);
    width: auto; height: 18px;
  }

  /*@4.LAPLC.145*/
  .pl-lab.is-out-bottom.is-out-full {
    grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr);
  }
  .pl-lab.is-out-bottom.is-out-full > .pl-out { grid-column: 1 / -1; grid-row: 1; }
}

/*@4.LAPLC.146*/
@media (min-width: 781px) and (max-width: 1080px) {
  .pl-lab.is-out-bottom { grid-template-columns: minmax(0, 1fr); }
  .pl-lab.is-out-bottom > .pl-main { grid-column: 1; grid-row: 1; }
  /*@4.LAPLC.147*/
  .pl-lab.is-out-bottom.is-side-open > .pl-side,
  .pl-lab.is-out-bottom.is-side-open > .pl-out { grid-column: 1 / -1; grid-row: 3; }
}

/*@4.LAPLC.148*/
.pl-wide-only { display: grid; }
@media (max-width: 780px) { .pl-wide-only { display: none; } }

/*@4.LAPLC.151*/
@supports (-webkit-touch-callout: none) {
  .pl-lab { --pl-code-fs: var(--ios-field-fs, 16px); }
}
