
  /* ===== Portfolio v2 (scoped) ===== */
  .pf2 .pf-grid{ display:block; }
  .pf2 .pf-card{ width:100%; }

  .pf2 .pf-card{
    padding:12px;
    margin:10px 0;
  }

  /* header row: single line layout */
  .pf2 .pf2-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:wrap;
  }
  .pf2 .pf2-left{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    flex-wrap:wrap;
  }
  .pf2 .pf2-right{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    justify-content:flex-end;
  }

  .pf2 .pf2-title{
    display:flex; align-items:baseline; gap:10px; min-width:0;
  }
  .pf2 .pf-ticker{
    display:inline-flex;
    align-items:baseline;
    gap:7px;
    color:#0f172a;
    text-decoration:none;
    font-weight:800;
    cursor:pointer;
  }

  .pf2 .pf-ticker:hover .pf-ticker-name{
    color:#2563eb;
    text-decoration:underline;
  }

  .pf2 .pf-ticker-symbol{
    display:inline-block;
    margin-left:2px;
    font-size:.82em;
    font-weight:800;
    color:#64748b;
    letter-spacing:.02em;
  }
  .pf2 h1 {margin-top: 10px;}
  .pf2 .pf2-kpi{
    display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  }

  .pf2 .pf2-pl{
    font-weight:700;
    white-space:nowrap;
  }
  .pf2 .pf2-pl.ok{ color: var(--ok, #16a34a); }
  .pf2 .pf2-pl.bad{ color: var(--bad, #ef4444); }

  /* chart collapsed by default */
  .pf2 .pf2-chart{
    margin-top:10px;
    display:none;
  }
  .pf2 .pf-card.is-open .pf2-chart{ display:block; }

  /* make card clickable but don't break buttons */
  .pf2 .pf-card{ cursor:pointer; }
  .pf2 .pf-card a{
    cursor:pointer;
  }
  .pf2 .pf-card button, .pf2 .pf-card input, .pf2 .pf-card select, .pf2 .pf-card label{
    cursor:auto;
  }

  /* compact editor in header */
  .pf2 .pf-edit{ margin:0; padding:0; border:0; background:transparent; }
  .pf2 .pf-edit label{ display:flex; align-items:center; gap:6px; }
  .pf2 .pf-edit .pf-qty{ width:84px; }

  .pf2-sortbar{
    display:flex;
    gap:12px;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
  }
  
  #pf-modal-backdrop{
  display:none;
  position:fixed; inset:0;
  background: rgba(0,0,0,.35);
  z-index:9998;
}
#pf-modal{
  display:none;
  position:fixed;
  z-index:9999;
  left:50%; top:50%;
  transform:translate(-50%,-50%);
}


/* Portfolio trades table */
.pf-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:#fff;
  border:1px solid rgba(15,23,42,.10);
  border-radius:16px;
  overflow:hidden;
}

.pf-table thead th{
  font-weight:600;
  color:#64748b;
  background:#f8fafc;
  border-bottom:1px solid rgba(15,23,42,.10);
  padding:10px 12px;
  font-size:.95rem;
  white-space:nowrap;
}

.pf-table tbody td{
  padding:12px;
  border-bottom:1px solid rgba(15,23,42,.08);
  vertical-align:top;
}

.pf-table tbody tr:last-child td{ border-bottom:none; }

.pf-table tbody tr:hover td{
  background:rgba(47,107,255,.06);
}

.pf-table .ta-l{ text-align:left; }
.pf-table .ta-r{ text-align:right; }

.pf-table .mono{
  font-variant-numeric: tabular-nums;
  font-feature-settings:"tnum" 1;
}

.pf-table .ticker{
  font-weight:700;
  letter-spacing:.2px;
}

.pf-table .deal{
  display:inline-flex;
  gap:6px;
  align-items:center;
  font-weight:600;
}

.pf-table .deal .side{
  padding:2px 8px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.12);
  background:#fff;
  font-size:.85rem;
}

.pf-table .deal .side.buy{ color:#166534; border-color:rgba(22,101,52,.22); background:rgba(22,101,52,.06); }
.pf-table .deal .side.sell{ color:#991b1b; border-color:rgba(153,27,27,.22); background:rgba(153,27,27,.06); }

.pf-table .reason{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:260px;
}

.pf-table .reason .top{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}

.pf-table .chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:2px 10px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.12);
  background:#fff;
  font-size:.85rem;
  color:#0f172a;
  white-space:nowrap;
}

