.cmu-cpp { --ide-border:#dce3ec; --ide-bg:#f5f7fb; --ide-dark:#111827; max-width:1400px; margin:0 auto; padding:18px; }
.cmu-cpp * { box-sizing:border-box; }
.cmu-cpp__header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.cmu-cpp__title h1 { margin:0 0 4px; font-size:24px; }
.cmu-cpp__title p { margin:0; color:#64748b; font-size:14px; }
.cmu-cpp__toolbar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.cmu-cpp__btn,.cmu-cpp__select { height:38px; border:1px solid var(--ide-border); border-radius:9px; background:#fff; padding:0 13px; font:inherit; cursor:pointer; }
.cmu-cpp__btn:disabled { opacity:.48; cursor:not-allowed; }
.cmu-cpp__btn--run { background:#16a34a; color:#fff; border-color:#16a34a; font-weight:700; }
.cmu-cpp__btn--stop { background:#fff; color:#b91c1c; }
.cmu-cpp__status { font-size:13px; color:#64748b; min-width:76px; text-align:right; }
.cmu-cpp__status[data-state="success"] { color:#15803d; }
.cmu-cpp__status[data-state="error"] { color:#b91c1c; }
.cmu-cpp__status[data-state="running"] { color:#1d4ed8; }
.cmu-cpp__workspace { border:1px solid var(--ide-border); border-radius:14px; overflow:hidden; background:#fff; box-shadow:0 8px 28px rgba(15,23,42,.07); }
.cmu-cpp__tabbar { height:42px; display:flex; align-items:end; padding-left:45px; background:#eef2f7; border-bottom:1px solid var(--ide-border); }
.cmu-cpp__tab { height:34px; display:flex; align-items:center; padding:0 16px; background:#fff; border:1px solid var(--ide-border); border-bottom-color:#fff; border-radius:7px 7px 0 0; font-size:13px; }
.cmu-cpp__editor { height:480px; min-height:300px; background:#fff; display:flex; position:relative; }
.cmu-cpp__line-numbers { width:40px; padding:16px 8px; background:#f8fafc; border-right:1px solid #e5e7eb; color:#64748b; font-family:Consolas,monospace; font-size:14px; line-height:1.55; text-align:right; user-select:none; overflow:hidden; }
.cmu-cpp__editor textarea { flex:1; height:100%; border:0; padding:16px; font-family:Consolas,monospace; resize:none; }
.cmu-cpp .CodeMirror { height:100%; font-family:Consolas,Menlo,Monaco,monospace; font-size:14px; line-height:1.55; }
.cmu-cpp .CodeMirror-gutters { background:#f8fafc; border-right:1px solid #e5e7eb; }
.cmu-cpp__error-line { background:rgba(239,68,68,.15)!important; }
.cmu-cpp__bottom { display:grid; grid-template-columns:minmax(240px,32%) 1fr; min-height:235px; border-top:1px solid var(--ide-border); }
.cmu-cpp__pane { min-width:0; }
.cmu-cpp__pane + .cmu-cpp__pane { border-left:1px solid var(--ide-border); }
.cmu-cpp__pane-title { height:38px; display:flex; align-items:center; padding:0 14px; background:#f8fafc; border-bottom:1px solid var(--ide-border); font-size:12px; font-weight:700; color:#475569; letter-spacing:.04em; }
.cmu-cpp__stdin { width:100%; height:196px; border:0; resize:none; outline:none; padding:12px 14px; font:13px/1.55 Consolas,monospace; }
.cmu-cpp__terminal { height:196px; background:var(--ide-dark); padding:8px; color:#e5e7eb; white-space:pre-wrap; overflow:auto; font:13px/1.45 Consolas,monospace; }
.cmu-cpp__tips { margin-top:12px; padding:11px 14px; border-radius:10px; background:#f0f9ff; color:#475569; font-size:13px; }
.cmu-cpp__btn--binary{background:#eef2ff;color:#3730a3;border-color:#c7d2fe;font-weight:700}.cmu-cpp__binary{margin-top:14px;border:1px solid #c7d2fe;border-radius:14px;background:#f8faff;overflow:hidden}.cmu-cpp__binary[hidden]{display:none}.cmu-cpp__binary-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:linear-gradient(120deg,#eef2ff,#ecfeff);border-bottom:1px solid #dbe4ff}.cmu-cpp__binary-head strong{color:#1e2b66}.cmu-cpp__binary-head p{margin:4px 0 0;color:#64748b;font-size:12px}.cmu-cpp__binary-list{padding:10px;max-height:420px;overflow:auto}.cmu-cpp__binary-row{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(145px,.7fr) minmax(170px,1fr);gap:10px;align-items:center;padding:8px 10px;border-bottom:1px solid #e5eaf5;font:12px/1.45 Consolas,monospace}.cmu-cpp__binary-row:last-child{border-bottom:0}.cmu-cpp__binary-source{overflow:hidden;color:#334155;text-overflow:ellipsis;white-space:pre}.cmu-cpp__binary-bits{color:#4338ca;font-weight:800;letter-spacing:.08em}.cmu-cpp__binary-note{font-family:inherit;color:#64748b}.cmu-cpp__binary-row.is-comment{background:#fffbea}.cmu-cpp__binary-row.is-comment .cmu-cpp__binary-bits,.cmu-cpp__binary-row.is-comment .cmu-cpp__binary-note{color:#b7791f}.cmu-cpp__binary-row.is-empty{opacity:.55}
@media(max-width:760px){.cmu-cpp__binary-head{align-items:flex-start;flex-direction:column}.cmu-cpp__binary-row{grid-template-columns:1fr;gap:4px}.cmu-cpp__binary-source{white-space:pre-wrap}.cmu-cpp__binary-bits{font-size:13px}}
.cmu-cpp__tips strong { color:#0f172a; }
.cmu-cpp .xterm { height:100%; }
.cmu-cpp .xterm-viewport { overflow-y:auto!important; }
@media (max-width:760px) {
  .cmu-cpp { padding:10px; }
  .cmu-cpp__header { align-items:flex-start; flex-direction:column; }
  .cmu-cpp__toolbar { width:100%; }
  .cmu-cpp__select { flex:1; min-width:130px; }
  .cmu-cpp__status { width:100%; text-align:left; }
  .cmu-cpp__tabbar { padding-left:10px; }
  .cmu-cpp__editor { height:400px; }
  .cmu-cpp__bottom { grid-template-columns:1fr; }
  .cmu-cpp__pane + .cmu-cpp__pane { border-left:0; border-top:1px solid var(--ide-border); }
  .cmu-cpp__stdin { height:120px; }
  .cmu-cpp__terminal { height:220px; }
}
