/* Pulso 2 · shared data components, consumed by product and documentation. */
:root,.p-theme-light,.p-theme-dark {
  --p-elevation-card:0 2px 4px var(--p-card-shadow),0 8px 20px var(--p-card-shadow);
  --p-elevation-header:0 1px 0 var(--p-header-edge),0 4px 8px -2px var(--p-header-shadow),0 12px 28px -8px var(--p-header-shadow);
  --p-elevation-float:0 16px 48px #14213826;
}
.p-theme-dark { color-scheme:dark; color:var(--p-text); background:var(--p-bg); }
.p-theme-light { color-scheme:light; color:var(--p-text); background:var(--p-bg); }
/* Neutral page canvas; accents belong to components, not ambient overlays. */
.p-canvas { background:var(--p-bg); color:var(--p-text); }
/* Match header owns the boundary before analysis, including loading/error states. */
.p-match-header { display:flow-root; margin-block:var(--p-space-12) var(--p-space-16); }
.p-match-header:empty { display:none; }
.p-match-header> :first-child { margin-block-start:0; }
.p-muted { color:var(--p-text-muted); }
.p-card { padding:var(--p-density-card); border:0; border-radius:20px; background:var(--p-surface); box-shadow:var(--p-elevation-card); }
.p-badge, .dia-pill.p-badge { display:inline-flex; align-items:center; justify-content:center; gap:6px; flex-shrink:0; width:max-content; max-width:100%; min-height:26px; padding:var(--p-badge-block) var(--p-badge-inline); border:0; border-radius:999px; font:650 var(--p-type-1-size)/var(--p-type-1-line) var(--p-font-body); letter-spacing:var(--p-type-1-tracking); background:var(--p-surface-raised); color:var(--p-text); white-space:nowrap; text-transform:none; }
.p-badge.today,.p-badge.selected { background:var(--p-highlight); color:var(--p-highlight-ink); }
.p-badge.live { background:var(--p-live-fill); color:var(--p-live-ink); }
.p-badge.live::before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; flex:none; }
.p-badge.live .live-dot { display:none; }
/* Semantic states are independent of brand emphasis and work in local themes. */
.p-badge.success { background:var(--p-success-bg); color:var(--p-success); }
.p-badge.error { background:var(--p-danger-bg); color:var(--p-danger); }
.p-badge.warning { background:var(--p-warning-bg); color:var(--p-warning); }
.p-badge.info { background:var(--p-info-bg); color:var(--p-info); }
.p-badge.editorial { background:var(--p-highlight); color:var(--p-highlight-ink); }
/* Compact form results: explicit text and accessible name, never a color alone. */
.p-form { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.p-result { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; width:24px; height:24px; border-radius:6px; background:var(--p-surface-raised); color:var(--p-text-muted); font:750 12px/1 var(--p-font-body); font-variant-numeric:tabular-nums; }
.p-result[data-result=win] { background:var(--p-result-win-fill); color:var(--p-result-win-ink); }
.p-result[data-result=draw] { background:var(--p-result-draw-fill); color:var(--p-result-draw-ink); }
.p-result[data-result=loss] { background:var(--p-result-loss-fill); color:var(--p-result-loss-ink); }
.p-result-legend { display:flex; flex-wrap:wrap; gap:8px 16px; color:var(--p-text-muted); font-size:12px; line-height:20px; }
.p-result-legend>span { display:inline-flex; align-items:center; gap:6px; }
.p-semantic-positive { color:var(--p-success); }
.p-semantic-negative { color:var(--p-danger); }
.p-semantic-neutral { color:var(--p-text-muted); }
.p-badge.neutral { background:var(--p-surface-raised); color:var(--p-text-muted); }
.p-button { background:var(--p-surface); border-color:var(--p-border); box-shadow:none; border-radius:12px; min-height:44px; padding:10px 16px; }
.p-button.primary { background:var(--p-action); color:var(--p-action-ink); border-color:transparent; box-shadow:none; }
.p-button:not(.danger):not(:disabled):not([aria-disabled="true"]):hover { background:var(--p-surface-hover); color:var(--p-text); border-color:var(--p-border); box-shadow:none; }
.p-button.primary:not(:disabled):not([aria-disabled="true"]):hover { background:var(--p-action-hover); color:var(--p-action-ink); border-color:transparent; }
.p-button.primary:not(:disabled):not([aria-disabled="true"]):active { background:var(--p-highlight); color:var(--p-highlight-ink); box-shadow:inset 0 0 0 2px var(--p-highlight-ink); }
/* Icon geometry is independent of the font baseline. */
.p-button.icon { display:inline-flex; align-items:center; justify-content:center; flex:none; width:44px; height:44px; padding:0; line-height:1; }
.p-button>svg { display:block; flex:none; }
.p-button.icon>svg { width:18px; height:18px; }
.p-button.icon.compact { width:36px; height:36px; min-height:36px; border:0; border-radius:10px; }
.p-button.icon.compact:not(:disabled):not([aria-disabled="true"]):hover { background:var(--p-highlight); color:var(--p-highlight-ink); }
.p-button.block { display:flex; width:100%; min-height:48px; margin:0; padding:12px 16px; font-size:14px; }
.p-picks-footer { display:grid; gap:8px; padding:8px 0; }
@media(pointer:coarse) { .p-button.icon.compact { width:44px; height:44px; min-height:44px; } }
.p-input,.p-select,.p-input-shell { box-shadow:none; }
.p-selection { display:inline-flex; align-items:center; justify-content:center; flex:none; width:36px; height:36px; min-width:36px; min-height:36px; padding:8px; border:0; border-radius:10px; background:var(--p-surface-raised); color:var(--p-text); cursor:pointer; font:700 20px/1 var(--p-font-body); }
.p-selection[aria-pressed="true"] { background:var(--p-highlight); color:var(--p-highlight-ink); box-shadow:none; }
.p-selection:not(:disabled):not([aria-disabled="true"]):hover { background:var(--p-selection-hover-fill); color:var(--p-selection-hover-ink); box-shadow:none; }
.p-selection:disabled { opacity:.45; cursor:not-allowed; }
.p-selection svg { display:block; flex:none; width:18px; height:18px; }
.p-selection:focus-visible,.p-button:focus-visible { outline:3px solid var(--p-focus); outline-offset:3px; }
.p-market-card { min-width:0; background:var(--p-surface); border-radius:20px; padding:4px; box-shadow:var(--p-elevation-card); overflow:hidden; }
.p-market-head { display:flex; gap:10px; align-items:center; padding:12px; }
.p-market-head h3 { font-size:16px; margin:0; }
.p-market-head small { font-size:12px; color:var(--p-text-muted); }
.p-market-columns,.p-market-row { display:grid; grid-template-columns:minmax(90px,1fr) 82px minmax(144px,1fr); align-items:center; gap:10px; padding:12px; }
.p-market-columns { font:600 10px/16px var(--p-font-body); letter-spacing:.04em; text-transform:uppercase; color:var(--p-text-muted); padding-top:4px; padding-bottom:4px; }
.p-market-columns> :nth-child(2) { text-align:center; }
.p-market-row { min-height:78px; border-top:1px solid var(--p-border); }
.p-market-row.total { background:color-mix(in srgb,var(--p-surface-raised) 65%,transparent); border-radius:0 0 16px 16px; }
.p-market-team { font:650 13px/20px var(--p-font-body); overflow-wrap:anywhere; }
.p-market-row small { display:block; color:var(--p-text-muted); font-size:11px; line-height:16px; font-weight:400; margin-top:3px; }
.p-market-value { text-align:center; font-variant-numeric:tabular-nums; }
.p-market-value strong { font:600 16px/24px var(--p-font-body); letter-spacing:-.015em; color:var(--p-text-muted); }
.p-market-value small { font-size:10px; white-space:nowrap; }
.p-market-choice { display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; }
.p-market-choice strong { font-size:16px; font-weight:750; line-height:22px; color:var(--p-emphasis); }
.p-market-choice small { display:block; margin-top:3px; color:var(--p-text-muted); font-size:12px; line-height:18px; }
/* Probability signals keep the numerical estimate visible, independent of color. */
.p-probability[data-tone],.p-probability-legend [data-tone] { --p-probability-ink:var(--p-warning); --p-probability-fill:var(--p-warning-bg); }
.p-probability[data-tone="high"],.p-probability-legend [data-tone="high"] { --p-probability-ink:var(--p-success); --p-probability-fill:var(--p-success-bg); }
.p-probability[data-tone] { display:inline-flex; align-items:center; gap:5px; padding:2px 6px; border-radius:6px; background:var(--p-probability-fill); color:var(--p-probability-ink); font-size:inherit; font-weight:800; line-height:1.4; font-variant-numeric:tabular-nums; white-space:nowrap; }
.p-probability::before { content:""; width:5px; height:5px; border-radius:50%; background:currentColor; flex:none; }
.p-probability-legend { display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; color:var(--p-text-muted); font-size:11px; line-height:18px; margin-bottom:12px; }
.p-probability-legend [data-tone] { display:inline-flex; align-items:center; gap:6px; }
.p-probability-legend [data-tone]::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--p-probability-ink); flex:none; }
.p-markets-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:12px; }
.p-feature { isolation:isolate; position:relative; overflow:hidden; display:flex; flex-direction:column; gap:16px; border:0; border-radius:22px; padding:20px; background:#141922; color:#fff; text-align:left; }
.p-feature-backdrop { position:absolute; inset:0; z-index:-2; overflow:hidden; display:flex; opacity:.66; }
.p-feature-backdrop img { width:56%; height:100%; object-fit:cover; filter:blur(32px) saturate(1.5); transform:scale(1.3); opacity:.65; }
.p-feature::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,#0c10174d,#0c1017b8 60%,#0c1017e8); pointer-events:none; }
.p-feature:hover { background:#141922; box-shadow:inset 0 0 0 1px #ffffff4d; }
.p-feature:hover .ob-feature-foot b { background:#ffffff14; color:var(--p-highlight); }
.p-recommendation { background:#151C24; color:#fff; border:0; border-radius:20px; padding:20px; }
.p-recommendation .p-button.primary { background:var(--p-highlight); color:var(--p-highlight-ink); }
.p-recommendation .p-button.primary:not(:disabled):not([aria-disabled="true"]):hover { background:#E9FF94; color:#223000; border-color:transparent; box-shadow:0 3px 14px #0003; }
.p-ticket-count { min-width:24px; height:24px; display:inline-grid; place-items:center; padding:0 6px; border-radius:8px; background:var(--p-highlight); color:var(--p-highlight-ink); font-size:12px; font-variant-numeric:tabular-nums; }
.p-type[data-size="1"] { font-size:var(--p-type-1-size); line-height:var(--p-type-1-line); letter-spacing:var(--p-type-1-tracking); }
.p-type[data-size="2"] { font-size:var(--p-type-2-size); line-height:var(--p-type-2-line); letter-spacing:var(--p-type-2-tracking); }
.p-type[data-size="3"] { font-size:var(--p-type-3-size); line-height:var(--p-type-3-line); letter-spacing:var(--p-type-3-tracking); }
.p-type[data-size="4"] { font-size:var(--p-type-4-size); line-height:var(--p-type-4-line); letter-spacing:var(--p-type-4-tracking); }
.p-type[data-size="5"] { font-size:var(--p-type-5-size); line-height:var(--p-type-5-line); letter-spacing:var(--p-type-5-tracking); }
.p-type[data-size="6"] { font-size:var(--p-type-6-size); line-height:var(--p-type-6-line); letter-spacing:var(--p-type-6-tracking); }
.p-type[data-size="7"] { font-size:var(--p-type-7-size); line-height:var(--p-type-7-line); letter-spacing:var(--p-type-7-tracking); }
.p-type[data-size="8"] { font-size:var(--p-type-8-size); line-height:var(--p-type-8-line); letter-spacing:var(--p-type-8-tracking); }
.p-type[data-size="9"] { font-size:var(--p-type-9-size); line-height:var(--p-type-9-line); letter-spacing:var(--p-type-9-tracking); }
@media(pointer:coarse) { .p-selection { width:44px; height:44px; min-width:44px; min-height:44px; } }
@media(max-width:1100px) { .p-markets-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:400px) {
  .p-market-columns,.p-market-row { grid-template-columns:minmax(0,.85fr) minmax(44px,.75fr) minmax(0,1.65fr); gap:6px; padding:10px 8px; }
  .p-market-team { font-size:12px; }.p-market-choice strong { font-size:14px; line-height:19px; }
  .p-market-value strong { font-size:14px; line-height:20px; }.p-market-value small { font-size:9px; }
  .p-market-choice>div { min-width:0; }
  .p-market-columns { font-size:9px; letter-spacing:0; }
  .p-market-value small { white-space:normal; }
}
@media(min-width:1720px) { .p-markets-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(prefers-reduced-motion:reduce) { .p-button,.p-feature,.p-selection { transition:none; } }

/* Emphasis is contextual: cobalt on light surfaces, lime on dark surfaces. */
.p-button.emphasis { background:var(--p-emphasis-fill); color:var(--p-emphasis-ink); border-color:transparent; }
.p-button.emphasis:not(:disabled):not([aria-disabled="true"]):hover { background:var(--p-emphasis-hover); color:var(--p-emphasis-ink); border-color:transparent; box-shadow:0 3px 12px #0002; }
.p-metric>strong,.p-emphasis { color:var(--p-emphasis); }
.p-card.interactive { cursor:pointer; transition:background-color 160ms ease; }
.p-card.interactive:hover { background:var(--p-surface-hover); }
.p-state-samples { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.p-state-samples>section { border-radius:18px; padding:20px; }
.p-state-samples .p-state-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:16px 0; }
.p-metric>strong { font-size:30px; font-variant-numeric:tabular-nums; }
.p-contract-table { table-layout:fixed; width:100%; }
.p-contract-table th,.p-contract-table td { white-space:normal; text-align:left; overflow-wrap:anywhere; }
.p-contract-table th:first-child { width:25%; }
@media(max-width:700px) { .p-state-samples { grid-template-columns:minmax(0,1fr); } }
.leg-editor-inner { min-height:0; overflow:hidden; }
.leg-editor-fields { margin:0 12px; padding:14px 0; border-top:1px solid var(--p-border); }
@keyframes p-editor-open { from { grid-template-rows:0fr; opacity:0; } to { grid-template-rows:1fr; opacity:1; } }
@keyframes p-editor-close { from { grid-template-rows:1fr; opacity:1; } to { grid-template-rows:0fr; opacity:0; } }
.p-live-detail-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:16px; align-items:start; }
.live-stat-legend { display:flex; justify-content:space-between; gap:12px; font-size:10px; color:var(--p-text-muted); padding-bottom:12px; }
.live-stat-legend span { max-width:48%; }
.live-stat-legend span:last-child { text-align:right; }
.p-live-stat { padding:8px 0; }
.p-live-stat-values { display:grid; grid-template-columns:50px 1fr 50px; align-items:center; font-variant-numeric:tabular-nums; }
.p-live-stat-values strong { font-size:17px; color:var(--p-chart-home); }
.p-live-stat-values strong:last-child { text-align:right; color:var(--p-chart-away); }
.p-live-stat-values span { font-size:11px; text-align:center; color:var(--p-text-muted); }
.p-live-bars { display:flex; gap:3px; height:4px; background:#ffffff09; border-radius:9px; overflow:hidden; margin-top:7px; }
.p-live-bars i { display:block; background:var(--p-chart-home); border-radius:9px; }
.p-live-bars i:last-child { background:var(--p-chart-away); }

/* Pulso 2.2: hierarchy and navigation in analytical detail. */
.p-app-header { background:var(--p-surface); box-shadow:var(--p-elevation-header); }
.p-icon-accent { color:var(--p-icon-accent); }
.p-button.tonal { background:color-mix(in srgb,var(--p-emphasis) 10%,var(--p-surface)); color:var(--p-emphasis); border-color:var(--p-emphasis); }
.p-button.tonal:not(:disabled):hover { background:color-mix(in srgb,var(--p-emphasis) 18%,var(--p-surface)); color:var(--p-emphasis); border-color:var(--p-emphasis); }
.p-detail-nav { display:flex; align-items:center; justify-content:space-between; gap:var(--p-space-12); }
.p-detail-nav .p-button { min-height:44px; }
.p-notice { display:flex; align-items:flex-start; gap:var(--p-space-12); margin:0; padding:12px 16px; border:1px solid var(--p-notice-border); border-radius:12px; background:var(--p-notice-bg); color:var(--p-notice-text); font:400 14px/22px var(--p-font-body); }
.p-notice>svg { flex:none; width:18px; height:18px; margin-top:2px; color:var(--p-icon-accent); }
.p-notice :is(b,strong) { color:var(--p-text); font-weight:650; }
.p-standings { display:flex; flex-direction:column; justify-content:center; width:100%; min-width:0; margin:0; padding:var(--p-space-16); border:0; border-radius:18px; background:var(--p-surface); }
.p-standings-title { display:flex; align-items:center; gap:8px; margin:0 0 8px; color:var(--p-text-muted); font:600 12px/18px var(--p-font-body); }
.p-standings-row { display:flex; align-items:center; gap:10px; width:100%; min-height:44px; padding:10px 0; border:0; border-radius:6px; background:transparent; color:var(--p-text); text-align:left; font:600 13px/20px var(--p-font-body); cursor:pointer; }
.p-standings-row+.p-standings-row { border-top:1px solid var(--p-border); }
.p-standings-row:hover { background:var(--p-surface-hover); }
.p-standings-row:focus-visible { outline:3px solid var(--p-focus); outline-offset:2px; }
.p-standings-row .pos { color:var(--p-emphasis); min-width:24px; font-weight:700; }
.p-standings-row img { width:22px; height:22px; object-fit:contain; }
.p-standings-row .nm { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.p-standings-row .pj { color:var(--p-text-muted); font-size:12px; }
.p-standings-row .pts { font-size:14px; white-space:nowrap; }
.p-standings-note { margin-top:6px; padding-top:10px; border-top:1px solid var(--p-border); color:var(--p-text-muted); font:400 12px/18px var(--p-font-body); }
/* Match history forms a complete row below standings and recommendation. */
.p-match-history { grid-column:1/-1; width:100%; min-width:0; background:var(--p-surface); }
.p-match-history .acc-head .extra { color:var(--p-text-muted); font-size:12px; font-weight:400; }
.p-match-history .acc-head .arrow { margin-left:auto; }
@media(max-width:600px) {
  .p-detail-nav { flex-wrap:wrap; }
  .p-detail-nav nav { flex:1 0 100%; }
  .p-detail-nav nav .p-button { width:100%; justify-content:space-between; }
}

/* Stacked disclosures keep a visible gutter in every expansion state. */
.p-accordion-stack { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; gap:var(--p-space-16); }
.p-accordion-stack > :is(.acc,.p-accordion) { min-width:0; margin:0; }

/* Header identity: balanced padding, equal control heights, centered avatar. */
.p-user-control { box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; flex:none; gap:var(--p-space-8); height:44px; min-height:44px; padding:7px 12px; border:1px solid var(--p-border); border-radius:999px; background:var(--p-surface); color:var(--p-text); font:700 13px/20px var(--p-font-body); cursor:pointer; }
.p-user-avatar { box-sizing:border-box; display:grid; place-items:center; flex:none; width:28px; height:28px; border-radius:50%; object-fit:cover; background:var(--p-surface-raised); color:var(--p-text-muted); }
.p-user-avatar>svg { display:block; width:16px; height:16px; }
.p-user-name { min-width:0; max-width:120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.p-header-icon { box-sizing:border-box; display:inline-grid; place-items:center; flex:none; width:44px; height:44px; min-height:44px; padding:0; border:0; border-radius:12px; background:transparent; color:var(--p-text); cursor:pointer; }
.p-header-icon>svg { display:block; width:18px; height:18px; }
.p-user-control:hover,.p-header-icon:hover { background:var(--p-surface-hover); }
.p-user-control:focus-visible,.p-header-icon:focus-visible { outline:3px solid var(--p-focus); outline-offset:3px; }
@media(max-width:640px) {
  .p-user-control { width:44px; padding:7px; gap:0; }
  .p-user-name { display:none; }
}

/* Ticket edit: icon-only control; accessible label remains on the button. */
.p-ticket-actions { display:flex; align-items:center; gap:4px; flex:none; }
[data-pulso] .p-button.p-ticket-edit { display:inline-grid; place-items:center; width:44px; min-width:44px; height:44px; min-height:44px; flex:none; gap:0; padding:0; border:0; border-radius:8px; background:var(--p-surface); color:var(--p-icon-accent); }
[data-pulso] .p-button.p-ticket-edit>svg { display:block; flex:none; width:18px; height:18px; }
[data-pulso] .p-button.p-ticket-edit:hover:not(:disabled) { background:var(--p-surface-hover); color:var(--p-icon-accent); }
[data-pulso] .p-button.p-ticket-edit[aria-expanded="true"], [data-pulso] .p-button.p-ticket-edit[aria-expanded="true"]:hover:not(:disabled) { background:var(--p-emphasis-fill); color:var(--p-emphasis-ink); }


/* Picks list: shared spacing for the catalog and the application. */
[data-pulso] .p-picks-list { display:grid; gap:var(--p-space-12); min-width:0; }
[data-pulso] .p-pick-item { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:var(--p-space-16); margin:0; padding:var(--p-space-16); border:0; border-radius:14px; background:var(--p-surface); color:var(--p-text); box-shadow:var(--p-elevation-card); }
[data-pulso] .p-pick-copy { display:grid; gap:var(--p-space-8); min-width:0; }
[data-pulso] .p-pick-copy> :is(p,div) { margin:0; }
.p-pick-caption { font-size:11px; line-height:18px; color:var(--p-text-muted); }
.p-pick-title { font-size:14px; line-height:22px; font-weight:700; overflow-wrap:anywhere; }
[data-pulso] .p-pick-alternatives { display:flex; align-items:center; flex-wrap:wrap; gap:var(--p-space-4) var(--p-space-8); margin:0; font-size:11px; line-height:18px; color:var(--p-text-muted); }
.p-pick-alt { display:inline-block; padding:2px var(--p-space-8); border-radius:4px; background:var(--p-surface-raised); white-space:nowrap; }
[data-pulso] .p-pick-actions { display:flex; align-items:center; gap:var(--p-space-12); flex-shrink:0; font-weight:750; font-variant-numeric:tabular-nums; }
@media(max-width:640px) {
  [data-pulso] .p-pick-item { gap:var(--p-space-12); }
  [data-pulso] .p-pick-actions { flex-direction:column; align-self:start; gap:var(--p-space-8); }
}
