body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;margin:0;background:#0b0f14;color:#e8edf2}
a{color:#9ad1ff;text-decoration:none;margin-right:12px}
.top{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#111a24;border-bottom:1px solid #223043}
.brand{font-weight:700}
.ver{font-weight:400;color:#9fb2c6;margin-left:6px}
.container{padding:18px;max-width:1100px;margin:0 auto}
.card{background:#121b26;border:1px solid #223043;border-radius:10px;padding:14px;margin:12px 0}
label{display:block;margin:8px 0}
input,select{width:100%;padding:8px;border-radius:8px;border:1px solid #223043;background:#0b0f14;color:#e8edf2}
button,.btn{padding:9px 12px;border-radius:8px;border:1px solid #2a3b52;background:#162334;color:#e8edf2;cursor:pointer;display:inline-block}
.grid{display:grid;grid-template-columns:420px 1fr;gap:18px;align-items:start}
.muted{color:#9fb2c6}
.error{color:#ff9090}
.box{border:1px solid #2a3b52;border-radius:10px;padding:12px;margin:10px 0;background:#0f1620}
.box .row{display:flex;justify-content:space-between;gap:8px;align-items:center}
.log{background:#05080d;border:1px solid #223043;border-radius:10px;padding:12px;min-height:340px;overflow:auto}

/* modal */
.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:50}
.modal-content{background:#0f1520;border:1px solid #223043;border-radius:12px;padding:16px;max-width:820px;width:90%}
.modal-content textarea{padding:10px;border-radius:8px;border:1px solid #223043;background:#0b0f14;color:#e8edf2}

.info{padding:10px;margin:10px 0;border:1px solid #99c;background:#eef;border-radius:8px}


/* 전략 요약 뱃지 */
.badge-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.badge{padding:4px 8px;border-radius:999px;border:1px solid #2a3b52;background:#111a24;color:#e8edf2;font-size:12px;line-height:1}

.is-hidden{display:none}


/* ===== v0.4.23 modal: no collapse, vertical scroll, dark theme ===== */
.modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.modal-content{
  width: min(980px, 100%);
  height: min(90vh, 900px);
  display: flex;
  flex-direction: column;
  border-radius: 12px;
  padding: 16px;
  box-sizing: border-box;
  background: var(--card-bg, #1e1e1e);
  color: var(--text-color, #e5e5e5);
}

.modal-content form{
  display:flex;
  flex-direction:column;
  flex:1;
  min-height:0;
}

.modal-body{
  flex:1;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding: 10px 6px 18px 6px;
  box-sizing:border-box;
}

.modal-footer{
  flex-shrink:0;
  border-top: 1px solid rgba(255,255,255,0.12);
  padding-top: 12px;
  margin-top: 10px;
  background: inherit;
}

.section{
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 10px;
  padding: 10px 10px;
  margin-top: 10px;
}

.section-title{
  margin: 0 0 8px 0;
  font-size: 16px;
}

.row{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.row > label{
  min-width: 240px;
  flex: 1;
}

@media (max-width:720px){
  .modal-content{ padding: 12px; }
  .row > label{ min-width: 100%; }
}


/* v0.4.9 form layout fix */
*, *::before, *::after{box-sizing:border-box}
label{max-width:100%}
form{max-width:100%}
.form-stack{display:flex;flex-direction:column;gap:12px}
.form-field{display:flex;flex-direction:column;gap:6px;margin:0;min-width:0;width:100%}
.form-field input,.form-field select,.form-field textarea{width:100%;max-width:100%;min-width:0;display:block}
.form-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start;width:100%}
.form-row > .form-field{flex:1 1 240px;min-width:240px}
.section .form-row + .form-row{margin-top:12px}
.card form,.modal-content form,.section{min-width:0;max-width:100%}
.grid > .card{min-width:0}
.modal-content{overflow:hidden}
.modal-body .section,.modal-body .form-row,.modal-body .form-field{min-width:0;max-width:100%}
.modal-body input,.modal-body select,.modal-body textarea{max-width:100%}
@media (max-width:720px){
  .form-row > .form-field{min-width:100%}
}


/* v0.4.24 trade balance summary */
.page-head.split-head{display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,460px);gap:18px;align-items:start;margin-bottom:14px}
.compact-balance-card{margin:0;padding:12px}
.mini-table-wrap{min-height:24px}
.mini-table{width:100%;border-collapse:collapse;font-size:13px}
.mini-table th,.mini-table td{border-bottom:1px solid #223043;padding:6px 8px;text-align:left;vertical-align:top}
.mini-table th{color:#9fb2c6;font-weight:600;white-space:nowrap}
.balance-pos-table td:first-child{max-width:220px;word-break:break-word}
@media (max-width:980px){
  .page-head.split-head{grid-template-columns:1fr}
}


/* trade-configs layout + readable balance panel */
.trade-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,430px);gap:18px;align-items:start}
.trade-main-col,.trade-side-col{min-width:0}
.sticky-balance-card{position:sticky;top:18px}
.balance-section{margin-top:16px;padding-top:12px;border-top:1px solid #223043}
.balance-section:first-of-type{margin-top:0;padding-top:0;border-top:none}
.balance-section-title{margin:0 0 10px;font-size:14px;color:#c9d5e2}
.summary-click{cursor:pointer;list-style:none}
.summary-click::-webkit-details-marker{display:none}
.rt-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 14px}
.rt-card{border:1px solid #223043;border-radius:10px;padding:10px;background:#0f1620}
.rt-card-label{font-size:12px;color:#9fb2c6;margin-bottom:4px}
.rt-card-value{font-size:13px;word-break:break-word}
.rt-block{margin-top:12px}
.rt-block h5{margin:0 0 8px;font-size:13px;color:#c9d5e2}
#rt_state{display:none!important}
#rt_events pre{display:none!important}
@media (max-width: 980px){.trade-layout{grid-template-columns:1fr}.sticky-balance-card{position:static}.rt-summary-grid{grid-template-columns:1fr}}
