/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./src/styles/classic.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* ============================================================================
 * Classic Editorial — fund ops design system
 * ----------------------------------------------------------------------------
 * Cream paper. Charcoal ink. System fonts only: Georgia serif for
 * display + system-ui sans for body + Menlo / SF Mono for tabular
 * figures. Double-rule masthead, Roman-numeral tab numbers,
 * ledger-style tables. Restraint over ornament.
 *
 * Inspirations: Financial Times print, The Economist data pages, classic
 * brokerage statements. Anti-Bloomberg.
 * ========================================================================== */

:root {
    /* paper palette — warm off-white, NOT pure white */
    --paper:        #f6f2e9;
    --paper-alt:    #efe9db;  /* table header / hover tint */
    --paper-sunk:   #ebe4d3;  /* sunken panels */

    /* ink */
    --ink:          #1a1a1a;
    --ink-soft:     #4a4a4a;
    --ink-muted:    #7c7565;  /* labels, captions; warm muted brown-gray */
    --ink-dim:      #a59c87;

    /* rules */
    --rule:         #c9c0ac;  /* hairline */
    --rule-soft:    #ddd5c0;
    --rule-strong:  #2a2a2a;  /* masthead double-rule */

    /* accents — used sparingly */
    --oxblood:      #6b1818;  /* negatives, alerts */
    --forest:       #1f4b34;  /* positives */
    --ochre:        #a37e2c;  /* warnings */

    /* type stacks — system fonts only; no web-font fetch */
    --serif:  Georgia, "Times New Roman", Times, serif;
    --sans:   -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --mono:   ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;

    --measure: 1080px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html, body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
}

body {
    font-family: var(--sans);
    font-weight: 400;
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: geometricPrecision;
    font-feature-settings: "kern", "liga", "calt";
}

a { color: inherit; }

/* gentle page-load fade — the one and only motion */
main, .view {
    animation: page-in 320ms ease-out both;
}
@keyframes page-in {
    from { opacity: 0; transform: translateY(2px); }
    to   { opacity: 1; transform: none; }
}

/* ============================================================================
 * Masthead — newspaper-style, double-rule below
 * ========================================================================== */

.masthead {
    max-width: var(--measure);
    margin: 0 auto;
    padding: 56px 32px 0;
}

.masthead-title {
    font-family: var(--serif);
    font-weight: 500;
    font-size: 44px;
    line-height: 1;
    letter-spacing: -0.01em;
    margin: 0;
    color: var(--ink);
}

.masthead-sub {
    margin: 12px 0 0;
    font-family: var(--sans);
    font-size: 12px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--ink-muted);
}
.masthead-sub > span + span::before {
    content: "·";
    margin: 0 10px;
    color: var(--ink-dim);
}

.masthead-rule {
    max-width: var(--measure);
    margin: 24px auto 0;
    padding: 0 32px;
}
.masthead-rule-inner {
    border-top: 3px solid var(--rule-strong);
    border-bottom: 1px solid var(--rule-strong);
    height: 6px;
}

/* ============================================================================
 * Banner — data-source disclosure
 * ----------------------------------------------------------------------------
 * Sits below the masthead rule, above the tabs. Three flavors:
 *   banner-warn — partial or all mock data (ochre)
 *   banner-good — all sections live (subdued forest)
 * Restraint matters: it must be unmissable but not loud.
 * ========================================================================== */

.banner {
    max-width: var(--measure);
    margin: 14px auto 0;
    padding: 12px 32px;
    display: flex;
    align-items: baseline;
    gap: 14px;
    flex-wrap: wrap;
    font-family: var(--serif);
    font-size: 14px;
    line-height: 1.5;
    border-top: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
}
.banner-warn { color: var(--oxblood); background: rgba(107, 24, 24, 0.04); }
.banner-good { color: var(--forest);  background: rgba(31, 75, 52, 0.04); }

