.precis-fcp {
    --pf-ink: #1b3147;
    --pf-muted: #4d5f6d;
    --pf-accent: #176e66;
    --pf-line: #dbe4e9;
    color: var(--pf-ink);
    width: min(100% - 32px, 1280px);
    margin: 24px auto 64px;
}
.precis-fcp [hidden] { display: none !important; }
.pf-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: clamp(20px, 4vw, 42px);
    background: #f5f8f8;
    border: 1px solid var(--pf-line);
    border-radius: 12px;
}
.pf-market {
    margin: 0 0 8px;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    color: var(--pf-accent);
}
.pf-header h1 { margin: 0 0 10px; font-size: clamp(1.65rem, 3.1vw, 2.55rem); }
.pf-header p:last-child { max-width: 67ch; margin-bottom: 0; color: var(--pf-muted); }
.pf-source {
    flex: none;
    padding: 9px 13px;
    border: 1px solid #a9c9c5;
    border-radius: 6px;
    color: #19544f;
    background: #fff;
    font-size: .84rem;
}
.pf-controls { display: flex; align-items: end; flex-wrap: wrap; gap: 14px; margin: 26px 0 12px; }
.pf-controls label { display: grid; gap: 5px; color: var(--pf-ink); font-size: .88rem; }
.pf-controls label:first-child { flex: 1 1 280px; max-width: 470px; }
.pf-controls input, .pf-controls select {
    min-height: 42px;
    padding: 8px 12px;
    color: var(--pf-ink);
    background: #fff;
    border: 1px solid #c4d2dd;
    border-radius: 6px;
    font: inherit;
}
.precis-fcp .pf-controls input[type="search"] {
    box-sizing: border-box;
    height: 42px !important;
    color: var(--pf-ink) !important;
    background: #fff !important;
    border: 1px solid #c4d2dd !important;
    border-radius: 6px !important;
}
.precis-fcp .pf-controls input[type="search"]::placeholder { color: #53616d; opacity: 1; }
.pf-count, .pf-note, .pf-history { margin: 9px 0; color: var(--pf-muted); font-size: .84rem; }
.pf-table-wrap { overflow-x: auto; border: 1px solid var(--pf-line); border-radius: 8px; }
.pf-table { width: 100%; min-width: 740px; margin: 0; border-collapse: collapse; font-size: .9rem; }
.pf-table th, .pf-table td { padding: 11px 13px; border: 0; border-bottom: 1px solid #e8edf0; text-align: start; }
.pf-table thead th { background: var(--pf-ink); color: #fff; white-space: nowrap; }
.pf-table tbody tr:nth-child(even) { background: #f7faf9; }
.pf-table tbody tr:hover { background: #edf6f4; }
.pf-table .pf-value { font-variant-numeric: tabular-nums; font-weight: 650; white-space: nowrap; }
.precis-fcp .pf-fund {
    padding: 0;
    text-align: start;
    color: var(--pf-ink);
    background: transparent;
    border: 0;
    font: inherit;
    font-weight: 650;
    text-transform: none;
}
.precis-fcp .pf-fund:hover { color: var(--pf-accent); text-decoration: underline; }
.precis-fcp :focus-visible { outline: 2px solid var(--pf-accent); outline-offset: 3px; }
.pf-empty { padding: 12px; }
.pf-dialog {
    position: fixed;
    width: min(900px, 94vw);
    max-height: 90vh;
    max-height: 90dvh;
    padding: clamp(20px, 4vw, 36px);
    border: 0;
    border-radius: 12px;
    box-sizing: border-box;
    overflow-y: auto;
    color: var(--pf-ink);
    background: #fff;
}
.pf-dialog::backdrop { background: #182d43a3; }
.pf-dialog h2 { margin: 0 48px 10px 0; font-size: clamp(1.3rem, 3vw, 2rem); }
.precis-fcp .pf-close {
    position: absolute;
    inset: 14px 14px auto auto;
    padding: 3px 12px;
    border: 0;
    border-radius: 4px;
    color: #fff;
    background: var(--pf-ink);
    font-size: 1.3rem;
}
.pf-quote { margin: 0; font-size: 1.45rem; font-weight: 700; }
.pf-date { margin-top: 4px; color: var(--pf-muted); }
.pf-plot { position: relative; height: clamp(205px, 36vh, 340px); margin: 16px 0 6px; }
.pf-periods { display: flex; flex-wrap: wrap; gap: 6px; }
.precis-fcp .pf-periods button { padding: 5px 12px; border: 1px solid var(--pf-line); color: var(--pf-ink); background: #fff; }
.precis-fcp .pf-periods button[aria-pressed="true"] { background: var(--pf-ink); color: #fff; }
.pf-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; padding-top: 14px; border-top: 1px solid var(--pf-line); }
.pf-facts dt { font-weight: 650; }
.pf-facts dd { margin: 0; }
.pf-bulletin { color: var(--pf-accent); font-size: .86rem; }
@media (max-width: 640px) {
    .pf-header { flex-direction: column; gap: 14px; }
    .pf-controls label { flex: 1 1 100%; max-width: none; }
    .pf-table { min-width: 645px; }
    .pf-table th, .pf-table td { padding: 9px 9px; }
    .pf-table tbody th { width: 220px; }
}