.pf-table .chip-analyst{ background:rgba(47,107,255,.08); border-color:rgba(47,107,255,.22); }
.pf-table .chip-ai{ background:rgba(16,185,129,.08); border-color:rgba(16,185,129,.22); }
.pf-table .chip-manual{ background:rgba(100,116,139,.08); border-color:rgba(100,116,139,.22); }

.pf-table .reason a.postlink{
  color:#1f54ff;
  text-decoration:none;
  border-bottom:1px solid rgba(31,84,255,.25);
}
.pf-table .reason a.postlink:hover{ border-bottom-color:rgba(31,84,255,.6); }

.pf-table .comment{
  color:#334155;
  font-size:.92rem;
}

.pf-table .muted{
  color:#64748b;
}

@media (max-width: 920px){
  .pf-table{ display:block; overflow:auto; }
  .pf-table thead th, .pf-table tbody td{ white-space:nowrap; }
  .pf-table .reason{ min-width:220px; }
}

.pf-res.ok{ color:#15803d; font-weight:600; }
.pf-res.bad{ color:#b91c1c; font-weight:600; }
.pf-res.muted{ color:#64748b; }

.pf-postlink{ color:#1f54ff; text-decoration:none; }
.pf-postlink:hover{ text-decoration:underline; }

.pf-reason-top{ display:inline; }
.pf-reason-note{
  margin-top:4px;
  color:#64748b;
  font-size:12px;
  line-height:1.25;
}

/* PF modal base */
#pf-modal{
  width:min(720px, calc(100vw - 24px));
  background:#fff;
  border:1px solid rgba(15,23,42,.12);
  border-radius:18px;
  box-shadow:0 24px 80px rgba(15,23,42,.25);
  overflow:hidden;
}

#pf-modal .hd{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  background:#f8fafc;
  border-bottom:1px solid rgba(15,23,42,.10);
}

#pf-modal .hd h3{ margin:0; font-size:18px; }

#pf-modal .pf-x{
  width:34px; height:34px;
  border-radius:10px;
  border:1px solid rgba(15,23,42,.12);
  background:#fff;
  cursor:pointer;
  font-size:18px;
  line-height:1;
}

#pf-modal .bd{ padding:14px 16px; }
#pf-modal .ft{
  padding:14px 16px;
  display:flex;
  justify-content:flex-end;
  gap:10px;
  border-top:1px solid rgba(15,23,42,.10);
  background:#fff;
}

#pf-modal .row{ margin-top:10px; display:flex; gap:10px; }
#pf-modal .row label{ display:flex; flex-direction:column; gap:6px; }

#pf-modal .input{
  height:40px;
  border-radius:12px;
  border:1px solid rgba(15,23,42,.14);
  padding:0 12px;
  outline:none;
  background:#fff;
}
#pf-modal .input:focus{
  border-color:rgba(47,107,255,.55);
  box-shadow:0 0 0 4px rgba(47,107,255,.14);
}

#pf-modal .btn.btn-ghost{
  background:#fff;
  border:1px solid rgba(15,23,42,.12);
}

/* FIX: allow title row to wrap on mobile */
.pf2 .pf2-title{ flex-wrap: wrap; }
.pf2 .pf2-title > *{ min-width: 0; }

@media (max-width: 520px){
  .pf2 .pf2-right{
    justify-content: flex-start;
    width: 100%;
  }
  /* если хочешь, чтобы сам чип выглядел как “плашка” слева */
  .pf2 .pf2-right .pf-chip{
    margin-left: 0;
  }
}
    /* ======================================================================
       Public Portfolio Page (PPF)
       Scoped styles ONLY: no overlaps with /portfolio (pf2) and no global edits
       ====================================================================== */

    /* Layout: list, not grid */
    .ppf .pf-grid{
      display:block !important;
    }

    /* One-line row card */
    .ppf .ppf-row1{
      display:flex;
      align-items:center;
      gap:14px;
      flex-wrap:nowrap;
      padding:14px 16px;
      margin:12px 0;
      width:100%;
      max-width:100%;
    }

    /* Title link: takes remaining space, ellipsis */
    .ppf .ppf-a{
      min-width:0;
      flex:1 1 auto;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }

    .ppf .ppf-qty{
      white-space:nowrap;
      flex:0 0 auto;
    }

    .ppf .ppf-last{
      margin-left:auto;
      white-space:nowrap;
      flex:0 0 auto;
      font-weight:700;
      font-size:18px;
    }

    .ppf .ppf-day{
      white-space:nowrap;
      flex:0 0 auto;
    }

    /* Mobile: allow wrap so it doesn't break width */
    @media (max-width: 720px){
      .ppf .ppf-row1{
        flex-wrap:wrap;
        gap:10px 14px;
      }
      .ppf .ppf-last{
        margin-left:0;
      }
    }
    
    