.banner-eyebrow {
    font-family: var(--sans);
    font-weight: 700;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: inherit;
    flex-shrink: 0;
}
.banner-body {
    color: var(--ink-soft);
    font-style: italic;
}
.banner-body code {
    font-family: var(--mono);
    font-style: normal;
    font-size: 12px;
    background: rgba(0, 0, 0, 0.05);
    padding: 1px 5px;
    border-radius: 2px;
    color: var(--ink);
}
.banner-body em {
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-family: var(--sans);
    font-size: 11px;
    font-weight: 600;
    color: var(--ink);
}
.banner-body > span + span::before {
    content: "·";
    margin: 0 6px;
    color: var(--ink-dim);
}

/* ============================================================================
 * Tabs — Roman-numeraled text links
 * ========================================================================== */

.tabs {
    max-width: var(--measure);
    margin: 16px auto 0;
    padding: 0 32px 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 28px;
    border-bottom: 1px solid var(--rule);
}

.tab {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    font-family: var(--sans);
    font-size: 13px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--ink-soft);
    text-decoration: none;
    padding-bottom: 2px;
    border-bottom: 2px solid transparent;
    margin-bottom: -19px;
    transition: color 120ms ease;
}
.tab:hover { color: var(--ink); }
.tab.active {
    color: var(--ink);
    border-bottom-color: var(--ink);
}

.tab-num {
    font-family: var(--serif);
    font-weight: 400;
    font-style: italic;
    font-size: 13px;
    color: var(--ink-muted);
    letter-spacing: 0;
    text-transform: none;
    margin-right: 2px;
}

/* ============================================================================
 * Layout
 * ========================================================================== */

.view {
    max-width: var(--measure);
    margin: 0 auto;
    padding: 36px 32px 96px;
}

/* Section heading — small caps over a hairline rule */
.section-head {
    font-family: var(--sans);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--ink-muted);
    margin: 56px 0 14px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--rule);
}
.section-head:first-child { margin-top: 0; }

/* Headline figures (hero numbers) */
.figure {
    display: block;
    font-family: var(--serif);
    font-weight: 400;
    font-size: 72px;
    line-height: 1.02;
    letter-spacing: -0.018em;
    color: var(--ink);
    font-feature-settings: lining-nums tabular-nums;
    font-variant-numeric: lining-nums tabular-nums;
}
.figure.pos { color: var(--forest); }
.figure.neg { color: var(--oxblood); }

.figure-label {
    display: block;
    font-family: var(--sans);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--ink-muted);
    margin-bottom: 8px;
}

.figure-foot {
    margin-top: 12px;
    font-family: var(--serif);
    font-style: italic;
    font-size: 15px;
    color: var(--ink-soft);
}

/* Stat row — 4-up minor figures */
.stat-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    grid-gap: 0;
    gap: 0;
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
    margin-top: 28px;
}
.stat-row > .stat {
    padding: 18px 20px;
    border-right: 1px solid var(--rule);
}
.stat-row > .stat:last-child { border-right: none; }

.stat-label {
    font-family: var(--sans);
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--ink-muted);
    margin-bottom: 6px;
}
.stat-value {
    font-family: var(--serif);
    font-weight: 400;
    font-size: 24px;
    line-height: 1.1;
    color: var(--ink);
    font-feature-settings: lining-nums tabular-nums;
    font-variant-numeric: lining-nums tabular-nums;
}
.stat-value.pos { color: var(--forest); }
.stat-value.neg { color: var(--oxblood); }
.stat-unit {
    margin-top: 4px;
    font-family: var(--serif);
    font-style: italic;
    font-size: 12px;
    color: var(--ink-muted);
}

/* ============================================================================
 * Ledger tables
 * ========================================================================== */

