.section-card{margin-bottom:16px;padding:17px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.section-heading{display:flex;align-items:center;gap:10px}.section-icon{width:34px;height:34px;display:grid;place-items:center;color:var(--primary);background:var(--primary-soft);border-radius:8px}.section-icon svg{width:18px;height:18px}.section-heading h2{margin:0;color:var(--navy);font-size:.98rem}.section-heading p{margin:2px 0 0;color:var(--muted);font-size:.72rem}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.kpi-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}.kpi-card{padding:15px;background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow)}.kpi-card.accent{border-color:color-mix(in srgb,var(--primary) 45%,var(--border));background:linear-gradient(160deg,var(--surface),var(--primary-soft))}.kpi-card span{display:block;color:var(--muted);font-size:.67rem;text-transform:uppercase;letter-spacing:.05em}.kpi-card strong{display:block;margin-top:5px;color:var(--navy);font-size:1.3rem}.kpi-card small{display:block;margin-top:3px;color:var(--muted);font-size:.65rem}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.field-span-2{grid-column:1/-1}.form-field label{display:block;margin-bottom:5px;color:var(--muted);font-size:.68rem;font-weight:750}.form-field input,.form-field select,.form-field textarea,.filter-control,.allocation-toolbar select{width:100%;min-height:40px;padding:8px 10px;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;outline:none}.form-field textarea{min-height:92px;resize:vertical}.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.filter-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 13%,transparent)}
.button-row{display:flex;align-items:center;gap:8px}.button-row.compact{margin-top:11px}.button-row.wrap{flex-wrap:wrap}.primary-button,.secondary-button,.danger-button,.ghost-button,.status-button{min-height:40px;padding:8px 13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;cursor:pointer;font-weight:760;font-size:.78rem;text-decoration:none}.primary-button{color:white;background:var(--primary);border:1px solid var(--primary);box-shadow:0 5px 13px rgba(22,124,134,.18)}.primary-button:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.secondary-button{color:var(--text);background:var(--surface);border:1px solid var(--border-strong)}.secondary-button:hover,.ghost-button:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-soft)}.ghost-button{min-height:34px;padding:6px 10px;color:var(--muted);background:transparent;border:1px solid var(--border)}.danger-button{color:var(--red);background:var(--red-soft);border:1px solid color-mix(in srgb,var(--red) 35%,transparent)}.full-button{width:100%;margin-top:14px}
.badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;font-size:.65rem;font-weight:820;letter-spacing:.02em}.badge.long,.badge.target{color:var(--green);background:var(--green-soft)}.badge.short,.badge.stopped{color:var(--red);background:var(--red-soft)}.badge.active{color:var(--blue);background:var(--blue-soft)}.badge.partial{color:var(--purple);background:var(--purple-soft)}.badge.pending,.badge.cancelled{color:var(--amber);background:var(--amber-soft)}.badge.closed{color:var(--muted);background:var(--surface-soft);border:1px solid var(--border)}.badge.mine{color:var(--primary);background:var(--primary-soft)}
.signal-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}table{width:100%;border-collapse:collapse;font-size:.76rem}th,td{padding:10px 11px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);background:var(--surface-soft);font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0}tr:last-child td{border-bottom:0}tbody tr:hover{background:color-mix(in srgb,var(--primary-soft) 48%,transparent)}
.metric-row{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--border);font-size:.72rem}.metric-row:last-child{border-bottom:0}.metric-row span{color:var(--muted)}.metric-row strong{text-align:right}.good-note,.warning{margin-top:9px;padding:9px 11px;border-radius:8px;font-size:.74rem}.good-note{color:var(--green);background:var(--green-soft);border:1px solid color-mix(in srgb,var(--green) 32%,transparent)}.warning{color:var(--amber);background:var(--amber-soft);border:1px solid color-mix(in srgb,var(--amber) 32%,transparent)}.formula-code{display:inline-block;margin-top:4px;padding:5px 8px;color:var(--primary-dark);background:var(--primary-soft);border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem}
.empty-state{padding:32px 18px;text-align:center;color:var(--muted);background:var(--surface-soft);border:1px dashed var(--border-strong);border-radius:10px}.empty-state strong,.empty-state span{display:block}.empty-state strong{color:var(--text);margin-bottom:4px}
.icon-button{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer}.icon-button:hover{color:var(--red);border-color:var(--red);background:var(--red-soft)}
.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px;background:rgba(6,15,22,.56);backdrop-filter:blur(3px)}.modal{width:min(620px,100%);max-height:min(82vh,760px);overflow:auto;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:13px;box-shadow:0 28px 80px rgba(0,0,0,.28)}.modal-head{margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-head h2{margin:0;font-size:1.05rem}.toast-root{position:fixed;right:18px;bottom:18px;z-index:200;display:grid;gap:8px}.toast{min-width:240px;max-width:360px;padding:10px 12px;color:var(--text);background:var(--surface-raised);border:1px solid var(--border);border-radius:9px;box-shadow:var(--shadow);font-size:.78rem}.toast.error{color:var(--red);border-color:color-mix(in srgb,var(--red) 50%,var(--border))}
@media(max-width:1050px){.kpi-grid.five{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:780px){.grid-2,.form-grid,.form-grid.cols-3{grid-template-columns:1fr}.field-span-2{grid-column:auto}.kpi-grid,.kpi-grid.five{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.kpi-grid,.kpi-grid.five{grid-template-columns:1fr}.section-header{align-items:flex-start;flex-direction:column}}
.required-mark{color:var(--red);font-weight:850}.form-errors{margin-bottom:13px;padding:11px 13px;color:var(--red);background:var(--red-soft);border:1px solid color-mix(in srgb,var(--red) 42%,var(--border));border-radius:9px;font-size:.74rem}.form-errors[hidden]{display:none}.form-errors strong{display:block;margin-bottom:5px}.form-errors ul{margin:0;padding-left:18px}.form-errors li+li{margin-top:3px}.form-field input.is-invalid,.form-field select.is-invalid,.input-suffix input.is-invalid{border-color:var(--red);box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 12%,transparent)}.field-error{display:block;margin-top:5px;color:var(--red);font-size:.64rem;line-height:1.35}.draft-note{margin-top:9px;color:var(--muted);font-size:.66rem;text-align:center}.calculation-error{padding:14px;color:var(--red);background:var(--red-soft);border:1px solid color-mix(in srgb,var(--red) 40%,var(--border));border-radius:9px}.calculation-error strong,.calculation-error span{display:block}.calculation-error span{margin-top:4px;font-size:.73rem}

.direction-toggle{display:flex;border-radius:12px;overflow:hidden;background:#eef2f4}.direction-btn{flex:1;padding:10px;border:0}.direction-btn.active{background:#4f9f93;color:#fff}.leverage-row{display:flex;align-items:center;gap:8px}

.direction-toggle{position:relative;display:flex;overflow:hidden;border-radius:12px;background:#edf1f3;padding:3px}
.direction-btn{flex:1;padding:11px;border:0;background:transparent;cursor:pointer;transition:all .35s ease;font-weight:600}
.direction-btn.active{transform:translateY(-1px)}
.direction-long .direction-btn.active{background:#4f9f93;color:white}
.direction-short .direction-btn.active{background:#ef4444;color:white}

#leverage-slider{accent-color:#4f9f93;transition:accent-color .35s ease}
.direction-short #leverage-slider{accent-color:#ef4444}

/* v0.4.9 direction polish */
.direction-toggle{
 display:flex;
 width:100%;
 padding:0;
 overflow:hidden;
 border-radius:12px;
 background:#eef2f4;
}
.direction-btn{
 flex:1;
 border:0;
 border-radius:0;
 transition:all .35s ease;
}
.direction-long .direction-btn.active{
 background:#4f9f93;
 color:#fff;
}
.direction-short .direction-btn.active{
 background:#ef4444;
 color:#fff;
}
.direction-long #leverage-slider{
 accent-color:#4f9f93;
}
.direction-short #leverage-slider{
 accent-color:#ef4444;
}

/* v0.4.10 slider fix */
/* v0.4.11 restore native slider style with colored thumb */
#leverage-slider {
    accent-color: #4f9f93;
}
.direction-short #leverage-slider {
    accent-color: #ef4444;
}

/* v0.4.12 final leverage slider track */
#leverage-slider {
    -webkit-appearance: none;
    appearance: none;
    height: 6px;
    background: transparent;
}

#leverage-slider::-webkit-slider-runnable-track {
    height: 6px;
    border-radius: 999px;
    background: #eef2f4;
}

