.parsons-shell{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 20px 50px -20px rgba(0,0,0,.5);}
  .parsons-shell-header{padding:12px 18px;background:var(--bg-panel-2);border-bottom:1px solid var(--border);font-family:var(--mono);font-size:12.5px;color:var(--text-muted);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
  .lang-toggle{display:flex;gap:4px;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:3px;}
  .lang-btn{font-family:var(--mono);font-size:11px;font-weight:700;padding:5px 10px;border-radius:5px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:.15s;}
  .lang-btn.active{background:var(--amber);color:#0B0E14;}
  .parsons-shell-body{padding:20px 22px;}

  .goal-box{background:var(--bg-panel-2);border:1px solid var(--border);border-left:3px solid var(--teal);border-radius:8px;padding:12px 16px;margin-bottom:18px;font-size:13px;color:var(--text);}
  .goal-box b{color:var(--teal);}

  .code-shell{font-family:var(--mono);font-size:13px;line-height:1.9;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:14px 16px;margin-bottom:18px;}
  .fixed-line{color:var(--text-muted);white-space:pre;}
  .slot{
    display:block;min-height:28px;border:1.5px dashed var(--border);border-radius:6px;
    padding:2px 10px;margin:2px 0;white-space:pre;color:var(--text-muted);font-size:13px;
    touch-action:none; user-select:none;
  }
  .slot.filled{border-style:solid;border-color:var(--amber-dim);background:rgba(232,163,61,.08);color:var(--text);cursor:grab;}
  .slot.correct{border-color:var(--teal);background:rgba(79,209,197,.1);color:var(--teal);}
  .slot.incorrect{border-color:var(--danger);background:rgba(240,84,107,.1);color:var(--danger);}
  .slot-indent-1{padding-left:26px;}
  .slot-indent-2{padding-left:46px;}

  .palette-label{font-family:var(--mono);font-size:11.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;}
  .palette{display:flex;flex-wrap:wrap;gap:8px;min-height:44px;padding:10px;background:var(--bg-panel-2);border:1px dashed var(--border);border-radius:8px;margin-bottom:16px;}
  .chunk{
    font-family:var(--mono);font-size:13px;background:var(--bg-panel);border:1.5px solid var(--amber-dim);color:var(--text);
    padding:7px 14px;border-radius:7px;cursor:grab;touch-action:none;user-select:none;white-space:pre;
  }
  .chunk.dragging{opacity:.35;}
  .chunk-ghost{
    position:fixed;pointer-events:none;z-index:1000;font-family:var(--mono);font-size:13px;
    background:var(--amber);color:#0B0E14;padding:7px 14px;border-radius:7px;font-weight:700;white-space:pre;
  }

  .controls{display:flex;align-items:center;gap:10px;}
  .run-btn{font-family:var(--mono);font-weight:700;font-size:13px;padding:10px 20px;border-radius:8px;border:1px solid var(--amber);background:var(--amber);color:#0B0E14;cursor:pointer;}
  .run-btn:hover{background:#f2b25a;}
  .reset-btn{font-family:var(--mono);font-size:12.5px;padding:10px 16px;border-radius:8px;border:1px solid var(--border);background:var(--bg-panel-2);color:var(--text);cursor:pointer;}
  .reset-btn:hover{border-color:var(--danger);color:var(--danger);}

  .output-box{margin-top:16px;font-family:var(--mono);font-size:13px;padding:14px 16px;border-radius:8px;display:none;}
  .output-box.show{display:block;}
  .output-box.pass{background:rgba(79,209,197,.1);border:1px solid var(--teal);color:var(--teal);}
  .output-box.fail{background:rgba(240,84,107,.1);border:1px solid var(--danger);color:var(--danger);}