table.ledger {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--sans);
    font-size: 13.5px;
    color: var(--ink-soft);
}
table.ledger thead th {
    text-align: left;
    padding: 10px 12px;
    border-bottom: 1.5px solid var(--ink);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--ink);
    background: transparent;
}
table.ledger tbody td {
    padding: 11px 12px;
    border-bottom: 1px solid var(--rule-soft);
    vertical-align: top;
}
table.ledger tbody tr:last-child td {
    border-bottom: 1.5px solid var(--ink);
}
table.ledger tbody tr:hover td { background: var(--paper-alt); }

table.ledger .num,
table.ledger .right {
    text-align: right;
    font-family: var(--mono);
    font-feature-settings: "tnum";
    font-size: 13px;
    color: var(--ink);
}
table.ledger .num.pos { color: var(--forest); }
table.ledger .num.neg { color: var(--oxblood); }
table.ledger .muted  { color: var(--ink-muted); }

/* Symbol / ticker treatment — set in serif italic for character */
.symbol {
    font-family: var(--serif);
    font-style: italic;
    font-size: 14px;
    color: var(--ink);
    letter-spacing: 0;
}

/* Sleeve indicator — text-only small caps, no chip background */
.sleeve {
    font-family: var(--sans);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--ink);
}
.sleeve::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-right: 6px;
    vertical-align: 1px;
    border-radius: 1px;
    background: var(--ink-muted);
}
.sleeve.s1::before { background: var(--ink); }
.sleeve.s2::before { background: var(--oxblood); }
.sleeve.fund::before { background: var(--ochre); }

/* Status words — italic serif, no backgrounds */
.status {
    font-family: var(--serif);
    font-style: italic;
    font-size: 14px;
}
.status.bad   { color: var(--oxblood); }
.status.good  { color: var(--forest); }
.status.warn  { color: var(--ochre); }

/* Tags for event types — serif italic, no chip */
.tag {
    font-family: var(--serif);
    font-style: italic;
    font-size: 13px;
    color: var(--ink-soft);
}
.tag.deny    { color: var(--oxblood); }
.tag.approve { color: var(--forest); }

/* Trace ID — small caps mono, subdued */
.trace {
    font-family: var(--mono);
    font-feature-settings: "tnum";
    font-size: 11px;
    color: var(--ink-soft);
    text-decoration: none;
    border-bottom: 1px dotted var(--ink-muted);
    padding-bottom: 1px;
}
.trace:hover { color: var(--ink); border-bottom-style: solid; }

/* ============================================================================
 * Filter controls — typed not buttoned
 * ========================================================================== */

.filter-bar {
    display: flex;
    align-items: baseline;
    gap: 28px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}
.filter-link {
    background: none;
    border: none;
    padding: 0;
    font-family: var(--sans);
    font-size: 12px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--ink-muted);
    cursor: pointer;
    border-bottom: 1px solid transparent;
    padding-bottom: 1px;
    transition: color 120ms ease;
}
.filter-link:hover { color: var(--ink-soft); }
.filter-link.active {
    color: var(--ink);
    border-bottom-color: var(--ink);
}

.text-input {
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--rule);
    padding: 6px 0;
    font-family: var(--serif);
    font-style: italic;
    font-size: 14px;
    color: var(--ink);
    width: 100%;
    max-width: 340px;
    outline: none;
    transition: border-color 120ms ease;
}
.text-input:focus { border-bottom-color: var(--ink); }
.text-input::placeholder { color: var(--ink-dim); font-style: italic; }

.input-label {
    font-family: var(--sans);
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--ink-muted);
    margin-right: 12px;
}

/* ============================================================================
 * Form primitives
 * ========================================================================== */

.form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    grid-gap: 20px 32px;
    gap: 20px 32px;
    margin-top: 12px;
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
    padding: 24px 0;
}
.field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.field .input-label { margin: 0; }

