@charset "UTF-8";
.ctp-app {
  --ctp-p: var(--primary, #2563eb);
  --ctp-ph: var(--primary-hover, #1d4ed8);
  --ctp-pl: var(--primary-light, rgba(37,99,235,.08));
  --ctp-bg: var(--bg-card, #fff);
  --ctp-tx: var(--text, #1f2937);
  --ctp-txs: var(--text-soft, #6b7280);
  --ctp-bd: var(--border, #e5e7eb);
  --ctp-r: var(--radius, 14px);
  --ctp-rs: var(--radius-sm, 9px);
}
.ctp-app { display:flex; flex-direction:column; gap:16px; width:100%; color:var(--ctp-tx); font-size:14px; line-height:1.6; }
.ctp-app * { box-sizing:border-box; }
.ctp-card { background:var(--ctp-bg); border:1px solid var(--ctp-bd); border-radius:var(--ctp-r); padding:18px; }
.ctp-card > .ctp-item + .ctp-item { margin-top:12px; }
.ctp-label { display:block; font-size:13px; font-weight:600; margin-bottom:6px; white-space:nowrap; }
.ctp-hint { font-size:12px; color:var(--ctp-txs); margin-top:8px; line-height:1.7; }
.ctp-in, .ctp-sel, .ctp-ta {
  width:100%; padding:10px 12px; font-size:14px; color:var(--ctp-tx);
  background:var(--bg-input,#fff); border:1px solid var(--ctp-bd);
  border-radius:var(--ctp-rs); outline:none; font-family:inherit; line-height:1.6;
}
.ctp-in:focus, .ctp-sel:focus, .ctp-ta:focus { border-color:var(--ctp-p); }
.ctp-ta { min-height:110px; resize:vertical; }
.ctp-in-mono, .ctp-ta-mono { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Courier New",monospace; font-size:13px; }
.ctp-row.is-top { align-items:flex-start; }
.ctp-row { display:flex; gap:12px; flex-wrap:wrap; align-items:flex-end; }
.ctp-col { flex:1 1 170px; min-width:0; }
.ctp-col-auto { flex:0 0 auto; }
.ctp-btn {
  padding:10px 16px; font-size:14px; font-weight:600; cursor:pointer;
  color:var(--ctp-tx); background:var(--bg-input,#fff);
  border:1px solid var(--ctp-bd); border-radius:var(--ctp-rs); font-family:inherit;
}
.ctp-btn:hover { border-color:var(--ctp-p); color:var(--ctp-p); }
.ctp-btn-p { color:var(--text-on-accent, #fff); background:var(--ctp-p); border-color:var(--ctp-p); }
.ctp-btn-p:hover { background:var(--ctp-ph); color:var(--text-on-accent, #fff); }
.ctp-btn-mini { padding:6px 12px; font-size:12px; font-weight:500; }
.ctp-out {
  padding:14px 18px; min-height:50px; line-height:1.7; font-size:17px; font-weight:600;
  color:var(--ctp-p); background:var(--ctp-pl); border-radius:var(--ctp-rs); word-break:break-all;
}
.ctp-out:empty { display:none; }
.ctp-list { display:flex; flex-direction:column; gap:12px; }
.ctp-list:empty { display:none; }
.ctp-item {
  display:flex; align-items:center; gap:12px; padding:14px 18px; min-height:50px; line-height:1.7;
  border:1px solid var(--ctp-bd); border-radius:var(--ctp-rs); background:var(--bg-input,#fff);
}
.ctp-item-k { flex:0 0 auto; min-width:100px; font-size:12px; color:var(--ctp-txs); line-height:1.7; white-space:nowrap; }
.ctp-item-v { flex:1 1 auto; font-size:16px; word-break:break-all; line-height:1.7; }
.ctp-tbl-wrap { overflow-x:auto; }
.ctp-tbl { width:100%; border-collapse:collapse; font-size:13px; }
.ctp-tbl th, .ctp-tbl td { padding:10px 12px; border-bottom:1px solid var(--ctp-bd); text-align:left; white-space:nowrap; }
.ctp-tbl th { font-weight:600; color:var(--ctp-txs); background:var(--ctp-pl); }
.ctp-tbl td code { font-family:ui-monospace,Menlo,Consolas,monospace; }
.ctp-code {
  margin:0; padding:14px 16px; max-height:none; overflow:visible; line-height:1.65;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Courier New",monospace; font-size:13px;
  color:var(--ctp-tx); background:var(--ctp-pl); border:1px solid var(--ctp-bd); border-radius:var(--ctp-rs);
  white-space:pre; tab-size:2;
}
.ctp-code:empty { display:none; }
.ctp-tabs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.ctp-tab {
  padding:8px 14px; font-size:13px; cursor:pointer; color:var(--ctp-txs);
  background:var(--bg-input,#fff); border:1px solid var(--ctp-bd); border-radius:var(--ctp-rs); font-family:inherit;
}
.ctp-tab.ctp-on { color:var(--text-on-accent, #fff); background:var(--ctp-p); border-color:var(--ctp-p); }
.ctp-err { padding:12px 16px; font-size:13px; color:#b91c1c; background:rgba(185,28,28,.08); border:1px solid rgba(185,28,28,.25); border-radius:var(--ctp-rs); }
.ctp-err:empty { display:none; }
@media (max-width: 640px) {
  .ctp-row { flex-direction:column; align-items:stretch; }
  .ctp-col-auto { width:100%; }
  .ctp-item { flex-wrap:wrap; }
}