#leverage-slider::-moz-range-track {
    height: 6px;
    border-radius: 999px;
    background: #eef2f4;
}

#leverage-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 14px;
    height: 14px;
    margin-top: -4px;
    border-radius: 50%;
    background: #4f9f93;
}

.direction-short #leverage-slider::-webkit-slider-thumb {
    background: #ef4444;
}

.direction-long #leverage-slider::-webkit-slider-thumb {
    background: #4f9f93;
}

.direction-short #leverage-slider {
    accent-color:#ef4444;
}

.direction-long #leverage-slider {
    accent-color:#4f9f93;
}


/* v0.4.13 leverage field compact layout */
.leverage-row {
    display:flex;
    align-items:center;
    gap:8px;
}

.leverage-row input {
    width:90px;
    max-width:90px;
    height:38px;
    font-size:14px;
}

.leverage-row span {
    font-size:14px;
    font-weight:600;
}

/* keep slider simple, light remaining track */
#leverage-slider {
    accent-color:#4f9f93;
}

.direction-short #leverage-slider {
    accent-color:#ef4444;
}

/* v0.4.14 slider cleanup */
#leverage-slider::-webkit-slider-runnable-track {
    background:#eef2f4;
}
#leverage-slider::-moz-range-track {
    background:#eef2f4;
}