.primary-button {
    font-family: var(--sans);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    padding: 10px 22px;
    background: var(--ink);
    color: var(--paper);
    border: 1px solid var(--ink);
    border-radius: 1px;
    cursor: pointer;
    transition: background 120ms ease, color 120ms ease;
}
.primary-button:hover { background: var(--paper); color: var(--ink); }
.primary-button:disabled {
    opacity: 0.5;
    cursor: wait;
}

.text-button {
    font-family: var(--sans);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    background: transparent;
    color: var(--oxblood);
    border: none;
    border-bottom: 1px solid transparent;
    padding: 2px 0;
    cursor: pointer;
}
.text-button:hover { border-bottom-color: var(--oxblood); }
.text-button:disabled { opacity: 0.5; cursor: wait; }

.result-card {
    margin-top: 24px;
    padding: 20px 24px;
    border-top: 2px solid var(--forest);
    border-bottom: 1px solid var(--rule);
    background: rgba(31, 75, 52, 0.04);
}
.result-eyebrow {
    font-family: var(--sans);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--forest);
    margin-bottom: 8px;
}

/* ============================================================================
 * Trace card — grouped audit events
 * ========================================================================== */

.trace-card {
    margin-top: 40px;
}
.trace-card-head {
    display: flex;
    align-items: baseline;
    gap: 16px;
    flex-wrap: wrap;
    padding-bottom: 8px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--rule);
}
.trace-card-head .trace { font-size: 12px; }
.trace-card-head .status { font-size: 13px; }
.trace-card-head .when {
    font-family: var(--serif);
    font-style: italic;
    font-size: 13px;
    color: var(--ink-muted);
    margin-left: auto;
}

/* ============================================================================
 * Halt control
 * ========================================================================== */

.halt-panel {
    margin: 32px 0 0;
    padding: 16px 20px;
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
    display: flex;
    align-items: baseline;
    gap: 20px;
    flex-wrap: wrap;
}
.halt-panel.halted {
    border-top: 2px solid var(--oxblood);
    border-bottom: 2px solid var(--oxblood);
    background: rgba(107, 24, 24, 0.04);
}
.halt-eyebrow {
    font-family: var(--sans);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--forest);
    flex-shrink: 0;
}
.halt-panel.halted .halt-eyebrow { color: var(--oxblood); }
.halt-body {
    font-family: var(--serif);
    font-style: italic;
    font-size: 14px;
    color: var(--ink-soft);
    flex: 1 1;
}

/* ============================================================================
 * Empty state
 * ========================================================================== */

.empty {
    font-family: var(--serif);
    font-style: italic;
    font-size: 16px;
    color: var(--ink-muted);
    padding: 24px 0;
    text-align: center;
}

/* ============================================================================
 * Two-up grid for attribution etc.
 * ========================================================================== */

.two-up {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 56px;
    gap: 56px;
    margin-top: 16px;
}
@media (max-width: 720px) {
    .two-up { grid-template-columns: 1fr; gap: 32px; }
}

/* Drop cap for the lede paragraph (single decorative flourish) */
.lede::first-letter {
    font-family: var(--serif);
    font-weight: 500;
    font-size: 56px;
    line-height: 1;
    float: left;
    padding: 4px 8px 0 0;
    color: var(--ink);
}
.lede {
    font-family: var(--serif);
    font-size: 17px;
    line-height: 1.55;
    color: var(--ink-soft);
    margin: 12px 0 0;
    max-width: 720px;
}

pre.example {
    font-family: var(--mono);
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--ink-soft);
    background: var(--paper-sunk);
    border-left: 2px solid var(--rule);
    padding: 10px 14px;
    margin: 6px 0 8px;
    white-space: pre-wrap;
    word-break: break-word;
    max-width: 720px;
    overflow-x: auto;
}

/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./src/styles/globals.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* Reach for the design system tokens (--paper, --ink, --serif, etc.)
   and component classes (.figure, .stat-row, .ledger, .sleeve, etc.)
   in src/styles/classic.css before adding anything here. */