.pf-card-signals{
  display:flex;
  align-items:flex-start;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}


.pfsig-chip{
  display:inline-flex;
  align-items:center;
  padding:8px 14px;
  border-radius:999px;
  font-weight:700;
  font-size:13px;
  line-height:1;
  border:1px solid transparent;
  white-space:nowrap;
}



.pfsig-warning{
  background:#fff8e8;
  border-color:#f2d38b;
  color:#9a6700;
}

.pfsig-highrisk{
  background:#fff6ea;
  border-color:#efc27a;
  color:#9a5a00;
}

.pfsig-trim{
  background:#fff1f1;
  border-color:#efb0b0;
  color:#b42318;
}

.pfsig-defsell{
  background:#fdeaea;
  border-color:#e58f8f;
  color:#b42318;
}

.pfsig-normal{
  display:none;
}    

.pf-card-signals{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap;
  justify-content:flex-end;
}

.pf-page-head{
  margin:14px 0 12px;
}

.pf-kicker{
  font-size:12px;
  line-height:1;
  color:#64748b;
  margin-bottom:8px;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.pf-card-block{
  padding:18px;
  margin:14px 0;
  border-radius:18px;
}

.pf-block-head{
  display:flex;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}

.pf-block-head h2{
  margin:0 0 6px;
  font-size:20px;
}

.pf-block-head p{
  margin:0;
}

.pf-help-link{
  display:inline-flex;
  margin-top:10px;
  color:#2563eb;
  text-decoration:none;
  font-weight:700;
}

/* ===== Portfolio settings dashboard ===== */

.pf-page-head{
  margin:14px 0 12px;
}

.pf-kicker{
  font-size:12px;
  line-height:1;
  color:#64748b;
  margin-bottom:8px;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.pf-settings-card{
  width:100%;
  padding:18px;
  margin:14px 0 18px;
  border-radius:18px;
}

.pf-settings-head{
  margin-bottom:14px;
}

.pf-settings-head h2{
  margin:0 0 4px;
  font-size:22px;
  color:#0f172a;
}

.pf-settings-head p{
  margin:0;
}

.pf-settings-layout{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.pf-settings-panel{
  border:1px solid rgba(15,23,42,.08);
  background:#fbfdff;
  border-radius:16px;
  padding:16px;
  min-width:0;
}

.pf-settings-panel h3{
  margin:0 0 6px;
  font-size:17px;
  font-weight:800;
  color:#0f172a;
}

.pf-settings-panel p{
  margin:0 0 12px;
}

.pf2 .input,
.pf2 input[type="text"],
.pf2 input[type="email"],
.pf2 input[type="number"],
.pf2 select{
  height:40px;
  border:1px solid rgba(15,23,42,.14);
  border-radius:12px;
  padding:0 12px;
  background:#fff;
  font:inherit;
  font-size:14px;
  color:#0f172a;
  outline:none;
}

.pf2 .input:focus,
.pf2 input:focus,
.pf2 select:focus{
  border-color:rgba(37,99,235,.55);
  box-shadow:0 0 0 3px rgba(37,99,235,.12);
}

.pf-form-line{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:10px;
}

.pf-form-line .input{
  flex:1 1 220px;
  max-width:420px;
}

.pf-form-line-compact{
  margin-top:12px;
}

.pf-inline-row{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:10px;
}

.pf-check-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px 14px;
  margin-top:12px;
}

.pf-check-grid label,
.pf-check{
  display:inline-flex;
  gap:8px;
  align-items:center;
}

.pf-threshold{
  display:inline-flex;
  gap:8px;
  align-items:center;
}

.pf-threshold input{
  width:74px;
}

.pf-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:12px;
}

.pf-form-grid label,
.pf-full-field,
.pf-strategy-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.pf-full-field{
  margin-top:12px;
}

.pf-full-field .input{
  width:100%;
  max-width:100%;
}

.pf-strategy-field .input{
  min-width:260px;
}

.pf-help-link{
  display:inline-flex;
  margin-top:2px;
  color:#2563eb;
  text-decoration:none;
  font-weight:700;
}

.pf-msg{
  min-height:18px;
}

@media (max-width:980px){
  .pf-settings-layout{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px){
  .pf-form-grid,
  .pf-check-grid{
    grid-template-columns:1fr;
  }

  .pf-form-line .input,
  .pf-strategy-field .input{
    max-width:none;
    width:100%;
  }

  .pf-form-line{
    align-items:stretch;
  }
}

/* фикс селекта стратегии */
.pf-select{
  height:40px !important;
  min-height:40px !important;
  max-height:40px !important;
  width:100%;
  max-width:320px;
  appearance:auto;
  display:block;
}

/* контейнер стратегии */
.pf-strategy-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}

/* выравнивание строки */
.pf-settings-panel .pf-form-line{
  align-items:flex-end;
}
/* FIX strategy select height */
.pf2 .pf-strategy-field{
  display:flex;
  flex-direction:column;
  gap:6px;
  align-items:flex-start;
}

.pf2 .pf-strategy-field .pf-select{
  flex:0 0 auto !important;
  width:260px !important;
  max-width:100%;
  height:40px !important;
  min-height:40px !important;
  max-height:40px !important;
  line-height:40px;
  padding:0 12px;
}

.pf2 .pf-settings-panel .pf-form-line{
  align-items:flex-end;
}

.pf-current-email-line{
  display:flex;
  gap:8px;
  align-items:center;
  margin-bottom:8px;
}

.pf-divider{
  height:1px;
  background:#e5e9f0;
  margin:14px 0;
}

.pf-hint{
  font-size:12px;
  margin-top:6px;
}

.pf-access-row{
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto auto;
  gap:10px;
  align-items:center;
  margin-top:10px;
}

.pf-access-row + .pf-access-row{
  grid-template-columns:minmax(220px,1fr) auto;
}

@media (max-width:720px){
  .pf-access-row,
  .pf-access-row + .pf-access-row{
    grid-template-columns:1fr;
  }
}
/* Portfolio settings: collapsed by default, no JS */
.pf-settings-details{
  overflow: visible;
}

.pf-settings-summary{
  cursor: pointer;
  list-style: none;
}

.pf-settings-summary::-webkit-details-marker{
  display: none;
}

.pf-settings-summary::after{
  content: "⌄";
  flex: 0 0 auto;
  font-size: 22px;
  line-height: 1;
  color: #64748b;
  transform: rotate(0deg);
  transition: transform .15s ease;
}

.pf-settings-details[open] .pf-settings-summary::after{
  transform: rotate(180deg);
}

/* Portfolio trades collapse */
.pf-trades-details{
  overflow: visible;
}

.pf-trades-summary{
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.pf-trades-summary::-webkit-details-marker{
  display: none;
}

.pf-trades-summary::after{
  content: "⌄";
  flex: 0 0 auto;
  font-size: 22px;
  line-height: 1;
  color: #64748b;
  transform: rotate(0deg);
  transition: transform .15s ease;
}

.pf-trades-details[open] .pf-trades-summary::after{
  transform: rotate(180deg);
}

/* Portfolio KPI: mode / events */
#k_portfolio_mode_hint,
#k_event_control_hint{
  line-height: 1.5;
}

.pf-mode-kpi-meta{
  display: grid;
  gap: 4px;
}

.pf-mode-kpi-line{
  color: #64748b;
}

.pf-mode-kpi-line b{
  color: #334155;
}

.pf-mode-kpi-action{
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #e2e8f0;
  color: #64748b;
}

.pf-event-kpi-row{
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e2e8f0;
}

.pf-event-kpi-row:first-child{
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.pf-event-kpi-head{
  display: grid;
  gap: 2px;
}

.pf-event-kpi-head strong{
  color: #334155;
}

.pf-event-kpi-head span{
  color: #64748b;
}

.pf-event-kpi-action{
  margin-top: 6px;
  color: #64748b;
}\n\n