/* v0.4.15 leverage final UI */
.leverage-row {
    display:flex;
    align-items:center;
    gap:6px;
}

.leverage-row input {
    width:75px;
    max-width:75px;
    height:36px;
    font-size:14px;
    padding:6px 8px;
}

.leverage-row span {
    font-size:14px;
}

/* Slider: keep Bitfa-like appearance, only fix remaining track */
#leverage-slider {
    accent-color:#4f9f93;
}

.direction-short #leverage-slider {
    accent-color:#ef4444;
}

#leverage-slider::-webkit-slider-runnable-track {
    background:#eef2f4;
}

#leverage-slider::-moz-range-track {
    background:#eef2f4;
}



/* v0.4.17 leverage clean UI */
.leverage-control-row{
 display:flex;
 align-items:center;
 gap:10px;
}
.leverage-number-box{
 display:flex;
 align-items:center;
 gap:5px;
}
.leverage-number-box input{
 width:55px;
 height:34px;
 padding:4px 6px;
 font-size:14px;
}
.leverage-slider-wrap{
 flex:1;
}
.leverage-slider{
 width:100%;
 height:6px;
 appearance:none;
 -webkit-appearance:none;
 background:#e7ecef;
 border-radius:999px;
}
.leverage-slider::-webkit-slider-runnable-track{
 height:6px;
 background:#e7ecef;
 border-radius:999px;
}
.leverage-slider::-webkit-slider-thumb{
 appearance:none;
 -webkit-appearance:none;
 width:14px;
 height:14px;
 margin-top:-4px;
 border-radius:50%;
 background:#4f9f93;
}
.direction-short .leverage-slider::-webkit-slider-thumb{
 background:#ef4444;
}

/* v0.5.2 direction control dark-theme alignment fix */
.form-field .direction-toggle{
  display:flex;
  width:100%;
  min-height:40px;
  height:40px;
  padding:0;
  overflow:hidden;
  border-radius:8px;
  background:var(--surface-soft);
  border:1px solid var(--border-strong);
  box-sizing:border-box;
}
.form-field .direction-btn{
  flex:1 1 50%;
  min-height:38px;
  height:38px;
  margin:0;
  padding:0 12px;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--text);
  cursor:pointer;
  font-weight:700;
  font-size:.95rem;
  line-height:1;
  transition:background-color .28s ease,color .28s ease;
  transform:none;
}
.form-field .direction-btn:hover{background:color-mix(in srgb,var(--surface) 55%, transparent);}
.form-field .direction-btn.active{color:#fff;transform:none;box-shadow:none;}
.direction-long .direction-btn.active{background:#4f9f93;color:#fff;}
.direction-short .direction-btn.active{background:#ef4444;color:#fff;}
html[data-theme="dark"] .form-field .direction-toggle{background:var(--surface-soft);border-color:var(--border-strong);}
html[data-theme="dark"] .form-field .direction-btn:not(.active){color:var(--text);opacity:1;}
