:root {
    color-scheme: dark;
    --bg: #0a0a0b;
    --surface: #101012;
    --surface-2: #161619;
    --line: rgba(255, 255, 255, .09);
    --text: #f4f8f6;
    --muted: #93939d;
    --green: #ccccd0;
    --green-dark: #222226;
    --red: #ff6b72;
    --shadow: 0 18px 50px rgba(0, 0, 0, .28);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { min-height: 100%; background: var(--bg); }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 85% -10%, #232327 0, transparent 38%), var(--bg); color: var(--text); font: 15px/1.45 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 230px 1fr; }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 28px 22px; border-right: 1px solid var(--line); background: rgba(8,8,9,.84); backdrop-filter: blur(18px); display: flex; flex-direction: column; gap: 32px; }
.brand { display: flex; align-items: center; gap: 12px; font-size: 19px; font-weight: 760; letter-spacing: -.02em; }
.brand-mark { width: 58px; height: 58px; border-radius: 18px; display: grid; place-items: center; background: linear-gradient(145deg, #d4d4d8, #585861); color: #0a0a0b; font-weight: 900; box-shadow: 0 12px 35px rgba(228,228,231,.25); }
.brand-mark.small { width: 38px; height: 38px; border-radius: 12px; font-size: 13px; }
.desktop-nav { display: grid; gap: 7px; }
.desktop-nav a { color: var(--muted); padding: 11px 13px; border-radius: 10px; font-weight: 650; }
.desktop-nav a:hover, .desktop-nav a.active { color: var(--text); background: var(--surface-2); }
.sidebar .install-button { margin-top: auto; }
.text-button { color: var(--muted); border: 0; background: transparent; cursor: pointer; padding: 8px 0; }

.content { width: min(1120px, 100%); padding: 38px clamp(24px, 5vw, 74px) 80px; }
.page-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 28px; }
.page-header h1, .login-card h1 { font-size: clamp(30px, 4vw, 44px); letter-spacing: -.045em; line-height: 1; margin: 4px 0 0; }
.eyebrow { margin: 0; color: var(--green); font-size: 11px; font-weight: 800; letter-spacing: .18em; }
.muted { color: var(--muted); }

.button { min-height: 45px; padding: 0 18px; border: 1px solid transparent; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; font-weight: 760; cursor: pointer; }
.button.primary { background: var(--green); color: #0a0a0c; box-shadow: 0 10px 25px rgba(228,228,231,.18); }
.button.secondary { background: var(--surface-2); color: var(--text); border-color: var(--line); }
.button.ghost { background: transparent; color: var(--muted); border-color: var(--line); }
.button.compact { min-height: 40px; padding-inline: 15px; }

.notice { padding: 13px 16px; border-radius: 12px; margin-bottom: 20px; }
.notice.success { color: #e4e4e7; background: rgba(228,228,231,.12); border: 1px solid rgba(228,228,231,.22); }
.notice.danger { color: #ffc0c4; background: rgba(255, 107, 114, .1); border: 1px solid rgba(255, 107, 114, .2); }
.card { background: linear-gradient(145deg, rgba(24,24,26,.96), rgba(15,15,16,.96)); border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow); }
.empty-state { min-height: 430px; padding: 55px 30px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.empty-state h2 { margin: 22px 0 6px; font-size: 25px; }
.empty-state p { margin: 0 0 25px; color: var(--muted); }
.big-chip { width: 72px; height: 72px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(228,228,231,.35); color: var(--green); background: rgba(228,228,231,.08); font-size: 21px; font-weight: 800; }

.currency-block + .currency-block, .section-block { margin-top: 30px; }
.section-heading { display: flex; justify-content: space-between; align-items: center; margin: 0 0 13px; }
.section-heading h2 { font-size: 18px; margin: 0; }
.section-heading span, .section-heading a { color: var(--muted); font-size: 13px; }
.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.stat-card { min-height: 134px; padding: 19px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); display: flex; flex-direction: column; justify-content: space-between; }
.stat-card span, .stat-card small { color: var(--muted); }
.stat-card strong { font-size: clamp(22px, 2.6vw, 31px); letter-spacing: -.04em; }
.hero-stat { background: linear-gradient(145deg, #1a1a1d, #111113); }
.positive { color: var(--green) !important; }
.negative { color: var(--red) !important; }
.recent-days-table { overflow: hidden; }
.recent-days-section { margin-top: 0; }
.recent-days-section + .lifetime-block { margin-top: 30px; }
.recent-days-section > .section-heading { gap: 10px; }
.summary-currency-toggle { display: inline-flex; flex-shrink: 0; padding: 3px; gap: 2px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.summary-currency-toggle button { border: 0; border-radius: 7px; padding: 6px 10px; background: transparent; color: var(--muted); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.summary-currency-toggle button[aria-pressed="true"] { background: rgba(228,228,231,.14); color: var(--green); }
.summary-currency-toggle button:focus-visible { outline: 2px solid var(--green); outline-offset: 1px; }
.recent-day-money { min-width: 0; }
.summary-native-money { display: grid; gap: 7px; }
.summary-native-line { display: grid; gap: 1px; }
.summary-native-line strong { white-space: nowrap; }
.summary-native-line small { color: var(--muted); font-size: 9px; font-weight: 500; }
.summary-live-value { color: #62b6ff; font-weight: 700; }
.summary-live-value { animation: summary-live-blink 1.6s ease-in-out infinite; }
@keyframes summary-live-blink { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }
@media (prefers-reduced-motion: reduce) { .summary-live-value { animation: none; } }
.recent-days-row { min-height: 50px; padding: 11px 16px; display: grid; grid-template-columns: .85fr .75fr 1.25fr .8fr 1.1fr; gap: 12px; align-items: center; border-bottom: 1px solid var(--line); font-variant-numeric: tabular-nums; }
.recent-days-row:last-child { border-bottom: 0; }
.recent-days-row > :not(:first-child) { text-align: right; }
.recent-days-head { min-height: 38px; color: var(--muted); background: rgba(255,255,255,.025); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

.session-list { display: grid; gap: 9px; }
.session-row { min-height: 76px; display: grid; grid-template-columns: 46px minmax(0, 1fr) auto auto; gap: 14px; align-items: center; padding: 12px 16px; border: 1px solid var(--line); border-radius: 15px; background: rgba(18,18,20,.78); }
.session-date { text-align: center; border-right: 1px solid var(--line); padding-right: 14px; }
.session-date strong { display: block; font-size: 21px; line-height: 1; }
.session-date span { color: var(--muted); font-size: 10px; }
.session-main { min-width: 0; }
.session-main strong, .session-main span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.session-main span { color: var(--muted); font-size: 12px; margin-top: 3px; }
.session-result { text-align: right; font-size: 18px; font-weight: 800; }
.session-result small { display: block; color: var(--muted); font-size: 10px; font-weight: 650; }
.delete-form button { width: 32px; height: 32px; border-radius: 10px; border: 1px solid var(--line); color: var(--muted); background: transparent; cursor: pointer; }
.saved-session { border: 1px solid var(--line); border-radius: 16px; background: rgba(18,18,20,.78); scroll-margin-top: 20px; }
.saved-session > summary.session-row { grid-template-columns: 42px minmax(0,1fr) auto 16px; border: 0; background: transparent; cursor: pointer; list-style: none; margin: 0; }
.saved-session > summary::-webkit-details-marker { display: none; }
.saved-session > summary:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.saved-session[open] { border-color: rgba(228,228,231,.26); }
.session-chevron { color: var(--muted); transition: transform .18s; }
.saved-session[open] .session-chevron { transform: rotate(180deg); }
.saved-session-body { padding: 0 18px 18px; border-top: 1px solid var(--line); }
.saved-session-meta, .saved-session-amounts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px 16px; margin: 0; padding: 20px 0; }
.saved-session-body dt { color: var(--muted); font-size: 12px; margin-bottom: 6px; }
.saved-session-body dd { margin: 0; overflow-wrap: anywhere; font-size: 14px; }
.saved-session-amounts { border-top: 1px solid var(--line); }
.saved-session-amounts dd { font-weight: 700; font-variant-numeric: tabular-nums; }
.saved-session-body small { color: var(--muted); font-size: 11px; font-weight: 500; }
.saved-session-notes { white-space: pre-wrap; overflow-wrap: anywhere; color: var(--muted); font-size: 14px; margin: 0 0 20px; line-height: 1.6; }
.saved-session-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.saved-session-edit { min-width: 116px; background: var(--green-dark); color: var(--green); border: 1px solid rgba(228,228,231,.22); }
.saved-session-delete { min-height: 44px; border: 0; padding: 10px; background: transparent; color: var(--red); font: inherit; font-size: 13px; cursor: pointer; }
.saved-session-editor { padding-top: 18px; border-top: 1px solid var(--line); }
.saved-session-edit-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.saved-session-edit-heading h3 { margin: 0; font-size: 17px; }
.saved-session-edit-heading > span { color: var(--muted); font-size: 12px; }
.saved-session-editor input, .saved-session-editor textarea, .saved-session-editor select { font-size: 16px; min-width: 0; }
.saved-session-preview { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 17px 0; font-size: 14px; }
.saved-session-preview small { display: block; margin-top: 5px; }
.saved-session-preview strong { font-size: 18px; font-variant-numeric: tabular-nums; }
.saved-session-edit-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 560px) {
    .saved-session > summary.session-row { grid-template-columns: 34px minmax(0,1fr) auto 12px; gap: 8px; }
    .saved-session .session-date { padding-right: 8px; }
    .saved-session .session-result { font-size: 15px; }
    .saved-session-body { padding-right: 13px; padding-left: 13px; }
    .saved-session-meta, .saved-session-amounts { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 12px; }
    .saved-session-editor .form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 10px; }
    .saved-session-editor .span-2 { grid-column: 1 / -1; }
}

.form-card { padding: clamp(19px, 4vw, 30px); }
.form-card h2 { margin: 0 0 18px; font-size: 18px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.stack { display: grid; gap: 14px; }
.two-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.span-2 { grid-column: span 2; }
label { color: var(--muted); font-size: 12px; font-weight: 670; display: grid; gap: 7px; }
.objective-input-helper { color: #aeaeb6; font-size: 10px; font-weight: 550; line-height: 1.35; }
input, select, textarea { width: 100%; color: var(--text); background: #0d0d0e; border: 1px solid var(--line); border-radius: 11px; padding: 12px 13px; outline: none; }
input:focus, select:focus, textarea:focus { border-color: rgba(228,228,231,.6); box-shadow: 0 0 0 3px rgba(228,228,231,.08); }
textarea { resize: vertical; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.region-settings { grid-column: 1 / -1; }
.region-settings .section-heading { margin-bottom: 14px; }
.region-settings .section-heading h2 { margin-bottom: 3px; }
.region-chip-list { margin-bottom: 15px; display: flex; flex-wrap: wrap; gap: 7px; }
.region-chip-list span { padding: 6px 9px; border: 1px solid rgba(228,228,231,.18); border-radius: 999px; color: var(--green); background: rgba(228,228,231,.055); font-size: 11px; font-weight: 750; }
.region-create-form { margin-bottom: 16px; display: grid; grid-template-columns: minmax(190px, 1fr) auto; gap: 10px; align-items: end; }
.region-create-form .button { min-height: 45px; }
.country-region-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.country-region-list form { min-width: 0; padding: 9px 11px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(130px, .8fr); gap: 10px; align-items: center; border-radius: 11px; background: rgba(255,255,255,.03); }
.country-region-list strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.country-region-list select { padding-block: 9px; }
.trip-group-form { grid-column: 1 / -1; }
.trip-check-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.trip-check-fieldset legend { margin-bottom: 8px; color: var(--muted); font-size: 12px; font-weight: 670; }
.trip-check-list { max-height: 310px; padding: 6px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; overflow-y: auto; border: 1px solid var(--line); border-radius: 13px; background: #0d0d0e; }
.trip-check-option { min-width: 0; padding: 10px; display: flex; align-items: center; gap: 10px; border-radius: 9px; cursor: pointer; }
.trip-check-option:hover { background: rgba(228,228,231,.06); }
.trip-check-option input { width: 18px; height: 18px; flex: 0 0 18px; margin: 0; accent-color: var(--green); }
.trip-check-option span { min-width: 0; display: grid; }
.trip-check-option strong, .trip-check-option small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.trip-check-option strong { color: var(--text); font-size: 12px; }
.trip-check-option small { color: var(--muted); font-size: 10px; }
.trip-group-card { border-color: rgba(228,228,231,.2); background: linear-gradient(145deg, rgba(31,31,34,.82), rgba(15,15,16,.96)); }
.trip-group-card .eyebrow { margin-bottom: 4px; }
.trip-group-report-link { margin-top: 10px; }
.empty-compact { padding: 24px; color: var(--muted); text-align: center; }
.mobile-nav { display: none; }

.live-start { overflow: hidden; }
.live-hero { padding: 40px 30px 25px; text-align: center; background: radial-gradient(circle at 50% 0, rgba(228,228,231,.16), transparent 58%); }
.live-hero h2 { margin: 10px 0 4px; font-size: 29px; letter-spacing: -.035em; }
.live-hero p:last-child { color: var(--muted); margin: 0; }
.pulse-orb { width: 78px; height: 78px; margin: 0 auto 22px; display: grid; place-items: center; border: 1px solid rgba(228,228,231,.3); border-radius: 50%; background: rgba(228,228,231,.06); }
.pulse-orb span { width: 24px; height: 24px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 10px rgba(228,228,231,.1), 0 0 35px rgba(228,228,231,.55); }
.live-start-form { padding: 0 30px 30px; }
.trip-context { padding: 13px 15px; display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; align-items: center; border: 1px solid rgba(228,228,231,.2); border-radius: 13px; background: rgba(228,228,231,.06); }
.trip-context span { color: var(--green); font-size: 10px; font-weight: 850; letter-spacing: .13em; }
.trip-context strong { grid-row: 2; }
.trip-context small { grid-column: 2; grid-row: 1 / span 2; color: var(--muted); }
.live-main-button { min-height: 55px; font-size: 16px; }
.live-panel { max-width: 760px; margin-inline: auto; padding: clamp(20px, 4vw, 34px); text-align: center; overflow: hidden; }
.live-status { display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; border-radius: 999px; color: var(--muted); background: rgba(255,255,255,.04); font-size: 11px; font-weight: 850; letter-spacing: .12em; }
.live-status span { width: 8px; height: 8px; border-radius: 50%; background: var(--muted); }
.live-status.running { color: var(--green); background: rgba(228,228,231,.08); }
.live-status.running span { background: var(--green); box-shadow: 0 0 12px var(--green); }
.live-timer { margin: 22px 0 3px; font-variant-numeric: tabular-nums; font-size: clamp(48px, 10vw, 82px); line-height: 1; font-weight: 780; letter-spacing: -.06em; }
.live-timer.showing-money { font-size: clamp(38px, 8vw, 68px); letter-spacing: -.045em; }
.timer-mode-toggle { margin: 7px auto 2px; padding: 4px 10px; border: 0; border-radius: 999px; color: var(--green); background: rgba(228,228,231,.08); font-size: 11px; font-weight: 800; cursor: pointer; }
.live-context { color: var(--muted); margin-bottom: 25px; }
.objective-card { margin: -10px 0 22px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; text-align: left; background: rgba(255,255,255,.025); }
.objective-card > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.objective-card span { color: var(--muted); font-size: 12px; font-weight: 750; }
.objective-card strong { color: var(--green); }
.objective-track { width: 100%; height: 7px; margin: 10px 0 8px; display: block; overflow: hidden; border: 0; border-radius: 999px; background: rgba(255,255,255,.08); appearance: none; }
.objective-track::-webkit-progress-bar { background: rgba(255,255,255,.08); border-radius: inherit; }
.objective-track::-webkit-progress-value { background: var(--green); border-radius: inherit; }
.objective-track::-moz-progress-bar { background: var(--green); border-radius: inherit; }
.objective-card p, .objective-card small { margin: 0; color: var(--muted); font-size: 11px; }
.objective-card small { display: block; margin-top: 3px; }
.objective-card.complete { border-color: rgba(228,228,231,.35); background: rgba(228,228,231,.07); }
.objective-editor { width: min(560px, 100%); margin: -10px auto 18px; text-align: left; }
.objective-editor summary { width: max-content; margin: 0 auto; padding: 6px 10px; color: var(--green); font-size: 11px; font-weight: 800; cursor: pointer; }
.objective-editor-form { margin-top: 10px; padding: 14px; display: grid; grid-template-columns: 1fr 1fr auto; gap: 10px; align-items: end; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.025); }
.live-actions { display: flex; justify-content: center; gap: 9px; }
.live-actions form, .finish-actions form:not(.finish-form) { display: contents; }
.live-actions .button { width: min(330px, 100%); min-height: 54px; }
.live-actions .finish-toggle { color: #ffd6ae; border-color: rgba(255,172,93,.25); background: rgba(255,172,93,.08); }
.button.pause { color: #ffd57f; background: rgba(255,184,72,.1); border-color: rgba(255,184,72,.25); }
.button.resume { color: #0b0b0d; background: var(--green); }
.live-pause-tools { width: min(500px, 100%); margin: -4px auto 13px; }
.live-pause-tools[hidden] { display: none !important; }
.live-pause-summary { display: flex; align-items: baseline; justify-content: center; gap: 8px; color: #babac0; font-size: 12px; }
.live-pause-summary strong { color: #f1c976; font-size: 14px; font-variant-numeric: tabular-nums; }
.live-pause-summary small { color: #747480; font-size: 10px; font-variant-numeric: tabular-nums; }
.resume-correction { margin-top: 3px; text-align: center; }
.resume-correction summary { width: max-content; max-width: 100%; margin: auto; padding: 5px 8px; color: #82828d; font-size: 11px; font-weight: 650; cursor: pointer; }
.resume-correction-form { margin-top: 6px; padding: 11px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; align-items: end; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.025); text-align: left; }
.resume-correction-form label { display: grid; gap: 5px; color: var(--muted); font-size: 10px; }
.resume-correction-form input { min-height: 42px; }
.resume-correction-form .button { min-height: 42px; }
.live-kpis { margin: 30px 0 16px; display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--line); }
.live-kpis div { padding: 18px 8px; }
.live-kpis div + div { border-left: 1px solid var(--line); }
.live-kpis span, .live-kpis strong { display: block; }
.live-kpis span { color: var(--muted); font-size: 11px; }
.live-kpis strong { margin-top: 5px; font-size: 20px; }
.quick-add-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.live-start-draft-status { color: var(--muted); font-size: 11px; text-align: center; line-height: 1.5; }
.quick-add { display: grid; grid-template-columns: 1fr 44px; }
.quick-add input { border-radius: 11px 0 0 11px; }
.quick-add button { border: 0; border-radius: 0 11px 11px 0; background: var(--green-dark); color: var(--green); font-size: 22px; cursor: pointer; }
.quick-add .buyin-submit { color: #e4e4e7; background: #3e3e45; }
.quick-add .expense-submit { color: #ffe0aa; background: #875719; }
.quick-add.buyin-add { grid-template-columns: 122px minmax(0, 1fr) 44px; }
.quick-add.buyin-add select { min-width: 0; border-radius: 11px 0 0 11px; padding: 12px 30px 12px 11px; }
.quick-add.buyin-add input { border-radius: 0; }
.live-total-editor { width: min(500px, 100%); margin: 10px auto 0; }
.live-total-editor summary { color: var(--muted); font-size: 11px; font-weight: 750; cursor: pointer; }
.live-total-form { margin-top: 10px; padding: 15px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; align-items: start; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.025); text-align: left; }
.live-total-field { min-width: 0; display: grid; align-content: start; gap: 9px; }
.live-total-field label { align-content: start; gap: 9px; }
.live-total-field input, .live-total-field textarea { min-width: 0; height: var(--totals-control-height, 68px); min-height: 68px; padding: 12px; font-family: inherit; font-size: 14px; font-weight: 650; line-height: 1.5; font-variant-numeric: tabular-nums; }
.live-total-field textarea { resize: none; overflow: hidden; overflow-wrap: anywhere; }
.live-total-hint { color: var(--muted); font-size: 10px; line-height: 1.5; }
.live-total-form .button { grid-column: 1 / -1; min-height: 45px; margin-top: 1px; }
.expense-expression-total { margin: 0; display: flex; justify-content: space-between; align-items: baseline; gap: 5px; flex-wrap: wrap; color: var(--muted); font-size: 10px; line-height: 1.5; }
.expense-expression-total strong { color: var(--text); font-size: 12px; font-variant-numeric: tabular-nums; }
.is-submitting { opacity: .58; pointer-events: none; }
.session-management { margin-top: 13px; display: flex; justify-content: center; gap: 18px; flex-wrap: wrap; }
.session-management .text-button { font-size: 11px; font-weight: 750; }
.danger-text { color: #ff8e94; }

/* Cash en vivo: controles monocromos y discretos. */
.live-stealth-root { width: 100%; height: 100dvh; min-height: 0; overflow: hidden; background: #080808; }
.live-stealth { --green: #ededed; --green-dark: #292929; --muted: #999; --text: #ededed; --line: #292929; --surface: #111; --surface-2: #181818; width: 100%; height: 100dvh; min-height: 0; overflow: hidden; overscroll-behavior: none; background: #080808; }
.live-stealth .sidebar, .live-stealth .page-header, .live-stealth .mobile-nav { display: none !important; }
.live-stealth .app-shell { height: 100%; min-height: 0; display: block; overflow: hidden; }
.live-stealth .content { width: 100%; max-width: none; height: 100%; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: contain; scrollbar-width: none; padding: max(16px, env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom)); }
.live-stealth .content::-webkit-scrollbar { display: none; }
.live-stealth .content > .notice { width: min(440px, 100%); margin: 0 auto 8px; padding: 10px 14px; border: 1px solid #292929; border-radius: 12px; color: #ddd; background: #151515; text-align: center; font-size: 12px; transition: opacity .45s ease, transform .45s ease; }
.notice.is-hiding { opacity: 0; transform: translateY(-5px); }
.live-stealth .live-panel.card { width: min(440px, 100%); max-width: none; min-height: calc(100dvh - max(16px, env(safe-area-inset-top)) - max(20px, env(safe-area-inset-bottom))); margin: 0 auto; padding: 24px 0; display: flex; flex-direction: column; justify-content: center; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.live-stealth .live-status, .live-stealth .live-context, .live-stealth .objective-card, .live-stealth .live-kpis, .live-stealth .buyin-timeline { display: none; }
.live-stealth .live-timer { margin: 0; color: #ededed; font-size: clamp(58px, 17vw, 96px); font-weight: 600; letter-spacing: -.055em; }
.live-stealth .live-timer.showing-money { font-size: clamp(39px, 11.5vw, 68px); }
.live-stealth .live-timer { white-space: pre; font-variant-numeric: tabular-nums; }
.counter-digit, .counter-symbol { display: inline-block; }
.counter-digit { width: .58em; text-align: center; letter-spacing: -.035em; }
.live-stealth .live-timer.is-ticking { animation: counter-breathe 5s ease-in-out infinite; }
@keyframes counter-breathe { 0%, 100% { text-shadow: 0 0 18px #ffffff00; } 50% { text-shadow: 0 0 22px #ffffff20; } }
.live-stealth .content { touch-action: manipulation; padding-bottom: max(80px, calc(env(safe-area-inset-bottom) + 64px)); }
.live-stealth .live-panel.card { min-height: calc(100dvh - max(16px, env(safe-area-inset-top)) - max(80px, calc(env(safe-area-inset-bottom) + 64px))); }
.live-stealth.live-controls-hidden :is(.live-total-editor, .objective-editor, .live-details, .session-management, .resume-correction) { display: none; }
.live-controls-handle { position: fixed; z-index: 15; bottom: max(8px, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); display: grid; place-items: center; width: min(440px, calc(100% - 40px)); height: 52px; padding: 0; border: 0; border-radius: 16px; color: #777; background: #080808; cursor: pointer; touch-action: manipulation; }
.live-controls-handle > span { width: 30px; height: 2px; border-radius: 2px; background: #353535; transition: width .2s ease, background .2s ease; }
.live-controls-handle[aria-expanded="true"] > span { width: 42px; background: #777; }
.live-stealth .timer-mode-toggle { min-height: 44px; margin: 8px auto 28px; padding: 0 18px; border: 1px solid #242424; color: #aaa; background: #111; font-size: 12px; font-weight: 550; }
.live-stealth .live-actions { margin: 0 0 20px; gap: 10px; }
.live-stealth .live-actions .button { width: 100%; min-height: 54px; gap: 10px; border-radius: 14px; color: #e3e3e3; border-color: #383838; background: linear-gradient(#202020, #181818); box-shadow: inset 0 1px 0 #ffffff08; font-size: 14px; font-weight: 600; }
.live-stealth .live-actions .finish-toggle { background: #e2e2e2; border-color: #e2e2e2; color: #151515; }
.live-control-icon { display: inline-block; flex-shrink: 0; width: 12px; height: 13px; }
.icon-pause { border-inline: 3px solid currentColor; }
.icon-play { width: 0; height: 0; border-block: 6px solid transparent; border-left: 10px solid currentColor; }
.live-stealth .live-pause-tools { margin: -8px auto 16px; width: 100%; }
.live-stealth .live-pause-summary { color: #999; }
.live-stealth .live-pause-summary strong { color: #ddd; }
.live-stealth .quick-add-grid { margin: 0 auto 8px; width: 100%; grid-template-columns: 1fr; gap: 6px; }
.live-stealth .quick-add { grid-template-columns: minmax(0, 1fr) 44px; align-items: center; gap: 6px; padding: 2px 4px 2px 12px; border: 1px solid #222; border-radius: 10px; background: #0e0e0e; text-align: left; transition: border-color .15s ease; }
.live-stealth .quick-add:focus-within { border-color: #777; }
.live-stealth .quick-add-field { min-width: 0; display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 8px; }
.live-stealth .quick-add-field > span { display: grid; gap: 2px; color: #aaa; font-size: 11px; font-weight: 500; }
.live-stealth .quick-add-field small { color: #656565; font-size: 9px; font-weight: 400; letter-spacing: .04em; }
.live-stealth .quick-add input { min-width: 0; width: 100%; min-height: 24px; padding: 0; border: 0; border-radius: 0; background: transparent; color: #f0f0f0; font-size: 16px; line-height: 24px; box-shadow: none; }
.live-stealth .quick-add input::placeholder { color: #666; font-size: 12px; font-weight: 400; }
.live-stealth .quick-add input:focus { outline: none; box-shadow: none; }
.live-stealth .quick-add button { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #aaa; font-size: 21px; font-weight: 400; line-height: 1; }
.live-stealth .objective-editor { order: 5; width: 100%; margin: 0; }
.live-stealth .live-total-editor { width: 100%; margin: 0; }
.live-stealth .live-details { order: 6; width: 100%; margin: 0; padding: 0; border: 0; }
.live-stealth :is(.live-total-editor, .objective-editor, .live-details) > summary { width: 100%; min-height: 50px; margin: 0; padding: 0 4px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid #222; color: #aaa; font-size: 12px; font-weight: 500; text-align: left; list-style: none; cursor: pointer; }
.live-stealth details > summary::-webkit-details-marker { display: none; }
.live-stealth details > summary::marker { content: ''; }
.live-stealth details > summary::after { content: ''; display: inline-block; flex-shrink: 0; width: 7px; height: 7px; margin-right: 7px; border-right: 1.5px solid #999; border-bottom: 1.5px solid #999; transform: rotate(45deg) translateY(-2px); transition: transform .18s ease; }
.live-stealth details[open] > summary::after { transform: rotate(225deg) translate(-2px, -2px); }
.live-stealth details[open] > summary { color: #eee; }
.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid) { margin: 12px 0; padding: 16px; border: 1px solid #282828; border-radius: 14px; background: #111; text-align: left; }
.live-stealth :is(input, select, textarea) { background-color: #191919; border-color: #333; color: #eee; font-size: 16px; }
.live-stealth label { color: #aaa; font-size: 12px; }
.live-stealth .button.secondary { color: #ddd; border-color: #3b3b3b; background: #242424; }
.live-stealth .button.primary { background: #dedede; border-color: #dedede; color: #111; box-shadow: none; }
.live-stealth .session-management { order: 7; margin-top: 18px; gap: 6px 24px; }
.live-stealth .session-management .text-button { min-height: 44px; padding: 8px 0; color: #888; font-size: 11px; font-weight: 500; }
.live-stealth .session-management .danger-text { color: #ba9292 !important; }
.live-stealth .live-feedback { border-color: #3b3b3b; background: #171717; color: #e5e5e5; }
.live-stealth .live-feedback .feedback-mark { background: #2c2c2c; color: #ddd; }
.live-stealth .app-confirm-dialog { background: #151515; border-color: #383838; color: #eee; }
.live-stealth .app-confirm-icon { background: #292929; color: #ddd; }
.live-stealth .app-confirm-cancel { background: #242424; border-color: #444; color: #ddd; }
.live-stealth .app-confirm-accept { background: #dedede; color: #111; }
.live-stealth .resume-correction summary { min-height: 44px; display: flex; align-items: center; gap: 12px; color: #aaa; list-style: none; }
.live-stealth .finish-actions { order: 4; margin: 8px 0 16px; }
.live-stealth :is(button, summary):focus-visible { outline: 2px solid #ddd; outline-offset: 4px; }
@media (hover: hover) { .live-stealth :is(button, summary):hover { filter: brightness(1.18); } }
@media (prefers-reduced-motion: reduce) { .live-stealth details > summary::after, .live-controls-handle > span { transition: none; } .live-stealth .live-timer.is-ticking { animation: none; } }
.quote-strip { margin: 0 30px 20px; padding: 13px 15px; display: grid; grid-template-columns: 1fr auto; gap: 3px 12px; align-items: center; border: 1px solid rgba(228,228,231,.18); border-radius: 14px; background: rgba(228,228,231,.05); }
.quote-strip[hidden] { display: none; }
.quote-strip span, .quote-strip small { color: var(--muted); font-size: 11px; }
.quote-strip strong { grid-row: 2; }
.quote-strip form { grid-column: 2; grid-row: 1 / span 2; }
.buyin-timeline { margin-top: 14px; display: grid; gap: 7px; text-align: left; }
.buyin-timeline div, .currency-line { display: flex; justify-content: space-between; gap: 14px; padding: 10px 12px; border-radius: 10px; background: rgba(255,255,255,.035); }
.buyin-timeline span, .currency-line span { color: var(--muted); }
.trip-list { display: grid; gap: 14px; }
.trip-card { padding: 22px; }
.trip-card .section-heading { margin-bottom: 8px; }
.trip-card h2 { margin: 0 0 3px; }
.trip-dates { color: var(--muted); font-size: 13px; }
.compact-stats { margin: 16px 0 12px; }
.muted-line { opacity: .75; }
.live-details { margin-top: 20px; text-align: left; border-top: 1px solid var(--line); padding-top: 18px; }
.live-details summary { cursor: pointer; color: var(--muted); font-weight: 700; margin-bottom: 20px; }
.finish-actions { margin-top: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.finish-actions[hidden] { display: none !important; }
.finish-form { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; text-align: left; }
.finish-form .button { grid-column: 1 / -1; min-height: 54px; }
.danger-button { color: #ffb4b8; background: rgba(255,107,114,.08); border-color: rgba(255,107,114,.2); }
.check-row, .switch-label { display: flex; align-items: center; gap: 9px; }
.check-row input, .switch-label input { width: 18px; height: 18px; margin: 0; accent-color: var(--green); }
.venue-fee-list { max-height: 430px; overflow: auto; display: grid; gap: 7px; }
.venue-fee-list form { padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-radius: 11px; background: rgba(255,255,255,.03); }
.venue-fee-list span { min-width: 0; display: grid; }
.venue-fee-list strong, .venue-fee-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.venue-fee-list small { color: var(--muted); }

.report-presets { margin-bottom: 14px; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.report-presets a { min-width: 0; padding: 14px 15px; display: grid; gap: 2px; border: 1px solid var(--line); border-radius: 15px; background: rgba(18,18,20,.78); }
.report-presets a.active { border-color: rgba(228,228,231,.42); background: rgba(228,228,231,.1); }
.report-presets span { color: var(--green); font-size: 9px; font-weight: 850; letter-spacing: .12em; }
.report-presets strong, .report-presets small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.report-presets small { color: var(--muted); font-size: 11px; }
.venue-report-picker { margin-bottom: 14px; padding: 17px 18px; }
.venue-report-picker form { display: grid; grid-template-columns: minmax(220px, 1fr) auto auto; gap: 10px; align-items: end; }
.venue-report-picker .button { min-height: 48px; }
.venue-search-label { min-width: 0; }
.search-combobox { position: relative; min-width: 0; display: block; }
.search-combobox.is-enhanced > select { position: absolute; width: 1px; height: 1px; padding: 0; opacity: 0; pointer-events: none; }
.search-combobox-control { min-height: 48px; display: grid; grid-template-columns: minmax(0, 1fr) 44px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #0d0d0e; transition: border-color .16s ease, box-shadow .16s ease, background .16s ease; }
.search-combobox.is-open .search-combobox-control, .search-combobox-control:focus-within { border-color: rgba(228,228,231,.58); background: #0f0f11; box-shadow: 0 0 0 3px rgba(228,228,231,.08); }
.search-combobox-input { min-width: 0; height: 46px; padding: 0 4px 0 13px; border: 0; border-radius: 0; background: transparent; box-shadow: none !important; color: var(--text); }
.search-combobox-input::placeholder { color: #757582; }
.search-combobox-input::-webkit-search-cancel-button { opacity: .55; }
.search-combobox-toggle { width: 44px; height: 46px; padding: 0; border: 0; color: var(--green); background: transparent; cursor: pointer; font-size: 15px; transition: transform .16s ease, background .16s ease; }
.search-combobox-toggle:hover { background: rgba(228,228,231,.07); }
.search-combobox.is-open .search-combobox-toggle { transform: rotate(180deg); }
.search-combobox-results { position: absolute; z-index: 30; top: calc(100% + 7px); left: 0; right: 0; max-height: min(340px, 50dvh); padding: 6px; overflow-y: auto; overscroll-behavior: contain; border: 1px solid rgba(255,255,255,.12); border-radius: 14px; background: #0e0e10; box-shadow: 0 22px 55px rgba(0,0,0,.5); }
.search-combobox-option { width: 100%; min-height: 45px; padding: 9px 11px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 0; border-radius: 9px; color: var(--text); background: transparent; text-align: left; cursor: pointer; }
.search-combobox-option:hover, .search-combobox-option.is-active { color: #e4e4e7; background: rgba(228,228,231,.11); }
.search-combobox-option.is-selected::after { content: '✓'; flex: 0 0 auto; color: var(--green); font-weight: 900; }
.search-combobox-empty { margin: 0; padding: 15px 11px; color: var(--muted); text-align: center; font-size: 12px; }
.venue-report-title { margin: 6px 0 15px; padding: 19px 4px 4px; display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.venue-report-title h2 { margin: 4px 0 3px; font-size: clamp(25px, 4vw, 38px); }
.venue-report-title p { margin: 0; color: var(--muted); font-size: 12px; }
.venue-report-title > span { color: var(--green); font-size: 11px; font-weight: 800; text-align: right; }
.venue-report-link { color: var(--green); }
.report-filter-card { padding: 18px; margin-bottom: 16px; }
.report-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); gap: 12px; align-items: end; }
.report-filters .button { min-width: 120px; }
.report-kpis { margin-bottom: 16px; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); }
.report-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.chart-card { min-width: 0; padding: 20px; overflow: hidden; }
.chart-primary { grid-column: 1 / -1; }
.chart-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 8px; }
.chart-heading h2 { margin: 4px 0 0; font-size: 18px; }
.chart-heading-actions { display: flex; align-items: center; gap: 10px; }
.chart-heading-actions > span { color: var(--muted); font-size: 11px; font-weight: 800; white-space: nowrap; }
.chart-fullscreen-button { min-height: 38px; padding: 0 11px; display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); border-radius: 10px; color: var(--text); background: rgba(255,255,255,.035); font-size: 11px; font-weight: 750; cursor: pointer; }
.chart-fullscreen-button:hover { border-color: rgba(228,228,231,.36); background: rgba(228,228,231,.08); }
.chart-fullscreen-button b { color: var(--green); font-size: 16px; font-weight: 400; line-height: 1; }
.chart-host { min-height: 280px; width: 100%; }
.chart-host.has-tooltip { position: relative; }
.performance-host { min-height: 430px; }
.chart-host svg { width: 100%; height: auto; display: block; overflow: visible; }
.chart-axis { color: var(--muted); font-size: 10px; }
.chart-axis-title { fill: var(--muted); font-size: 10px; }
.chart-value, .chart-last-value { font-size: 10px; font-weight: 800; }
.chart-last-value { fill: var(--text); }
.chart-hit { cursor: crosshair; touch-action: pan-y; }
.chart-series-legend { margin: 3px 0 3px; display: flex; flex-wrap: wrap; gap: 7px 16px; color: var(--muted); font-size: 11px; }
.chart-series-legend span { display: inline-flex; align-items: center; gap: 6px; }
.chart-series-legend span::before { content: ''; width: 14px; height: 3px; border-radius: 999px; background: currentColor; }
.chart-series-legend .legend-profit { color: var(--green); }
.chart-series-legend .legend-ev { color: #65a6ff; }
.chart-series-legend .legend-session { color: #ffc86a; }
.chart-series-legend .legend-session::before { height: 9px; opacity: .45; }
.chart-series-legend .legend-trend { color: #ffc86a; }
.chart-series-legend .legend-trend::before { height: 1px; background: repeating-linear-gradient(90deg, currentColor 0 5px, transparent 5px 8px); }
.chart-series-legend .legend-diff-positive { color: var(--green); }
.chart-series-legend .legend-diff-negative { color: var(--red); }
.live-feedback { position: fixed; z-index: 140; left: 50%; top: max(16px, env(safe-area-inset-top)); width: min(420px, calc(100vw - 28px)); padding: 12px; display: flex; align-items: center; gap: 11px; border: 1px solid rgba(228,228,231,.28); border-radius: 16px; color: #e8e8ea; background: rgba(18,18,20,.97); backdrop-filter: blur(16px); box-shadow: 0 12px 34px rgba(0,0,0,.42); font-size: 13px; font-weight: 600; line-height: 1.45; text-align: left; opacity: 0; visibility: hidden; pointer-events: none; transform: translate(-50%, -8px); transition: opacity .18s ease, transform .18s ease, visibility .18s; }
.live-feedback.visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
.feedback-mark { display: grid; place-items: center; flex: 0 0 28px; height: 28px; border-radius: 50%; background: rgba(228,228,231,.12); color: var(--green); font-weight: 800; }
.feedback-message { flex: 1; min-width: 0; }
.feedback-close { flex-shrink: 0; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 9px; color: #b0b0b8; background: transparent; font-size: 22px; cursor: pointer; }
.feedback-close:hover { background: rgba(255,255,255,.06); }
.live-feedback.error { border-color: rgba(255,107,114,.35); }
.live-feedback.error .feedback-mark { color: #ff8e94; background: rgba(255,107,114,.12); }
.app-confirm-dialog { width: min(420px, calc(100vw - 28px)); max-height: calc(100dvh - 32px); overflow-y: auto; margin: auto; padding: 25px; border: 1px solid #323238; border-radius: 24px; color: #ebebec; background: #111113; box-shadow: 0 24px 90px rgba(0,0,0,.65); text-align: left; }
.app-confirm-dialog::backdrop { background: rgba(3,3,3,.72); backdrop-filter: blur(5px); }
.app-confirm-dialog[open] { animation: app-confirm-in .18s ease-out; }
.app-confirm-icon { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 18px; border-radius: 14px; color: var(--green); background: rgba(228,228,231,.1); font-size: 22px; font-weight: 750; }
.app-confirm-dialog h2 { margin: 0 0 10px; color: #f0f0f2; font-size: 21px; line-height: 1.25; letter-spacing: -.025em; }
.app-confirm-dialog p { margin: 0; color: #b0b0b8; font-size: 14px; line-height: 1.6; }
.app-confirm-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 24px; }
.app-confirm-actions button { min-height: 46px; padding: 11px 12px; border: 1px solid #34343a; border-radius: 12px; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.app-confirm-cancel { background: #19191c; color: #d8d8dc; }
.app-confirm-accept { background: #c6c6cc; color: #0c0c0e; border-color: transparent !important; }
.app-confirm-dialog.is-danger .app-confirm-icon { color: #ff9599; background: rgba(255,107,114,.12); }
.app-confirm-dialog.is-danger .app-confirm-accept { color: #fff; background: #b6404b; }
.app-confirm-actions button:focus-visible, .feedback-close:focus-visible { outline: 2px solid #c4c4c9; outline-offset: 3px; }
@keyframes app-confirm-in { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }
@media (max-width: 560px) { .app-confirm-dialog { margin: auto auto max(14px, env(safe-area-inset-bottom)); padding: 23px; border-radius: 24px; } }
@media (prefers-reduced-motion: reduce) { .app-confirm-dialog[open] { animation: none; } .live-feedback { transition: none; } }
.live-stealth.swipe-leaving .live-panel { opacity: .25; transform: translateX(70px); transition: opacity .12s ease, transform .12s ease; }
.report-chart-tooltip { z-index: 4; position: absolute; width: min(238px, calc(100% - 12px)); padding: 11px 12px; gap: 3px; pointer-events: none; border: 1px solid rgba(255,255,255,.14); border-radius: 11px; color: var(--text); background: rgba(9,9,10,.96); box-shadow: 0 12px 32px rgba(0,0,0,.42); font-size: 11px; }
.chart-tooltip-content { display: grid; gap: 3px; overflow-wrap: anywhere; }
.report-chart-tooltip strong { font-size: 13px; padding-right: 30px; min-height: 24px; }
.chart-tooltip-close { position: absolute; top: 0; right: 0; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 10px; color: var(--muted); background: transparent; font-size: 24px; cursor: pointer; pointer-events: auto; touch-action: manipulation; }
.chart-tooltip-close:hover { color: var(--text); background: rgba(255,255,255,.06); }
.chart-tooltip-close:focus-visible { outline: 2px solid #ffdf57; outline-offset: -4px; }
.profit-ath-label { fill: #ffdf57; font-size: 10px; font-weight: 750; paint-order: stroke; stroke: var(--surface-2); stroke-width: 3px; stroke-linejoin: round; }
.chart-ath-summary { margin-top: 12px; padding: 14px; border: 1px solid rgba(255,223,87,.2); border-radius: 12px; background: rgba(255,223,87,.035); }
.ath-summary-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.ath-summary-heading > strong { color: #ffdf57; font-size: 13px; }
.ath-status { padding: 4px 8px; border-radius: 6px; color: var(--muted); background: rgba(255,255,255,.06); font-size: 10px; font-weight: 750; }
.ath-status.is-current { color: var(--green); background: rgba(228,228,231,.1); }
.ath-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.ath-summary-grid > div { display: grid; align-content: start; gap: 5px; min-width: 0; }
.ath-summary-grid span, .ath-summary-grid small, .ath-summary-note { color: var(--muted); font-size: 10px; }
.ath-summary-grid strong { font-size: 12px; overflow-wrap: anywhere; }
.ath-summary-note { margin: 12px 0 0; }
@media (max-width: 540px) { .ath-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ath-summary-grid > div:first-child { grid-column: 1 / -1; } }
.chart-series-legend .legend-ath { color: #ffdf57; }
.chart-series-legend .legend-ath::before { content: '★'; width: auto; height: auto; background: none; }
.stake-performance-legend.show-diff .legend-ath { display: none; }
.stake-performance-legend.show-hourly .legend-ath { display: none; }
.hourly-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin: 12px 0; }
.hourly-toolbar label { display: flex; align-items: center; gap: 8px; }
.hourly-toolbar select { width: auto; }
.hourly-toolbar > span, .hourly-note { color: var(--muted); font-size: 12px; }
.hourly-note { margin: 8px 0; }
.report-chart-tooltip span { display: flex; align-items: center; gap: 6px; }
.report-chart-tooltip em, .report-chart-tooltip small { color: var(--muted); font-style: normal; }
.tip-dot { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: var(--green); }
.tip-dot.ev { background: #65a6ff; }
.tip-dot.diff-positive { background: var(--green); }
.tip-dot.diff-negative { background: var(--red); }
.chart-card:fullscreen, .chart-card:-webkit-full-screen, .chart-card.is-chart-expanded { width: 100%; height: 100%; padding: clamp(14px, 2.5vw, 30px); overflow: auto; border: 0; border-radius: 0; background: var(--bg); }
.chart-card:fullscreen::backdrop, .chart-card:-webkit-full-screen::backdrop { background: var(--bg); }
.chart-card:fullscreen .chart-heading, .chart-card:-webkit-full-screen .chart-heading, .chart-card.is-chart-expanded .chart-heading { position: sticky; z-index: 6; top: 0; padding-bottom: 8px; background: linear-gradient(var(--bg) 75%, transparent); }
.chart-card:fullscreen .chart-host, .chart-card:-webkit-full-screen .chart-host, .chart-card.is-chart-expanded .chart-host { min-height: calc(100vh - 135px); }
.chart-card.is-chart-expanded { position: fixed; z-index: 100; inset: 0; }
body.chart-modal-open { overflow: hidden; }
.donut-total { fill: var(--text); font-size: 24px; font-weight: 850; }
.donut-caption, .chart-legend { fill: var(--muted); font-size: 10px; }
.outcomes-host { width: 100%; max-width: 760px; margin-inline: auto; }
.outcome-slice-label { fill: #e4e4e7; font-size: 12px; font-weight: 900; paint-order: stroke; stroke: rgba(0,0,0,.35); stroke-width: 2px; }
.outcome-legend-title { fill: var(--text); font-weight: 800; }
.outcome-chart-card:fullscreen .outcomes-host, .outcome-chart-card:-webkit-full-screen .outcomes-host, .outcome-chart-card.is-chart-expanded .outcomes-host { max-width: none; }
.chart-empty { min-height: 260px; margin: 0; display: grid; place-items: center; color: var(--muted); text-align: center; }
.report-table-wrap { overflow-x: auto; }
.report-table { width: 100%; min-width: 790px; border-collapse: collapse; }
.report-table th, .report-table td { padding: 13px 15px; text-align: right; border-bottom: 1px solid var(--line); white-space: nowrap; }
.report-table th { color: var(--muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.report-table th button { width: 100%; padding: 0 14px 0 0; position: relative; border: 0; color: inherit; background: transparent; font: inherit; letter-spacing: inherit; text-align: inherit; text-transform: inherit; white-space: nowrap; cursor: pointer; }
.report-table th button::after { content: '↕'; position: absolute; right: 0; opacity: .35; font-size: 11px; }
.report-table th[aria-sort="ascending"] button, .report-table th[aria-sort="descending"] button { color: var(--green); }
.report-table th[aria-sort="ascending"] button::after { content: '↑'; opacity: 1; }
.report-table th[aria-sort="descending"] button::after { content: '↓'; opacity: 1; }
.report-table th:first-child, .report-table td:first-child { text-align: left; }
.report-table tbody tr:last-child td { border-bottom: 0; }
[data-report-monthly] { margin-bottom: 24px; }
[data-report-yearly] { margin-bottom: 24px; }
[data-report-yearly] .report-table { min-width: 0; }
[data-report-yearly] .report-table th, [data-report-yearly] .report-table td { padding: 12px 7px; }
[data-report-yearly] .report-table th { white-space: normal; }
.yearly-average-note { margin: 10px 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
[data-report-monthly] .report-table { min-width: 0; }
[data-report-monthly] .report-table th, [data-report-monthly] .report-table td { padding: 12px 10px; }
[data-report-monthly] [data-month] { cursor: pointer; }
.monthly-venue-toggle { display: inline-flex; align-items: center; gap: 7px; padding: 0; border: 0; background: none; color: inherit; font: inherit; font-weight: 700; cursor: pointer; }
.monthly-venue-toggle::before { content: '›'; color: var(--green); transition: transform .15s; }
.monthly-venue-toggle[aria-expanded="true"]::before { transform: rotate(90deg); }
.monthly-venue-toggle:focus-visible { outline: 2px solid var(--green); outline-offset: 5px; }
.monthly-venues-row { background: rgba(255,255,255,.025); }
.monthly-venue-list { margin: 0; padding: 0 0 0 16px; list-style: none; }
.monthly-venue-list li { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 8px 0; }
.monthly-venue-list span { min-width: 0; white-space: normal; overflow-wrap: anywhere; color: var(--muted); }
.monthly-venue-list strong { flex-shrink: 0; }
.monthly-venues-empty { margin: 4px 0; color: var(--muted); white-space: normal; }
.venue-stake-section { margin-top: 18px; }
.venue-stake-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.stake-drilldown-card { min-width: 0; padding: 20px; }
.stake-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.stake-card-heading h3 { margin: 4px 0 3px; font-size: 17px; }
.stake-card-heading small { color: var(--muted); }
.stake-card-heading > strong { padding-top: 4px; font-size: 17px; white-space: nowrap; }
.stake-stat-grid { margin: 16px 0 10px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 1px solid var(--line); }
.stake-stat-grid div { min-width: 0; padding: 12px 8px; }
.stake-stat-grid div + div { border-left: 1px solid var(--line); }
.stake-stat-grid div:nth-child(4n + 1) { border-left: 0; }
.stake-stat-grid div:nth-child(n + 5) { border-top: 1px solid var(--line); }
.stake-stat-grid span, .stake-stat-grid strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stake-stat-grid span { color: var(--muted); font-size: 10px; }
.stake-stat-grid strong { margin-top: 4px; font-size: 14px; }
.stake-usd-line { display: flex; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 11px; }
.stake-usd-line strong { color: var(--text); text-align: right; }
.stake-chart-toolbar { margin-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.stake-currency-toolbar { margin-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 12px; }
.stake-currency-toolbar .stake-chart-switch button { min-height: 44px; min-width: 60px; }
.stake-chart-switch { padding: 3px; display: inline-grid; grid-template-columns: 1fr 1fr; border-radius: 10px; background: rgba(255,255,255,.04); }
.stake-chart-toolbar .stake-chart-switch { grid-template-columns: repeat(3, 1fr); }
.stake-chart-switch button { min-height: 36px; padding: 0 11px; border: 0; border-radius: 8px; color: var(--muted); background: transparent; font-size: 11px; font-weight: 800; cursor: pointer; }
.stake-chart-switch button.active { color: #0b0b0d; background: var(--green); }
.stake-chart-host { min-height: 300px; }
.stake-performance-legend.show-diff .legend-ev { display: none; }
.stake-drilldown-card:fullscreen .stake-stat-grid, .stake-drilldown-card:fullscreen .stake-usd-line, .stake-drilldown-card:-webkit-full-screen .stake-stat-grid, .stake-drilldown-card:-webkit-full-screen .stake-usd-line, .stake-drilldown-card.is-chart-expanded .stake-stat-grid, .stake-drilldown-card.is-chart-expanded .stake-usd-line { display: none; }
.stake-drilldown-card:fullscreen .stake-chart-host, .stake-drilldown-card:-webkit-full-screen .stake-chart-host, .stake-drilldown-card.is-chart-expanded .stake-chart-host { min-height: calc(100vh - 195px); }

/* Torneos: módulo separado de las sesiones de cash. */
.tournament-tabs { margin: -5px 0 18px; padding: 5px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.025); }
.tournament-tabs a { min-height: 42px; padding: 0 10px; display: grid; place-items: center; border-radius: 10px; color: var(--muted); font-size: 12px; font-weight: 800; text-align: center; }
.tournament-tabs a.active { color: #0a0a0b; background: var(--green); box-shadow: 0 8px 22px rgba(228,228,231,.16); }
.tournament-money-toolbar { margin: -6px 0 16px; padding: 10px 12px 10px 15px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.02); }
.tournament-money-toolbar > div { min-width: 0; display: grid; }
.tournament-money-toolbar strong { font-size: 12px; }
.tournament-money-toolbar span { color: var(--muted); font-size: 10px; }
.tournament-money-toolbar nav { flex: 0 0 auto; padding: 3px; display: grid; grid-template-columns: 1fr 1fr; border-radius: 10px; background: rgba(255,255,255,.045); }
.tournament-money-toolbar a { min-width: 74px; min-height: 34px; padding: 0 9px; display: grid; place-items: center; border-radius: 8px; color: var(--muted); font-size: 10px; font-weight: 850; }
.tournament-money-toolbar a.active { color: #0b0b0d; background: var(--green); }
.tournament-stats { margin-bottom: 16px; }
.tournament-metric-grid { margin-bottom: 16px; padding: 1px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.02); }
.tournament-metric-grid article { min-width: 0; min-height: 104px; padding: 16px 14px; display: flex; flex-direction: column; justify-content: center; border-left: 1px solid var(--line); }
.tournament-metric-grid article:first-child { border-left: 0; }
.tournament-metric-grid article:nth-child(4n + 1) { border-left: 0; }
.tournament-metric-grid article:nth-child(n + 5) { border-top: 1px solid var(--line); }
.tournament-metric-grid span, .tournament-metric-grid small, .tournament-metric-grid strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tournament-metric-grid span { color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; }
.tournament-metric-grid strong { margin: 6px 0 3px; font-size: clamp(16px, 2vw, 21px); letter-spacing: -.025em; }
.tournament-metric-grid small { color: var(--muted); font-size: 9px; }
.tournament-extremes { margin-bottom: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.tournament-extreme { min-width: 0; padding: 17px 19px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 18px; align-items: center; }
.tournament-extreme > span, .tournament-extreme > small { color: var(--muted); }
.tournament-extreme > span { grid-column: 1; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.tournament-extreme > strong, .tournament-extreme > small { grid-column: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tournament-extreme > strong { font-size: 16px; }
.tournament-extreme > small { font-size: 10px; }
.tournament-extreme > b { grid-column: 2; grid-row: 1 / span 3; font-size: 19px; white-space: nowrap; }
.tournament-extreme.best { border-color: rgba(228,228,231,.22); }
.tournament-extreme.worst { border-color: rgba(255,107,114,.2); }
.tournament-chart-grid { margin-bottom: 16px; }
.tournament-bars-host { min-height: 390px; }
.chart-series-legend .legend-net { color: #65a6ff; }
.tournament-country-card { margin-bottom: 16px; padding: 20px; }
.tournament-country-card .section-heading > div { min-width: 0; }
.tournament-country-card .section-heading h2 { margin-top: 3px; }
.tournament-country-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.tournament-country-grid article { min-width: 0; padding: 13px 14px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 12px; align-items: center; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.02); }
.tournament-country-grid article > div { min-width: 0; }
.tournament-country-grid article strong, .tournament-country-grid article small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tournament-country-grid article small, .tournament-country-grid article span, .tournament-country-grid article em { color: var(--muted); font-size: 9px; font-style: normal; }
.tournament-country-grid article > b { font-size: 15px; white-space: nowrap; }
.tournament-country-grid article > span { grid-column: 1 / -1; }
.tournament-country-grid article > em { grid-column: 1 / -1; color: #ffc86a; }
.tournament-list-card { margin-bottom: 16px; padding: 20px; }
.tournament-results-list { display: grid; gap: 7px; }
.tournament-result-row { min-width: 0; padding: 13px 4px; display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 13px; align-items: center; border-bottom: 1px solid var(--line); }
.tournament-result-row:last-child { border-bottom: 0; }
.tournament-result-row > div:nth-child(2) { min-width: 0; }
.tournament-result-row > div:nth-child(2) > strong, .tournament-result-row > div:nth-child(2) > span, .tournament-result-row > div:nth-child(2) > small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tournament-result-row > div:nth-child(2) > span, .tournament-result-row > div:nth-child(2) > small { color: var(--muted); font-size: 11px; }
.tournament-result-values { min-width: 0; text-align: right; }
.tournament-result-values strong, .tournament-result-values small { display: block; white-space: nowrap; }
.tournament-result-values strong { font-size: 16px; }
.tournament-result-values small { color: var(--muted); font-size: 9px; }
.classified-text { color: #ffc86a !important; }
.date-chip { width: 46px; height: 50px; display: grid; place-items: center; align-content: center; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.025); }
.date-chip strong { font-size: 18px; line-height: 1; }
.date-chip span { margin-top: 3px; color: var(--muted); font-size: 9px; font-weight: 850; }
.tournament-setup-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.compact-grid { gap: 12px; }
.tournament-live { padding: clamp(18px, 4vw, 34px); }
.tournament-live-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.tournament-live-heading h2 { margin: 2px 0 3px; font-size: clamp(23px, 4vw, 36px); }
.tournament-live-heading > div > span { color: var(--muted); font-size: 12px; }
.live-status-dot { padding: 7px 10px; border: 1px solid rgba(228,228,231,.24); border-radius: 999px; color: var(--green); background: rgba(228,228,231,.07); font-size: 10px; font-weight: 850; white-space: nowrap; }
.tournament-clock { margin: clamp(30px, 7vw, 60px) 0 26px; font-size: clamp(52px, 11vw, 108px); font-weight: 850; letter-spacing: -.07em; line-height: .92; text-align: center; font-variant-numeric: tabular-nums; }
.tournament-live-kpis { margin: 0 auto 18px; max-width: 760px; display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid var(--line); }
.tournament-live-kpis div { min-width: 0; padding: 14px 10px; text-align: center; }
.tournament-live-kpis div + div { border-left: 1px solid var(--line); }
.tournament-live-kpis span, .tournament-live-kpis strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tournament-live-kpis span { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.tournament-live-kpis strong { margin-top: 5px; font-size: 16px; }
.tournament-clock-actions { margin-bottom: 18px; display: flex; justify-content: center; }
.tournament-clock-actions .button { min-width: 180px; }
.tournament-quick-grid { display: grid; grid-template-columns: 1.15fr .85fr .85fr; gap: 12px; }
.quick-tournament-card { padding: 16px; display: grid; align-content: start; gap: 10px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.025); }
.quick-tournament-card > strong { margin-bottom: 2px; font-size: 13px; }
.quick-tournament-card.expense-card { border-color: rgba(255,107,114,.23); }
.quick-tournament-card.reentry-card { border-color: rgba(255,192,89,.25); }
.button.warm { color: #231605; background: #ffc059; border-color: #ffc059; }
.tournament-finish-panel { margin-top: 18px; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.tournament-finish-panel summary { padding: 16px; color: var(--text); font-weight: 800; cursor: pointer; }
.tournament-finish-panel form { padding: 0 16px 16px; }
.tournament-advance-help { margin: -2px 0 0; padding: 11px 13px; border: 1px solid rgba(255,200,106,.22); border-radius: 11px; color: #ffe2ad; background: rgba(255,200,106,.07); font-size: 11px; }
.checkbox-label { min-height: 45px; display: flex !important; flex-direction: row !important; align-items: center; gap: 9px; }
.checkbox-label input { width: 18px; height: 18px; }
.tournament-cancel { margin-top: 13px; text-align: center; }
.danger-text { color: var(--red) !important; }
.stack-timeline { display: grid; }
.stack-timeline article { padding: 11px 0; border-bottom: 1px solid var(--line); }
.stack-timeline article:last-child { border-bottom: 0; }
.stack-timeline-row { display: grid; grid-template-columns: 52px 100px minmax(0,1fr) auto; gap: 12px; align-items: center; }
.stack-timeline time, .stack-timeline span { color: var(--muted); font-size: 11px; }
.stack-timeline strong { font-variant-numeric: tabular-nums; }
.stack-edit summary { color: var(--accent); cursor: pointer; font-size: 11px; font-weight: 800; list-style: none; }
.stack-edit summary::-webkit-details-marker { display: none; }
.stack-edit[open] { grid-column: 1 / -1; width: 100%; }
.stack-edit[open] summary { margin: 6px 0 10px; text-align: right; }
.stack-edit-form { padding: 12px; display: grid; grid-template-columns: 1fr 1fr 1.4fr auto; gap: 9px; align-items: end; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.025); }
.stack-edit-form label { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.stack-edit-form input { margin-top: 5px; }
.stack-edit-form .button { min-height: 42px; }
.tournament-stack-history { margin-top: 16px; padding: 20px; }
.tournament-stack-chart { min-height: 285px; margin-bottom: 8px; }
.tournament-continuations { margin-bottom: 16px; display: grid; gap: 12px; }
.tournament-continuation-card { padding: clamp(18px, 4vw, 28px); display: grid; grid-template-columns: minmax(0, .8fr) minmax(320px, 1.2fr); gap: 24px; align-items: center; border-color: rgba(255,200,106,.28); background: linear-gradient(145deg, rgba(65,47,16,.55), rgba(15,15,16,.96)); }
.tournament-continuation-card h2 { margin: 4px 0 3px; font-size: 24px; }
.tournament-continuation-card > div > span, .tournament-continuation-card > div > strong { display: block; }
.tournament-continuation-card > div > span { color: var(--muted); font-size: 11px; }
.tournament-continuation-card > div > strong { margin-top: 15px; color: #ffc86a; font-size: 19px; }
.tournament-start-card { padding-bottom: 26px; overflow: hidden; }
.tournament-start-form { padding: 0 clamp(16px, 4vw, 34px); }
.tournament-create-hint { margin: 18px 20px 0; text-align: center; }
.tournament-create-hint a { color: var(--green); }
.series-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.series-card { padding: 23px; }
.series-card h2 { margin: 3px 0 16px; font-size: 22px; }
.series-result { margin-bottom: 18px; font-size: 31px; font-weight: 850; }
.series-kpis { margin-bottom: 14px; display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--line); }
.series-kpis span { padding: 12px 7px; color: var(--muted); font-size: 10px; text-align: center; }
.series-kpis span + span { border-left: 1px solid var(--line); }
.series-kpis b { margin-bottom: 3px; display: block; color: var(--text); font-size: 15px; }
.series-card > small { color: var(--muted); line-height: 1.6; }
.tournament-session-table td:nth-child(2) strong, .tournament-session-table td:nth-child(2) small { display: block; text-align: left; }
.tournament-session-table td:nth-child(2) small { margin-top: 2px; color: var(--muted); }

.login-body { display: grid; place-items: center; padding: 22px; }
.login-card { width: min(420px, 100%); padding: 38px; border: 1px solid var(--line); border-radius: 24px; background: rgba(15,15,16,.92); box-shadow: var(--shadow); }
.login-card .brand-mark { margin-bottom: 26px; }

@media (max-width: 820px) {
    body { background-position: 70% 0; }
    .app-shell { display: block; }
    .sidebar { display: none; }
    .content { padding: max(24px, env(safe-area-inset-top)) 16px calc(102px + env(safe-area-inset-bottom)); }
    .page-header { align-items: center; margin-bottom: 22px; }
    .page-header h1 { font-size: 31px; }
    .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .stat-card { min-height: 118px; padding: 16px; }
    .session-row { grid-template-columns: 42px minmax(0, 1fr) auto; gap: 10px; padding: 11px; }
    .delete-form { grid-column: 3; }
    .delete-form button { width: 28px; height: 28px; }
    .settings-grid { grid-template-columns: 1fr; }
    .report-chart-grid { grid-template-columns: 1fr; }
    .venue-stake-grid { grid-template-columns: 1fr; }
    .tournament-setup-grid, .series-grid { grid-template-columns: 1fr; }
    .tournament-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tournament-metric-grid article:nth-child(n) { border-left: 1px solid var(--line); }
    .tournament-metric-grid article:nth-child(2n + 1) { border-left: 0; }
    .tournament-metric-grid article:nth-child(n + 3) { border-top: 1px solid var(--line); }
    .tournament-extremes { grid-template-columns: 1fr; }
    .tournament-country-grid { grid-template-columns: 1fr; }
    .tournament-continuation-card { grid-template-columns: 1fr; }
    .tournament-quick-grid { grid-template-columns: 1fr 1fr; }
    .quick-tournament-card.stack-card { grid-column: 1 / -1; }
    .mobile-nav { position: fixed; z-index: 20; left: 10px; right: 10px; bottom: max(10px, env(safe-area-inset-bottom)); min-height: 68px; padding: 7px 7px; display: grid; grid-template-columns: repeat(7, 1fr); align-items: end; border: 1px solid var(--line); border-radius: 20px; background: rgba(11,11,13,.94); backdrop-filter: blur(20px); box-shadow: 0 18px 50px rgba(0,0,0,.5); }
    .mobile-nav a { color: var(--muted); display: grid; place-items: center; gap: 2px; font-size: 10px; font-weight: 700; }
    .mobile-nav a span { font-size: 22px; line-height: 1; }
    .mobile-nav a.active { color: var(--green); }
    .mobile-nav .new-button span { width: 42px; height: 42px; margin-top: -18px; border-radius: 14px; display: grid; place-items: center; background: var(--green); color: #0a0a0b; box-shadow: 0 8px 25px rgba(228,228,231,.28); }
}

@media (max-width: 520px) {
    .form-grid { grid-template-columns: 1fr 1fr; gap: 13px 10px; }
    .form-grid label.span-2, .form-grid .button.span-2 { grid-column: span 2; }
    .stats-grid { gap: 9px; }
    .recent-days-row { padding-inline: 9px; grid-template-columns: .8fr .7fr 1.18fr .78fr 1fr; gap: 5px; font-size: 11px; }
    .recent-days-head { font-size: 8px; letter-spacing: .02em; }
    .stat-card strong { font-size: 22px; }
    .page-header .button.compact { font-size: 0; width: 42px; padding: 0; }
    .page-header .button.compact::after { content: '+'; font-size: 22px; }
    .session-result { font-size: 16px; }
    .login-card { padding: 28px 23px; }
    .live-panel { padding: 22px 14px; }
    .live-stealth .content { padding-inline: 9px; }
    .live-stealth .live-panel.card { padding: 9px 6px; }
    .live-stealth .live-timer { margin-top: 0; }
    .live-start-form { padding: 0 16px 22px; }
    .quick-add-grid { grid-template-columns: 1fr; }
    .quote-strip { margin: 0 16px 18px; }
    .trip-context { grid-template-columns: 1fr; }
    .trip-context small { grid-column: 1; grid-row: auto; }
    .trip-check-list { grid-template-columns: 1fr; }
    .live-kpis strong { font-size: 17px; }
    .objective-editor-form { grid-template-columns: 1fr 1fr; }
    .objective-editor-form .button { grid-column: span 2; }
    .resume-correction-form { grid-template-columns: 1fr; }
    .resume-correction-form .button { width: 100%; }
    .live-total-form { grid-template-columns: 1fr 1fr; }
    .live-total-form .button { grid-column: 1 / -1; }
    .report-presets { grid-template-columns: 1fr 1fr; }
    .venue-report-picker form { grid-template-columns: 1fr 1fr; }
    .venue-report-picker label { grid-column: 1 / -1; }
    .venue-report-title { align-items: flex-start; flex-direction: column; }
    .venue-report-title > span { text-align: left; }
    .stake-drilldown-card { padding: 16px 10px; }
    .stake-card-heading, .stake-usd-line, .stake-chart-toolbar { padding-inline: 6px; }
    .stake-card-heading { align-items: flex-start; flex-direction: column; }
    .stake-card-heading > strong { padding-top: 0; }
    .stake-stat-grid { grid-template-columns: 1fr 1fr; }
    .stake-stat-grid div:nth-child(odd) { border-left: 0; }
    .stake-stat-grid div:nth-child(even) { border-left: 1px solid var(--line); }
    .stake-stat-grid div:nth-child(n + 3) { border-top: 1px solid var(--line); }
    .stake-chart-toolbar { align-items: stretch; }
    .stake-chart-switch { flex: 1; }
    .report-filters { grid-template-columns: 1fr 1fr; }
    .report-filters .button { grid-column: span 2; }
    .region-create-form, .country-region-list { grid-template-columns: 1fr; }
    .chart-card { padding: 16px 10px; }
    .chart-heading { padding-inline: 6px; }
    .chart-heading-actions > span { display: none; }
    .chart-fullscreen-button { min-width: 44px; min-height: 44px; padding: 0 10px; }
    .chart-fullscreen-button span { display: none; }
    .chart-series-legend { padding-inline: 6px; gap: 5px 11px; }
    .performance-host { min-height: 385px; }
    .mobile-nav a { font-size: 9px; }
    .tournament-result-row { grid-template-columns: 43px minmax(0,1fr) auto; gap: 9px; }
    .tournament-money-toolbar { align-items: stretch; flex-direction: column; }
    .tournament-money-toolbar nav { width: 100%; }
    .tournament-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tournament-stats .stat-card { min-height: 122px; padding: 15px; }
    .tournament-stats .stat-card strong { font-size: clamp(19px, 6vw, 25px); }
    .tournament-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tournament-metric-grid article { min-height: 92px; padding: 13px 12px; }
    .tournament-metric-grid article:nth-child(n) { border-left: 1px solid var(--line); }
    .tournament-metric-grid article:nth-child(2n + 1) { border-left: 0; }
    .tournament-metric-grid article:nth-child(n + 3) { border-top: 1px solid var(--line); }
    .tournament-extreme { padding: 15px; gap: 2px 10px; }
    .tournament-extreme > b { font-size: 15px; }
    .tournament-result-values strong { font-size: 13px; }
    .tournament-live-heading { gap: 8px; }
    .tournament-live-heading h2 { font-size: 24px; }
    .live-status-dot { padding: 6px 8px; font-size: 8px; }
    .tournament-clock { margin-block: 34px 24px; font-size: clamp(52px, 17vw, 76px); }
    .tournament-live { padding-inline: 12px; }
    .tournament-stack-history { padding: 16px 10px; }
    .tournament-stack-history .section-heading { padding-inline: 6px; }
    .tournament-live-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tournament-live-kpis div:nth-child(3) { border-left: 0; }
    .tournament-live-kpis div:nth-child(n + 3) { border-top: 1px solid var(--line); }
    .tournament-live-kpis strong { font-size: 13px; }
    .stack-timeline-row { grid-template-columns: 46px 82px minmax(0,1fr) auto; gap: 7px; }
    .stack-edit-form { grid-template-columns: 1fr 1fr; }
    .stack-edit-notes, .stack-edit-form .button { grid-column: 1 / -1; }
}

@media (max-width: 410px) {
    .mobile-nav a { font-size: 0; }
    .mobile-nav a span { font-size: 21px; }
    .tournament-tabs a { padding-inline: 5px; font-size: 10px; }
    .tournament-quick-grid { grid-template-columns: 1fr; }
    .quick-tournament-card.stack-card { grid-column: auto; }
}

@media (hover: none) and (pointer: coarse) {
    body { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
    input, textarea, [contenteditable="true"] { -webkit-user-select: text; user-select: text; -webkit-touch-callout: default; }
}

@media (max-height: 520px) and (orientation: landscape) {
    .chart-card:fullscreen, .chart-card:-webkit-full-screen, .chart-card.is-chart-expanded { padding: 9px 14px; }
    .chart-card:fullscreen .chart-heading, .chart-card:-webkit-full-screen .chart-heading, .chart-card.is-chart-expanded .chart-heading { margin-bottom: 2px; padding-bottom: 4px; }
    .chart-card:fullscreen .chart-heading h2, .chart-card:-webkit-full-screen .chart-heading h2, .chart-card.is-chart-expanded .chart-heading h2 { margin-top: 0; font-size: 16px; }
    .chart-card:fullscreen .eyebrow, .chart-card:-webkit-full-screen .eyebrow, .chart-card.is-chart-expanded .eyebrow { display: none; }
    .chart-card:fullscreen .chart-series-legend, .chart-card:-webkit-full-screen .chart-series-legend, .chart-card.is-chart-expanded .chart-series-legend { margin: 0 0 2px; }
    .chart-card:fullscreen .chart-host, .chart-card:-webkit-full-screen .chart-host, .chart-card.is-chart-expanded .chart-host { min-height: calc(100vh - 78px); }
}

/* ── Reloj live · estilo 2026-09 (solo visual, sin cambios de funcionamiento) ── */
/* Fondo negro con foco plateado arriba, monograma de picas tenue y grano, al estilo /club/ */
.live-stealth-root { background: radial-gradient(ellipse 70% 42% at 50% -6%, rgba(210, 215, 225, .13), transparent 70%), radial-gradient(ellipse 60% 35% at 50% 106%, rgba(160, 165, 175, .07), transparent 70%), radial-gradient(ellipse 120% 95% at 50% 42%, #0d0d0e 0%, #050505 55%, #000 100%); }
.live-stealth { --lx-text: #f4f4f5; --lx-soft: #a1a1aa; --lx-dim: #5f5f66; --lx-silver: linear-gradient(145deg, #ffffff, #828282 45%, #e3e3e3 70%, #4d4d4d); background: transparent; color: var(--lx-text); -webkit-font-smoothing: antialiased; }
.live-stealth::before { content: ''; position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: .045; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='%23ffffff'%3E%3Cpath transform='translate(2 2) scale(.55)' d='M16 6c-3.2 4.4-8.6 7-8.6 11.4a4.3 4.3 0 0 0 7 3.4L13 26h6l-1.4-5.2a4.3 4.3 0 0 0 7-3.4C24.6 13 19.2 10.4 16 6z'/%3E%3Cpath transform='translate(38 38) scale(.55)' d='M16 6c-3.2 4.4-8.6 7-8.6 11.4a4.3 4.3 0 0 0 7 3.4L13 26h6l-1.4-5.2a4.3 4.3 0 0 0 7-3.4C24.6 13 19.2 10.4 16 6z'/%3E%3C/g%3E%3C/svg%3E"); background-size: 72px 72px; -webkit-mask-image: radial-gradient(ellipse 75% 55% at 50% 38%, #000 0%, transparent 85%); mask-image: radial-gradient(ellipse 75% 55% at 50% 38%, #000 0%, transparent 85%); }
.live-stealth::after { content: ''; position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: .06; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); background-size: 180px 180px; }
.live-stealth .app-shell { position: relative; z-index: 1; background: transparent; }

.live-stealth .live-panel.card { animation: lx-rise .7s cubic-bezier(.2,.8,.2,1) backwards; }
@keyframes lx-rise { from { opacity: 0; transform: translateY(14px); } }

/* Contador plateado */
.live-stealth .live-timer { position: relative; font-weight: 640; letter-spacing: -.06em; color: var(--lx-text); filter: drop-shadow(0 0 28px rgba(255,255,255,.07)); }
.live-stealth .live-timer .counter-digit, .live-stealth .live-timer .counter-symbol { color: transparent; background: linear-gradient(180deg, #ffffff 0%, #e9e9ec 45%, #9c9ca4 100%); -webkit-background-clip: text; background-clip: text; }
.live-stealth .live-timer .counter-symbol { opacity: .55; }
.live-stealth .live-timer.is-ticking { animation: lx-glow 4.5s ease-in-out infinite; }
@keyframes lx-glow { 0%, 100% { filter: drop-shadow(0 0 22px rgba(255,255,255,.05)); } 50% { filter: drop-shadow(0 0 34px rgba(255,255,255,.14)); } }
.live-stealth .live-timer::after { content: ''; position: absolute; left: 50%; bottom: -14px; width: 46%; height: 1px; transform: translateX(-50%); background: linear-gradient(90deg, transparent, rgba(255,255,255,.3), transparent); opacity: .6; }

/* Selector de modo: texto limpio, sin caja */
.live-stealth .timer-mode-toggle { min-height: 40px; margin: 26px auto 30px; padding: 0 14px; border: 0; border-radius: 999px; color: #8b8b93; background: transparent; box-shadow: none; font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; transition: color .2s ease; }
.live-stealth .timer-mode-toggle::after { content: ''; display: inline-block; width: 5px; height: 5px; margin-left: 9px; vertical-align: 2px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-45deg); opacity: .7; }
.live-stealth .timer-mode-toggle:active { color: #fff; }

/* Botón principal: negro profundo con borde plateado, como el botón de /club/ */
.live-stealth .live-actions .button { position: relative; overflow: hidden; min-height: 56px; border: 1px solid transparent; border-radius: 14px; color: #fff; background: linear-gradient(180deg, #1c1c1d 0%, #0a0a0a 55%, #000 100%) padding-box, linear-gradient(145deg, rgba(255,255,255,.55), rgba(130,130,130,.22) 45%, rgba(227,227,227,.4) 70%, rgba(77,77,77,.25)) border-box; box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 14px 32px rgba(0,0,0,.6); font-size: 15px; font-weight: 650; letter-spacing: .01em; transition: transform .2s ease, box-shadow .2s ease; }
.live-stealth .live-actions .button::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.12) 50%, transparent 65%); transform: translateX(-120%); transition: transform .7s ease; pointer-events: none; }
.live-stealth .live-actions .button:active { transform: scale(.985); }
.live-stealth .live-actions .button:active::after { transform: translateX(120%); }
.live-stealth .live-actions .button.resume, .live-stealth .live-actions .finish-toggle { color: #0a0a0a; background: linear-gradient(180deg, #ffffff 0%, #e4e4e7 55%, #c7c7cc 100%) padding-box, var(--lx-silver) border-box; box-shadow: inset 0 1px 0 #fff, 0 14px 32px rgba(0,0,0,.6), 0 0 26px rgba(255,255,255,.10); }
.live-stealth .live-actions .icon-pause { width: 10px; height: 13px; border-radius: 1px; }

/* Pausa */
.live-stealth .live-pause-tools { margin: -12px auto 18px; }
.live-stealth .live-pause-summary { color: var(--lx-dim); letter-spacing: .02em; }
.live-stealth .live-pause-summary strong { color: #e4e4e7; }

/* Top up / Gasto: filas negras con borde fino y botón redondo plateado */
.live-stealth .quick-add-grid { gap: 10px; }
.live-stealth .quick-add { min-height: 60px; padding: 4px 8px 4px 16px; border: 1px solid rgba(255,255,255,.09); border-radius: 14px; background: linear-gradient(180deg, #0e0e0f, #060606); box-shadow: inset 0 1px 0 rgba(255,255,255,.04); transition: border-color .2s ease, box-shadow .25s ease; }
.live-stealth .quick-add:focus-within { border-color: rgba(255,255,255,.3); box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 0 0 3px rgba(255,255,255,.05); }
.live-stealth .quick-add-field { grid-template-columns: 70px minmax(0, 1fr); gap: 12px; }
.live-stealth .quick-add-field > span { color: #d4d4d8; font-size: 12px; font-weight: 600; }
.live-stealth .quick-add-field small { color: var(--lx-dim); font-size: 9px; font-weight: 600; letter-spacing: .14em; }
.live-stealth .quick-add input { font-weight: 500; font-variant-numeric: tabular-nums; background-color: transparent; border-radius: 0; }
.live-stealth .quick-add input::placeholder { color: #55555c; }
.live-stealth .quick-add button { width: 40px; height: 40px; border: 1px solid transparent; border-radius: 50%; color: #e4e4e7; background: radial-gradient(circle at 50% 30%, #262628, #070707 75%) padding-box, linear-gradient(145deg, rgba(255,255,255,.6), rgba(130,130,130,.25) 45%, rgba(227,227,227,.45) 70%, rgba(77,77,77,.3)) border-box; box-shadow: 0 6px 16px rgba(0,0,0,.5); font-size: 20px; font-weight: 300; transition: transform .15s ease, color .2s ease; }
.live-stealth .quick-add button:active { transform: scale(.9); color: #fff; }
.live-stealth .quick-add:focus-within button { color: #0a0a0a; background: radial-gradient(circle at 50% 30%, #fff, #cfcfd4 80%) padding-box, var(--lx-silver) border-box; }

/* Ajustes desplegables */
.live-stealth :is(.live-total-editor, .objective-editor, .live-details) > summary { border-bottom-color: rgba(255,255,255,.06); color: var(--lx-soft); }
.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid) { border-color: rgba(255,255,255,.09); border-radius: 14px; background: linear-gradient(180deg, #0e0e0f, #060606); }
.live-stealth details[open] > :not(summary) { animation: lx-rise .35s cubic-bezier(.2,.8,.2,1) backwards; }

/* Manija inferior y avisos */
.live-controls-handle { background: transparent; }
.live-controls-handle > span { width: 36px; height: 4px; border-radius: 4px; background: rgba(255,255,255,.14); }
.live-controls-handle[aria-expanded="true"] > span { width: 52px; background: rgba(255,255,255,.4); }
.live-stealth .live-feedback { border-color: rgba(255,255,255,.14); border-radius: 14px; background: rgba(12,12,13,.92); box-shadow: 0 16px 40px -12px rgba(0,0,0,.9); }

@media (hover: hover) {
    .live-stealth :is(button, summary):hover { filter: none; }
    .live-stealth .timer-mode-toggle:hover { color: #fff; }
    .live-stealth .live-actions .button:hover { transform: translateY(-1px); box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 14px 32px rgba(0,0,0,.6), 0 0 0 3px rgba(255,255,255,.05); }
    .live-stealth .live-actions .button:hover::after { transform: translateX(120%); }
}
@media (prefers-reduced-motion: reduce) {
    .live-stealth .live-panel.card, .live-stealth .live-timer.is-ticking, .live-stealth details[open] > :not(summary) { animation: none; }
    .live-stealth .live-actions .button::after { transition: none; }
}
/* Botón de pausa: círculo con aro plateado que gira mientras corre el reloj */
.live-stealth .live-actions .button.pause, .live-stealth .live-actions .button.resume { width: 76px; min-height: 76px; height: 76px; padding: 0; gap: 0; border: 0; border-radius: 50%; font-size: 0; overflow: visible; background: radial-gradient(circle at 50% 30%, #1f1f21, #030303 72%); box-shadow: 0 14px 32px rgba(0,0,0,.65); isolation: isolate; }
.live-stealth .live-actions .button.pause::before, .live-stealth .live-actions .button.resume::before { content: ''; position: absolute; inset: -2px; z-index: -1; border-radius: 50%; background: conic-gradient(from 0deg, rgba(255,255,255,.95), rgba(255,255,255,.08) 25%, rgba(160,160,170,.5) 50%, rgba(255,255,255,.06) 75%, rgba(255,255,255,.95)); -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1px)); mask: radial-gradient(farthest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1px)); animation: lx-spin 6s linear infinite; }
.live-stealth .live-actions .button.resume::before { animation: none; opacity: .55; }
.live-stealth .live-actions .button.pause::after, .live-stealth .live-actions .button.resume::after { display: none; }
.live-stealth .live-actions .icon-pause { width: 14px; height: 18px; border-inline-width: 4px; }
.live-stealth .live-actions .icon-play { border-block-width: 9px; border-left-width: 15px; margin-left: 4px; }
@keyframes lx-spin { to { transform: rotate(1turn); } }
@media (prefers-reduced-motion: reduce) { .live-stealth .live-actions .button.pause::before { animation: none; } }

/* En pausa: el fondo late entre negro y gris oscuro para que se note */
.live-stealth .app-shell::before { content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: 0; background: radial-gradient(ellipse 90% 70% at 50% 42%, #3a3a3f 0%, #1c1c1e 55%, #0b0b0b 100%); transition: opacity .4s ease; }
.live-stealth:has(.live-actions .button.resume) .app-shell::before { animation: lx-paused 2.4s ease-in-out infinite; }
@keyframes lx-paused { 0%, 100% { opacity: 0; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .live-stealth:has(.live-actions .button.resume) .app-shell::before { animation: none; opacity: .7; } }

/* Pausa: círculo de reanudar + "Finalizar" compacto al lado */
.live-stealth .live-actions { align-items: center; gap: 14px; }
.live-stealth .live-actions .button.pause, .live-stealth .live-actions .button.resume { flex: 0 0 76px; color: #f4f4f5; }
.live-stealth .live-actions .finish-toggle { flex: 0 0 auto; width: auto; min-height: 46px; padding: 0 24px; border-radius: 999px; font-size: 13px; letter-spacing: .04em; }

/* Ajustes (editar importes, objetivo, datos de la sesión): etiquetas y campos modernos */
.live-stealth :is(.live-total-editor, .objective-editor, .live-details) > summary { min-height: 56px; padding: 0 2px; color: #e4e4e7; font-size: 14px; font-weight: 600; letter-spacing: .005em; border-bottom: 1px solid transparent; border-image: linear-gradient(90deg, transparent, rgba(255,255,255,.12) 20%, rgba(255,255,255,.12) 80%, transparent) 1; }
.live-stealth details > summary::after { width: 6px; height: 6px; margin-right: 11px; border-color: #a1a1aa; }
.live-stealth details:not([open]) > summary { color: #a1a1aa; }

.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid) { margin: 14px 0 18px; padding: 18px; gap: 18px 12px; border: 1px solid transparent; border-radius: 20px; background: linear-gradient(180deg, #0f0f10, #070707) padding-box, linear-gradient(160deg, rgba(255,255,255,.18), rgba(255,255,255,.04) 40%, rgba(255,255,255,.02) 70%, rgba(255,255,255,.10)) border-box; box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 18px 40px -18px rgba(0,0,0,.9); }

.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid, .finish-form) label { gap: 9px; color: #8b8b93; font-size: 10.5px; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; }
.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid, .finish-form) label small { color: #5f5f66; font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }

.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid, .finish-form) :is(input, select, textarea) { min-height: 52px; padding: 13px 15px; border: 1px solid rgba(255,255,255,.09); border-radius: 14px; color: #f4f4f5; background-color: #0b0b0c; background-image: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,0)); box-shadow: inset 0 1px 0 rgba(255,255,255,.04); font-size: 17px; font-weight: 600; letter-spacing: normal; text-transform: none; font-variant-numeric: tabular-nums; transition: border-color .2s ease, box-shadow .2s ease; }
.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid, .finish-form) select { padding-right: 38px; }
.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid, .finish-form) :is(input, textarea)::placeholder { color: #4d4d53; font-weight: 500; }
.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid, .finish-form) :is(input, select, textarea):focus { border-color: rgba(255,255,255,.32); box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 0 0 4px rgba(255,255,255,.05); }
.live-stealth .live-total-field :is(input, textarea) { min-height: 58px; font-size: 19px; }

.live-stealth .live-total-hint { color: #5f5f66; font-size: 11px; letter-spacing: .02em; }
.live-stealth .expense-expression-total { color: #5f5f66; font-size: 10.5px; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; }
.live-stealth .expense-expression-total strong { color: transparent; background: linear-gradient(180deg, #ffffff, #a1a1aa); -webkit-background-clip: text; background-clip: text; font-size: 14px; font-weight: 700; letter-spacing: normal; text-transform: none; }

/* Botones de guardar / aplicar: negro con borde plateado */
.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid) .button.secondary { position: relative; overflow: hidden; min-height: 52px; border: 1px solid transparent; border-radius: 14px; color: #fff; background: linear-gradient(180deg, #1c1c1d 0%, #0a0a0a 55%, #000 100%) padding-box, linear-gradient(145deg, rgba(255,255,255,.5), rgba(130,130,130,.2) 45%, rgba(227,227,227,.38) 70%, rgba(77,77,77,.22)) border-box; box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 12px 28px rgba(0,0,0,.55); font-size: 14px; font-weight: 650; letter-spacing: .02em; transition: transform .15s ease; }
.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid) .button.secondary:active { transform: scale(.985); }

/* Reiniciar / Eliminar: pastillas chicas */
.live-stealth .session-management { gap: 10px; margin-top: 22px; }
.live-stealth .session-management .text-button { min-height: 38px; padding: 0 16px; border: 1px solid rgba(255,255,255,.08); border-radius: 999px; color: #a1a1aa; background: rgba(255,255,255,.02); font-size: 10.5px; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; }
.live-stealth .session-management .danger-text { border-color: rgba(214,130,130,.22); color: #d49a9a !important; background: rgba(214,130,130,.04); }

/* Texto de etiquetas y títulos con brillo plateado (no plano) */
.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid, .finish-form) label,
.live-stealth .expense-expression-total > span { color: transparent; background: linear-gradient(90deg, #f4f4f5 0%, #b9b9c0 45%, #6e6e76 100%); -webkit-background-clip: text; background-clip: text; font-weight: 700; letter-spacing: .16em; }
.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid, .finish-form) label :is(input, select, textarea) { -webkit-text-fill-color: #f4f4f5; }
.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid, .finish-form) label :is(input, textarea)::placeholder { -webkit-text-fill-color: #4d4d53; }
.live-stealth :is(.live-total-form, .objective-editor-form, .resume-correction-form, .live-details .form-grid, .finish-form) label small { -webkit-text-fill-color: #5f5f66; }

.live-stealth :is(.live-total-editor, .objective-editor, .live-details) > summary { color: transparent; background: linear-gradient(180deg, #ffffff 0%, #d4d4d8 55%, #9c9ca4 100%); -webkit-background-clip: text; background-clip: text; font-weight: 650; letter-spacing: .01em; }
.live-stealth details:not([open]) > summary { background: linear-gradient(180deg, #c4c4ca 0%, #8b8b93 100%); -webkit-background-clip: text; background-clip: text; }
.live-stealth details > summary::after { border-color: #a1a1aa; }

.live-stealth .quick-add-field > span { color: transparent; background: linear-gradient(180deg, #ffffff 0%, #d4d4d8 55%, #9c9ca4 100%); -webkit-background-clip: text; background-clip: text; font-size: 13px; font-weight: 650; letter-spacing: .01em; }
.live-stealth .quick-add-field small { -webkit-text-fill-color: #6e6e76; letter-spacing: .18em; }

.live-stealth .timer-mode-toggle { color: transparent; background: linear-gradient(90deg, #e4e4e7, #8b8b93); -webkit-background-clip: text; background-clip: text; }
.live-stealth .timer-mode-toggle::after { border-color: #8b8b93; }

.live-stealth .live-pause-summary span, .live-stealth .live-pause-summary small { letter-spacing: .06em; }

/* ── Panel · Noir 2026-09-28 v2 (solo visual): negro profundo, plata fina, jade para lo positivo ── */
:root {
    --bg: #040404;
    --surface: #0c0c0d;
    --surface-2: #131315;
    --line: rgba(255, 255, 255, .07);
    --text: #f2f2f3;
    --muted: #8a8a93;
    --green: #e6e6e9;
    --green-dark: #161618;
    --red: #f07a83;
    --shadow: 0 30px 60px -32px rgba(0, 0, 0, .95);
    --nx-pos: #5fdca5;
    --nx-neg: #f07a83;
    --nx-pos-text: linear-gradient(180deg, #d9fbe9 0%, #7fe6b6 48%, #3cc488 100%);
    --nx-neg-text: linear-gradient(180deg, #ffe0e2 0%, #f7959c 50%, #e0606b 100%);
    --nx-silver-text: linear-gradient(180deg, #ffffff 0%, #ececef 42%, #a3a3ab 100%);
    --nx-ring: linear-gradient(145deg, rgba(255,255,255,.5), rgba(140,140,150,.14) 42%, rgba(230,230,235,.3) 70%, rgba(90,90,98,.18));
    --nx-edge: linear-gradient(165deg, rgba(255,255,255,.13), rgba(255,255,255,.035) 36%, rgba(255,255,255,.015) 70%, rgba(255,255,255,.07));
    --nx-card: radial-gradient(130% 85% at 0% 0%, rgba(255,255,255,.04), transparent 55%), linear-gradient(180deg, #0e0e10 0%, #09090a 55%, #070708 100%);
    --nx-display: "SF Pro Display", -apple-system, "Segoe UI Variable Display", "Segoe UI", Inter, system-ui, sans-serif;
}
html:not(.live-stealth-root) { background: #000; }
body:not(.live-stealth) { background: radial-gradient(ellipse 60% 34% at 72% -6%, rgba(215, 220, 232, .085), transparent 72%), radial-gradient(ellipse 45% 30% at 8% 104%, rgba(95, 220, 165, .035), transparent 70%), radial-gradient(ellipse 130% 95% at 50% 25%, #0b0b0c 0%, #050505 55%, #000 100%) fixed; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", Inter, system-ui, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body:not(.live-stealth)::before { content: ''; position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: .028; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='%23ffffff'%3E%3Cpath transform='translate(2 2) scale(.55)' d='M16 6c-3.2 4.4-8.6 7-8.6 11.4a4.3 4.3 0 0 0 7 3.4L13 26h6l-1.4-5.2a4.3 4.3 0 0 0 7-3.4C24.6 13 19.2 10.4 16 6z'/%3E%3Cpath transform='translate(38 38) scale(.55)' d='M16 6c-3.2 4.4-8.6 7-8.6 11.4a4.3 4.3 0 0 0 7 3.4L13 26h6l-1.4-5.2a4.3 4.3 0 0 0 7-3.4C24.6 13 19.2 10.4 16 6z'/%3E%3C/g%3E%3C/svg%3E"); background-size: 72px 72px; -webkit-mask-image: radial-gradient(ellipse 70% 55% at 70% 10%, #000 0%, transparent 80%); mask-image: radial-gradient(ellipse 70% 55% at 70% 10%, #000 0%, transparent 80%); }
body:not(.live-stealth)::after { content: ''; position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: .045; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); background-size: 180px 180px; }
body:not(.live-stealth) .app-shell, body.login-body .login-card { position: relative; z-index: 1; }
::selection { background: rgba(95, 220, 165, .28); color: #fff; }

/* ─ Barra lateral ─ */
body:not(.live-stealth) .sidebar { background: linear-gradient(180deg, rgba(10,10,11,.86), rgba(4,4,5,.92)); border-right: 1px solid transparent; border-image: linear-gradient(180deg, rgba(255,255,255,.1), rgba(255,255,255,.035) 50%, rgba(255,255,255,.015)) 1; }
.brand-mark { position: relative; border: 0; border-radius: 50%; isolation: isolate; color: #ececef; text-shadow: 0 1px 0 rgba(0,0,0,.6), 0 0 12px rgba(255,255,255,.18); background: radial-gradient(circle at 50% 28%, #212124, #050505 72%); box-shadow: 0 10px 26px rgba(0,0,0,.75); font-family: var(--nx-display); font-weight: 650; letter-spacing: .02em; }
.brand-mark::before { content: ''; position: absolute; inset: -1.5px; z-index: -1; border-radius: 50%; background: conic-gradient(from 210deg, rgba(255,255,255,.95), rgba(255,255,255,.08) 25%, rgba(160,160,170,.55) 50%, rgba(255,255,255,.06) 75%, rgba(255,255,255,.95)); -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1px)); mask: radial-gradient(farthest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1px)); }
/* Logo: la ficha plateada de la app en lugar de las letras PL */
.brand-mark { font-size: 0; color: transparent; text-shadow: none; border-radius: 50%; background: url("icons/icon-192.png?v=3") center / 100% 100% no-repeat; box-shadow: none; filter: drop-shadow(0 8px 18px rgba(0,0,0,.75)) drop-shadow(0 0 14px rgba(255,255,255,.06)); }
.brand-mark::before { display: none; }
body:not(.live-stealth) .brand > span:last-child { font-family: var(--nx-display); font-weight: 600; letter-spacing: -.01em; color: transparent; background: var(--nx-silver-text); -webkit-background-clip: text; background-clip: text; }
body:not(.live-stealth) .desktop-nav { gap: 3px; }
body:not(.live-stealth) .desktop-nav a { position: relative; color: #77777f; font-weight: 550; letter-spacing: .005em; transition: color .25s ease, background .25s ease; }
body:not(.live-stealth) .desktop-nav a:hover { color: #d4d4d8; background: rgba(255,255,255,.025); }
body:not(.live-stealth) .desktop-nav a.active { color: #fff; background: linear-gradient(90deg, rgba(255,255,255,.065), rgba(255,255,255,.012) 80%); }
body:not(.live-stealth) .desktop-nav a.active::before { content: ''; position: absolute; left: -22px; top: 50%; width: 2px; height: 20px; border-radius: 0 2px 2px 0; transform: translateY(-50%); background: linear-gradient(180deg, #ffffff, #9a9aa2); box-shadow: 0 0 12px rgba(255,255,255,.55); }
body:not(.live-stealth) .sidebar .text-button { color: #5f5f67; font-size: 12px; transition: color .2s ease; }
body:not(.live-stealth) .sidebar .text-button:hover { color: #b4b4bb; }

/* ─ Tipografía y encabezados ─ */
body:not(.live-stealth) .eyebrow { color: #7c7c85; font-size: 10px; font-weight: 650; letter-spacing: .24em; }
body:not(.live-stealth) :is(.page-header h1, .live-hero h2, .venue-report-title h2, .tournament-live-heading h2, .empty-state h2), .login-card h1 { font-family: var(--nx-display); font-weight: 650; color: transparent; background: var(--nx-silver-text); -webkit-background-clip: text; background-clip: text; }
body:not(.live-stealth) .page-header h1, .login-card h1 { padding-bottom: .12em; margin-bottom: -.12em; letter-spacing: -.04em; }
body:not(.live-stealth) :is(.section-heading h2, .chart-heading h2, .form-card h2, .trip-card h2, .series-card h2, .stake-card-heading h3) { font-family: var(--nx-display); font-weight: 600; letter-spacing: -.012em; color: #ededf0; }
body:not(.live-stealth) .section-heading :is(span, a) { color: #6f6f78; font-size: 12px; letter-spacing: .01em; }
body:not(.live-stealth) .section-heading a { transition: color .2s ease; }
body:not(.live-stealth) .section-heading a:hover { color: #e6e6e9; }

/* ─ Botones: negro con aro plateado (como el reloj en vivo) ─ */
body:not(.live-stealth) .button { position: relative; overflow: hidden; letter-spacing: .01em; transition: transform .18s ease, box-shadow .25s ease, color .2s ease; }
body:not(.live-stealth) :is(.button.primary, .button.secondary, .button.resume, .saved-session-edit) { border: 1px solid transparent; color: #f4f4f5; background: linear-gradient(180deg, #1b1b1d 0%, #0b0b0c 58%, #030303 100%) padding-box, var(--nx-ring) border-box; box-shadow: inset 0 1px 0 rgba(255,255,255,.09), 0 14px 30px -14px rgba(0,0,0,.95); font-weight: 650; }
body:not(.live-stealth) .button.primary { background: linear-gradient(180deg, #232326 0%, #0e0e10 58%, #050505 100%) padding-box, linear-gradient(145deg, rgba(255,255,255,.75), rgba(140,140,150,.2) 42%, rgba(235,235,240,.5) 70%, rgba(90,90,98,.25)) border-box; box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 14px 30px -14px rgba(0,0,0,.95), 0 0 22px -6px rgba(255,255,255,.12); }
body:not(.live-stealth) :is(.button.primary:not(.compact), .button.secondary, .button.resume)::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.13) 50%, transparent 65%); transform: translateX(-120%); transition: transform .8s ease; pointer-events: none; }
body:not(.live-stealth) .button.ghost { color: #a1a1aa; border-color: rgba(255,255,255,.09); background: rgba(255,255,255,.012); }
body:not(.live-stealth) .button:active { transform: scale(.985); }
@media (hover: hover) {
    body:not(.live-stealth) :is(.button.primary, .button.secondary, .button.resume):hover { transform: translateY(-1px); box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 18px 34px -14px rgba(0,0,0,.95), 0 0 0 3px rgba(255,255,255,.04); }
    body:not(.live-stealth) :is(.button.primary:not(.compact), .button.secondary, .button.resume):hover::after { transform: translateX(120%); }
    body:not(.live-stealth) .button.ghost:hover { color: #fff; border-color: rgba(255,255,255,.18); }
}
body:not(.live-stealth) .button.pause { color: #ecd3a0; background: rgba(236,211,160,.06); border-color: rgba(236,211,160,.2); }
body:not(.live-stealth) .button.warm { color: #1a1204; background: linear-gradient(180deg, #f3dcaa, #d6b16a); border-color: #d6b16a; }
body:not(.live-stealth) .danger-button { color: #f7a9af; background: rgba(240,122,131,.06); border-color: rgba(240,122,131,.18); }

/* ─ Avisos ─ */
body:not(.live-stealth) .notice.success { color: #d9fbe9; background: linear-gradient(90deg, rgba(95,220,165,.09), rgba(95,220,165,.02)); border: 1px solid rgba(95,220,165,.2); }
body:not(.live-stealth) .notice.danger { color: #ffd0d4; background: rgba(240,122,131,.07); border-color: rgba(240,122,131,.2); }

/* ─ Tarjetas: grafito profundo con filo de luz ─ */
body:not(.live-stealth) .card, .login-card { border: 1px solid transparent; background: var(--nx-card) padding-box, var(--nx-edge) border-box; box-shadow: inset 0 1px 0 rgba(255,255,255,.04), var(--shadow); }
body:not(.live-stealth) .stat-card { position: relative; border: 1px solid transparent; background: var(--nx-card) padding-box, var(--nx-edge) border-box; box-shadow: inset 0 1px 0 rgba(255,255,255,.035), 0 24px 44px -30px rgba(0,0,0,.95); transition: transform .25s ease, box-shadow .25s ease; }
body:not(.live-stealth) .stat-card > span { color: #7c7c85; font-size: 10.5px; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; }
body:not(.live-stealth) .stat-card small { color: #5f5f68; font-size: 11px; }
body:not(.live-stealth) :where(.stat-card, .tournament-metric-grid article, .series-card, .stake-drilldown-card, .tournament-extreme, .tournament-live-kpis div, .live-kpis div, .stake-stat-grid div) strong, body:not(.live-stealth) :where(.tournament-extreme, .tournament-country-grid article, .series-kpis span) > b, body:not(.live-stealth) .series-result { font-family: var(--nx-display); font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: -.035em; color: transparent; background: var(--nx-silver-text); -webkit-background-clip: text; background-clip: text; }
body:not(.live-stealth) .stat-card strong { font-weight: 620; }
@media (hover: hover) { body:not(.live-stealth) .stat-card:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 30px 50px -28px rgba(0,0,0,1); } }
/* Tarjeta principal: halo según el resultado */
body:not(.live-stealth) .hero-stat { background: radial-gradient(90% 90% at 0% 0%, rgba(255,255,255,.07), transparent 60%) padding-box, linear-gradient(180deg, #121214, #09090a) padding-box, linear-gradient(145deg, rgba(255,255,255,.34), rgba(255,255,255,.05) 45%, rgba(255,255,255,.1)) border-box; }
body:not(.live-stealth) .hero-stat:has(.positive) { background: radial-gradient(90% 90% at 0% 0%, rgba(95,220,165,.11), transparent 62%) padding-box, linear-gradient(180deg, #111413, #09090a) padding-box, linear-gradient(145deg, rgba(127,230,182,.45), rgba(255,255,255,.05) 45%, rgba(127,230,182,.12)) border-box; }
body:not(.live-stealth) .hero-stat:has(.negative) { background: radial-gradient(90% 90% at 0% 0%, rgba(240,122,131,.1), transparent 62%) padding-box, linear-gradient(180deg, #141112, #09090a) padding-box, linear-gradient(145deg, rgba(247,149,156,.4), rgba(255,255,255,.05) 45%, rgba(247,149,156,.1)) border-box; }

/* ─ Positivo / negativo: jade y coral ─ */
body:not(.live-stealth) .positive { color: var(--nx-pos) !important; }
body:not(.live-stealth) .negative { color: var(--nx-neg) !important; }
body:not(.live-stealth) :is(strong, b).positive { color: transparent !important; background: var(--nx-pos-text); -webkit-background-clip: text; background-clip: text; }
body:not(.live-stealth) :is(strong, b).negative { color: transparent !important; background: var(--nx-neg-text); -webkit-background-clip: text; background-clip: text; }
body:not(.live-stealth) :is(.stat-card, .tournament-metric-grid article) strong.positive { filter: drop-shadow(0 0 16px rgba(95,220,165,.16)); }

/* ─ Selectores segmentados y pestañas: grafito, activo en relieve ─ */
body:not(.live-stealth) :is(.summary-currency-toggle, .stake-chart-switch, .tournament-money-toolbar nav, .tournament-tabs) { border: 1px solid rgba(255,255,255,.06); background: #070708; box-shadow: inset 0 1px 2px rgba(0,0,0,.6); }
body:not(.live-stealth) :is(.summary-currency-toggle button, .stake-chart-switch button, .tournament-money-toolbar a, .tournament-tabs a) { color: #6f6f78; transition: color .2s ease, background .2s ease; }
body:not(.live-stealth) :is(.summary-currency-toggle button:hover, .stake-chart-switch button:hover, .tournament-money-toolbar a:hover, .tournament-tabs a:hover) { color: #d4d4d8; }
body:not(.live-stealth) :is(.summary-currency-toggle button[aria-pressed="true"], .stake-chart-switch button.active, .tournament-money-toolbar a.active, .tournament-tabs a.active) { color: #fff; background: linear-gradient(180deg, #252528, #151517) padding-box; box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 0 0 1px rgba(255,255,255,.1), 0 6px 16px -6px rgba(0,0,0,.9); }

/* ─ Tablas ─ */
body:not(.live-stealth) .recent-days-head, body:not(.live-stealth) .report-table th { color: #6a6a73; background: rgba(255,255,255,.018); font-size: 9.5px; letter-spacing: .16em; }
body:not(.live-stealth) :is(.recent-days-row, .report-table th, .report-table td) { border-bottom-color: rgba(255,255,255,.045); }
body:not(.live-stealth) .recent-days-row > :first-child, body:not(.live-stealth) .report-table td:first-child { color: #d4d4d8; }
body:not(.live-stealth) :is(.recent-days-row:not(.recent-days-head), .report-table tbody tr) { transition: background .18s ease; }
@media (hover: hover) { body:not(.live-stealth) :is(.recent-days-row:not(.recent-days-head), .report-table tbody tr):hover { background: linear-gradient(90deg, rgba(255,255,255,.035), rgba(255,255,255,.01)); } }
body:not(.live-stealth) .report-table th[aria-sort] button { color: #e6e6e9; }
body:not(.live-stealth) .monthly-venues-row { background: rgba(255,255,255,.015); }

/* ─ Sesiones ─ */
body:not(.live-stealth) :is(.session-row, .saved-session) { border-color: rgba(255,255,255,.055); background: linear-gradient(180deg, rgba(16,16,18,.82), rgba(8,8,9,.82)); box-shadow: inset 0 1px 0 rgba(255,255,255,.03); transition: border-color .2s ease, background .2s ease; }
body:not(.live-stealth) .saved-session > summary.session-row { background: transparent; box-shadow: none; }
@media (hover: hover) { body:not(.live-stealth) :is(.session-list > .session-row, .saved-session):hover { border-color: rgba(255,255,255,.12); } }
body:not(.live-stealth) .saved-session[open] { border-color: rgba(255,255,255,.16); background: linear-gradient(180deg, rgba(20,20,22,.9), rgba(8,8,9,.9)); }
body:not(.live-stealth) :is(.session-date, .date-chip) strong { font-family: var(--nx-display); font-weight: 600; color: transparent; background: var(--nx-silver-text); -webkit-background-clip: text; background-clip: text; }
body:not(.live-stealth) :is(.session-date, .date-chip) span { letter-spacing: .12em; }
body:not(.live-stealth) .date-chip { border-color: rgba(255,255,255,.08); background: linear-gradient(180deg, #141416, #09090a); }
body:not(.live-stealth) .session-result { font-family: var(--nx-display); font-weight: 600; font-variant-numeric: tabular-nums; }

/* ─ Formularios ─ */
body:not(.live-stealth) label, body:not(.live-stealth) .trip-check-fieldset legend { color: #8f8f98; font-weight: 600; }
body:not(.live-stealth) :is(input, select, textarea) { border-color: rgba(255,255,255,.075); background-color: #080809; color: #f2f2f3; box-shadow: inset 0 1px 2px rgba(0,0,0,.5); transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease; }
body:not(.live-stealth) :is(input, select, textarea):hover { border-color: rgba(255,255,255,.12); }
body:not(.live-stealth) :is(input, select, textarea):focus { border-color: rgba(255,255,255,.3); background-color: #0b0b0c; box-shadow: inset 0 1px 2px rgba(0,0,0,.5), 0 0 0 4px rgba(255,255,255,.045); }
body:not(.live-stealth) :is(input, textarea)::placeholder { color: #4f4f57; }
body:not(.live-stealth) select option { background: #111113; color: #f2f2f3; }
body:not(.live-stealth) input:is([type="checkbox"], [type="radio"]) { box-shadow: none; accent-color: #5fdca5; }
body:not(.live-stealth) .search-combobox-control { border-color: rgba(255,255,255,.075); background: #080809; }
body:not(.live-stealth) .search-combobox-control input { background: transparent; box-shadow: none; }
body:not(.live-stealth) .search-combobox.is-open .search-combobox-control, body:not(.live-stealth) .search-combobox-control:focus-within { border-color: rgba(255,255,255,.3); box-shadow: 0 0 0 4px rgba(255,255,255,.045); }
body:not(.live-stealth) .search-combobox-toggle { color: #a1a1aa; }
body:not(.live-stealth) .search-combobox-results { border-color: rgba(255,255,255,.1); background: rgba(11,11,12,.97); backdrop-filter: blur(14px); box-shadow: 0 30px 70px rgba(0,0,0,.85); }
body:not(.live-stealth) :is(.search-combobox-option:hover, .search-combobox-option.is-active) { color: #fff; background: rgba(255,255,255,.06); }
body:not(.live-stealth) .search-combobox-option.is-selected::after { color: var(--nx-pos); }
body:not(.live-stealth) .trip-check-list { border-color: rgba(255,255,255,.07); background: #070708; }
body:not(.live-stealth) .trip-check-option:hover { background: rgba(255,255,255,.035); }
body:not(.live-stealth) .region-chip-list span { color: #d4d4d8; border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.03); }
body:not(.live-stealth) :is(.country-region-list form, .venue-fee-list form, .buyin-timeline div, .currency-line) { background: rgba(255,255,255,.022); }

/* ─ Iniciar sesión en vivo ─ */
body:not(.live-stealth) .live-hero { background: radial-gradient(ellipse 60% 100% at 50% 0, rgba(225,228,236,.09), transparent 64%); }
body:not(.live-stealth) .pulse-orb { position: relative; border: 0; background: radial-gradient(circle at 50% 30%, #1d1d20, #040404 72%); box-shadow: 0 18px 40px rgba(0,0,0,.75); isolation: isolate; }
body:not(.live-stealth) .pulse-orb::before { content: ''; position: absolute; inset: -1.5px; z-index: -1; border-radius: 50%; background: conic-gradient(from 0deg, rgba(255,255,255,.95), rgba(255,255,255,.08) 25%, rgba(160,160,170,.5) 50%, rgba(255,255,255,.06) 75%, rgba(255,255,255,.95)); -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1px)); mask: radial-gradient(farthest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1px)); animation: nx-spin 8s linear infinite; }
body:not(.live-stealth) .pulse-orb span { width: 12px; height: 12px; background: radial-gradient(circle at 40% 35%, #e6fff2, #5fdca5 70%); animation: nx-breathe 2.6s ease-in-out infinite; }
@keyframes nx-spin { to { transform: rotate(1turn); } }
@keyframes nx-breathe { 0%, 100% { box-shadow: 0 0 0 6px rgba(95,220,165,.05), 0 0 16px rgba(95,220,165,.35); } 50% { box-shadow: 0 0 0 10px rgba(95,220,165,.08), 0 0 30px rgba(95,220,165,.6); } }
body:not(.live-stealth) :is(.trip-context, .quote-strip) { border-color: rgba(255,255,255,.08); background: linear-gradient(90deg, rgba(255,255,255,.035), rgba(255,255,255,.01)); }
body:not(.live-stealth) .trip-context span { color: #8a8a93; letter-spacing: .18em; }
body:not(.live-stealth) .live-status.running, body:not(.live-stealth) .live-status-dot { color: #bff5d9; border-color: rgba(95,220,165,.22); background: rgba(95,220,165,.06); }
body:not(.live-stealth) .live-status.running span { background: var(--nx-pos); box-shadow: 0 0 12px rgba(95,220,165,.8); }
body:not(.live-stealth) :is(.live-timer, .tournament-clock) { color: transparent; background: var(--nx-silver-text); -webkit-background-clip: text; background-clip: text; font-weight: 640; filter: drop-shadow(0 0 26px rgba(255,255,255,.07)); }
body:not(.live-stealth) .quick-add button { color: #e6e6e9; background: #161618; }
body:not(.live-stealth) .quick-add .buyin-submit { color: #d9fbe9; background: #173a2a; }
body:not(.live-stealth) .quick-add .expense-submit { color: #ecd3a0; background: #33291a; }
body:not(.live-stealth) .objective-card strong { color: var(--nx-pos); }
body:not(.live-stealth) .objective-card.complete { border-color: rgba(95,220,165,.3); background: rgba(95,220,165,.05); }
body:not(.live-stealth) .objective-track::-webkit-progress-value { background: linear-gradient(90deg, #2f9f6e, #8ff0c2); }
body:not(.live-stealth) .objective-track::-moz-progress-bar { background: linear-gradient(90deg, #2f9f6e, #8ff0c2); }
body:not(.live-stealth) :is(.timer-mode-toggle, .objective-editor summary) { color: #d4d4d8; background: rgba(255,255,255,.05); }

/* ─ Viajes ─ */
body:not(.live-stealth) .trip-group-card { background: radial-gradient(80% 90% at 0% 0%, rgba(255,255,255,.065), transparent 60%) padding-box, var(--nx-card) padding-box, linear-gradient(145deg, rgba(255,255,255,.3), rgba(255,255,255,.04) 45%, rgba(255,255,255,.1)) border-box; }
body:not(.live-stealth) .trip-dates { color: #6f6f78; }

/* ─ Reportes ─ */
body:not(.live-stealth) .report-presets a { border: 1px solid transparent; background: var(--nx-card) padding-box, var(--nx-edge) border-box; transition: transform .25s ease, box-shadow .25s ease; }
@media (hover: hover) { body:not(.live-stealth) .report-presets a:hover { transform: translateY(-2px); box-shadow: 0 20px 40px -26px rgba(0,0,0,1); } }
body:not(.live-stealth) .report-presets a.active { background: radial-gradient(90% 100% at 0% 0%, rgba(255,255,255,.08), transparent 65%) padding-box, linear-gradient(180deg, #151517, #0a0a0b) padding-box, linear-gradient(145deg, rgba(255,255,255,.55), rgba(255,255,255,.06) 45%, rgba(255,255,255,.2)) border-box; box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 0 26px -8px rgba(255,255,255,.12); }
body:not(.live-stealth) :is(.report-presets span, .venue-report-title > span, .venue-report-link, .tournament-create-hint a) { color: #8a8a93; letter-spacing: .16em; }
body:not(.live-stealth) .report-presets a.active span { color: #d4d4d8; }
body:not(.live-stealth) .chart-fullscreen-button { color: #b4b4bb; border-color: rgba(255,255,255,.08); background: rgba(255,255,255,.02); transition: color .2s ease, border-color .2s ease; }
body:not(.live-stealth) .chart-fullscreen-button:hover { color: #fff; border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.04); }
body:not(.live-stealth) .chart-fullscreen-button b { color: #e6e6e9; }
body:not(.live-stealth) .report-chart-tooltip { border-color: rgba(255,255,255,.12); background: rgba(9,9,10,.95); backdrop-filter: blur(12px); box-shadow: 0 20px 44px rgba(0,0,0,.8); }
body:not(.live-stealth) .ath-status.is-current { color: #bff5d9; background: rgba(95,220,165,.1); }
body:not(.live-stealth) .monthly-venue-toggle::before { color: #8a8a93; }

/* ─ Gráficos: la línea de resultado en jade (el JS toma el color del tema) ─ */
.chart-host [stroke="#e6e6e9"], .chart-host [stroke="#e4e4e7"] { stroke: var(--nx-pos); }
.chart-host [fill="#e6e6e9"], .chart-host [fill="#e4e4e7"] { fill: var(--nx-pos); }
.chart-host circle[fill="#131315"] { fill: #0c0c0d; }
.chart-series-legend :is(.legend-profit, .legend-diff-positive) { color: var(--nx-pos); }
.tip-dot, .tip-dot.diff-positive { background: var(--nx-pos); }
.tournament-stack-chart :is(path, circle)[stroke="#33df8a"] { stroke: var(--nx-pos); }
.tournament-stack-chart path[fill="rgba(51,223,138,.11)"] { fill: rgba(95,220,165,.1); }
.tournament-stack-chart circle[fill="#11221c"] { fill: #0c0c0d; }
.chart-host [fill="#8da39a"] { fill: #8a8a93; }
.chart-host [stroke="#8da39a"] { stroke: #8a8a93; }
.chart-host .domain, .chart-host .tick line { stroke: rgba(255,255,255,.06); }
.outcome-slice-label { fill: #fafafa; }

/* ─ Torneos ─ */
body:not(.live-stealth) :is(.tournament-metric-grid, .tournament-money-toolbar) { border-color: rgba(255,255,255,.07); background: var(--nx-card); }
body:not(.live-stealth) .tournament-metric-grid article { border-color: rgba(255,255,255,.05); }
body:not(.live-stealth) .tournament-metric-grid span { color: #6f6f78; letter-spacing: .14em; }
body:not(.live-stealth) :is(.tournament-country-grid article, .quick-tournament-card) { border-color: rgba(255,255,255,.06); background: linear-gradient(180deg, rgba(16,16,18,.8), rgba(8,8,9,.8)); }
body:not(.live-stealth) .tournament-extreme.best { background: radial-gradient(80% 100% at 0% 0%, rgba(95,220,165,.09), transparent 60%) padding-box, var(--nx-card) padding-box, linear-gradient(145deg, rgba(127,230,182,.4), rgba(255,255,255,.04) 50%, rgba(127,230,182,.12)) border-box; }
body:not(.live-stealth) .tournament-extreme.worst { background: radial-gradient(80% 100% at 0% 0%, rgba(240,122,131,.08), transparent 60%) padding-box, var(--nx-card) padding-box, linear-gradient(145deg, rgba(247,149,156,.34), rgba(255,255,255,.04) 50%, rgba(247,149,156,.1)) border-box; }
body:not(.live-stealth) .tournament-continuation-card { background: radial-gradient(80% 100% at 0% 0%, rgba(236,211,160,.09), transparent 60%) padding-box, var(--nx-card) padding-box, linear-gradient(145deg, rgba(236,211,160,.4), rgba(236,211,160,.05) 50%, rgba(236,211,160,.16)) border-box; }
body:not(.live-stealth) .tournament-finish-panel { border-color: rgba(255,255,255,.08); background: rgba(255,255,255,.012); }

/* ─ Diálogos y avisos flotantes ─ */
body:not(.live-stealth) .app-confirm-dialog { border: 1px solid rgba(255,255,255,.12); background: linear-gradient(180deg, #131315, #09090a); box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 40px 100px rgba(0,0,0,.9); }
body:not(.live-stealth) .app-confirm-dialog::backdrop { background: rgba(0,0,0,.7); backdrop-filter: blur(6px); }
body:not(.live-stealth) .app-confirm-icon { color: #e6e6e9; background: rgba(255,255,255,.06); }
body:not(.live-stealth) .app-confirm-cancel { color: #d4d4d8; background: #161618; border-color: rgba(255,255,255,.1); }
body:not(.live-stealth) .app-confirm-accept { color: #fff; background: linear-gradient(180deg, #232326, #0e0e10) padding-box, var(--nx-ring) border-box; border: 1px solid transparent !important; }
body:not(.live-stealth) .app-confirm-dialog.is-danger .app-confirm-accept { background: #a3434b; }
body:not(.live-stealth) .live-feedback { border-color: rgba(255,255,255,.12); background: rgba(12,12,13,.94); box-shadow: 0 20px 48px -12px rgba(0,0,0,.9); }
body:not(.live-stealth) .feedback-mark { color: #0b2419; background: linear-gradient(180deg, #bff5d9, #5fdca5); }
body:not(.live-stealth) .live-feedback.error .feedback-mark { color: #fff; background: rgba(240,122,131,.35); }

/* ─ Barra inferior del celular ─ */
@media (max-width: 820px) {
    body:not(.live-stealth) { background-attachment: scroll; }
    body:not(.live-stealth) .mobile-nav { border: 1px solid transparent; background: linear-gradient(180deg, rgba(18,18,20,.9), rgba(5,5,6,.95)) padding-box, linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.03)) border-box; box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 20px 50px rgba(0,0,0,.85); }
    body:not(.live-stealth) .mobile-nav a { color: #66666e; transition: color .2s ease; }
    body:not(.live-stealth) .mobile-nav a.active { color: #fff; text-shadow: 0 0 14px rgba(255,255,255,.4); }
    body:not(.live-stealth) .mobile-nav .new-button span { color: #fff; border: 1px solid transparent; background: linear-gradient(180deg, #232326, #070707) padding-box, var(--nx-ring) border-box; box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 10px 26px rgba(0,0,0,.8); }
}

body:not(.live-stealth) :is(a, button, summary):focus-visible { outline: 2px solid rgba(255,255,255,.65); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
    body:not(.live-stealth) :is(.pulse-orb::before, .pulse-orb span) { animation: none; }
    body:not(.live-stealth) .button::after { transition: none; }
    body:not(.live-stealth) :is(.stat-card, .report-presets a) { transition: none; }
}

/* ── Toque final: sobrio y profesional. Colores planos, sin brillos ni sombras de color. ── */
:root {
    --nx-pos: #56c78f;
    --nx-neg: #e5737c;
    --nx-card: linear-gradient(180deg, #0d0d0e, #0a0a0b);
    --nx-edge: linear-gradient(180deg, rgba(255,255,255,.085), rgba(255,255,255,.05));
    --shadow: 0 1px 2px rgba(0,0,0,.4);
}
body:not(.live-stealth) { background: radial-gradient(ellipse 60% 30% at 70% -8%, rgba(220, 224, 232, .045), transparent 70%), #060606; }
body:not(.live-stealth)::before { opacity: .018; }
body:not(.live-stealth)::after { opacity: .03; }

/* Títulos y números: blanco plano */
body:not(.live-stealth) :is(.page-header h1, .live-hero h2, .venue-report-title h2, .tournament-live-heading h2, .empty-state h2), .login-card h1,
body:not(.live-stealth) .brand > span:last-child,
body:not(.live-stealth) :is(.session-date, .date-chip) strong,
body:not(.live-stealth) :is(.live-timer, .tournament-clock) { color: #f4f4f5; background: none; -webkit-background-clip: border-box; background-clip: border-box; filter: none; }
body:not(.live-stealth) :where(.stat-card, .tournament-metric-grid article, .series-card, .stake-drilldown-card, .tournament-extreme, .tournament-live-kpis div, .live-kpis div, .stake-stat-grid div) strong, body:not(.live-stealth) :where(.tournament-extreme, .tournament-country-grid article, .series-kpis span) > b, body:not(.live-stealth) .series-result { color: #f4f4f5; background: none; -webkit-background-clip: border-box; background-clip: border-box; }
body:not(.live-stealth) .stat-card strong { font-weight: 600; letter-spacing: -.03em; }
body:not(.live-stealth) :is(strong, b).positive { color: var(--nx-pos) !important; background: none; -webkit-background-clip: border-box; background-clip: border-box; }
body:not(.live-stealth) :is(strong, b).negative { color: var(--nx-neg) !important; background: none; -webkit-background-clip: border-box; background-clip: border-box; }
body:not(.live-stealth) :is(.stat-card, .tournament-metric-grid article) strong.positive { filter: none; }

/* Tarjetas: superficie plana, borde fino, sin halos */
body:not(.live-stealth) .card, .login-card, body:not(.live-stealth) .stat-card { box-shadow: inset 0 1px 0 rgba(255,255,255,.025); }
body:not(.live-stealth) :is(.hero-stat, .hero-stat:has(.positive), .hero-stat:has(.negative), .trip-group-card, .tournament-extreme.best, .tournament-extreme.worst) { background: var(--nx-card) padding-box, var(--nx-edge) border-box; }
body:not(.live-stealth) .hero-stat { background: linear-gradient(180deg, #111113, #0b0b0c) padding-box, linear-gradient(180deg, rgba(255,255,255,.13), rgba(255,255,255,.06)) border-box; }
body:not(.live-stealth) .tournament-extreme.best { box-shadow: inset 2px 0 0 var(--nx-pos); }
body:not(.live-stealth) .tournament-extreme.worst { box-shadow: inset 2px 0 0 var(--nx-neg); }
body:not(.live-stealth) .tournament-continuation-card { background: var(--nx-card) padding-box, linear-gradient(180deg, rgba(236,211,160,.3), rgba(236,211,160,.12)) border-box; }
body:not(.live-stealth) .report-presets a.active { background: linear-gradient(180deg, #141416, #0e0e10) padding-box, linear-gradient(180deg, rgba(255,255,255,.26), rgba(255,255,255,.14)) border-box; box-shadow: none; }
body:not(.live-stealth) :is(.session-row, .saved-session) { background: #0b0b0c; box-shadow: none; }
body:not(.live-stealth) .saved-session > summary.session-row { background: transparent; }
body:not(.live-stealth) .saved-session[open] { background: #0d0d0e; }

/* Sin elevaciones ni brillos al pasar el mouse: solo el borde cambia */
@media (hover: hover) {
    body:not(.live-stealth) :is(.stat-card, .report-presets a):hover { transform: none; box-shadow: inset 0 1px 0 rgba(255,255,255,.025); }
    body:not(.live-stealth) .report-presets a:not(.active):hover { background: var(--nx-card) padding-box, linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,.09)) border-box; }
}

/* Botones: grafito con borde fino, sin aro metálico ni destello */
body:not(.live-stealth) :is(.button.primary, .button.secondary, .button.resume, .saved-session-edit, .app-confirm-accept) { border: 1px solid rgba(255,255,255,.14); color: #f4f4f5; background: #151517; box-shadow: none; }
body:not(.live-stealth) .button.primary { border-color: rgba(255,255,255,.22); background: #1a1a1c; }
body:not(.live-stealth) :is(.button.primary:not(.compact), .button.secondary, .button.resume)::after { display: none; }
@media (hover: hover) {
    body:not(.live-stealth) :is(.button.primary, .button.secondary, .button.resume):hover { transform: none; border-color: rgba(255,255,255,.3); background: #1f1f22; box-shadow: none; }
}
body:not(.live-stealth) .app-confirm-dialog.is-danger .app-confirm-accept { border-color: transparent; background: #a3434b; }

/* Selectores y pestañas: activo apenas más claro, sin relieve */
body:not(.live-stealth) :is(.summary-currency-toggle, .stake-chart-switch, .tournament-money-toolbar nav, .tournament-tabs) { box-shadow: none; }
body:not(.live-stealth) :is(.summary-currency-toggle button[aria-pressed="true"], .stake-chart-switch button.active, .tournament-money-toolbar a.active, .tournament-tabs a.active) { background: #1d1d20; box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }

/* Menú: sin resplandor */
body:not(.live-stealth) .desktop-nav a.active { background: rgba(255,255,255,.045); }
body:not(.live-stealth) .desktop-nav a.active::before { background: #e4e4e7; box-shadow: none; }
.brand-mark { filter: drop-shadow(0 4px 10px rgba(0,0,0,.6)); }

/* Detalles sin efectos */
body:not(.live-stealth) .pulse-orb::before { animation: none; opacity: .6; }
body:not(.live-stealth) .pulse-orb span { animation: none; box-shadow: 0 0 0 6px rgba(86,199,143,.07); background: var(--nx-pos); }
body:not(.live-stealth) .live-status.running span { box-shadow: none; }
body:not(.live-stealth) .notice.success { color: #cdeedd; background: rgba(86,199,143,.06); border-color: rgba(86,199,143,.18); }
body:not(.live-stealth) .feedback-mark { color: #fff; background: rgba(86,199,143,.25); }
body:not(.live-stealth) .objective-track::-webkit-progress-value { background: var(--nx-pos); }
body:not(.live-stealth) .objective-track::-moz-progress-bar { background: var(--nx-pos); }
body:not(.live-stealth) .quick-add .buyin-submit { color: #cdeedd; background: #16291f; }
::selection { background: rgba(255,255,255,.18); }
@media (max-width: 820px) {
    body:not(.live-stealth) .mobile-nav { background: rgba(10,10,11,.94); border: 1px solid rgba(255,255,255,.08); box-shadow: 0 16px 40px rgba(0,0,0,.7); }
    body:not(.live-stealth) .mobile-nav a.active { text-shadow: none; }
    body:not(.live-stealth) .mobile-nav .new-button span { border: 1px solid rgba(255,255,255,.2); background: #1a1a1c; box-shadow: none; }
}

/* Formularios: cada campo se ancla arriba, así las casillas de una misma fila quedan alineadas
   aunque el vecino tenga texto de ayuda debajo (p. ej. "Gastos previos"). */
label { align-content: start; }
.form-grid > label > small { color: #6c6c75; font-size: 11px; font-weight: 500; line-height: 1.35; }
/* Los campos de una misma fila comparten sub-filas (título · casilla · ayuda): si un título ocupa dos líneas,
   las casillas de esa fila siguen alineadas. */
@supports (grid-template-rows: subgrid) {
    .form-grid > label:not(.checkbox-label):not(.check-row):not(.switch-label):not([hidden]) { grid-row: span 3; grid-template-rows: subgrid; row-gap: 7px; }
    .form-grid > label:not(.checkbox-label):not(.check-row):not(.switch-label) > :is(input, select, textarea) { align-self: start; }
}

/* ── Escritorio (≥821px): usar todo el ancho disponible. Mobile queda igual. ── */
@media (min-width: 821px) {
    /* minmax(0, 1fr): la columna de contenido no crece por el ancho de los gráficos (evita scroll horizontal) */
    body:not(.live-stealth) .app-shell { grid-template-columns: 230px minmax(0, 1fr); }
    body:not(.live-stealth) .content { min-width: 0; }
    body:not(.live-stealth) .content { width: 100%; max-width: 1760px; margin-inline: auto; padding: 38px clamp(28px, 3.2vw, 64px) 80px; }
    body:not(.live-stealth) .report-kpis { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
    body:not(.live-stealth) .stat-card strong { white-space: nowrap; }
    body:not(.live-stealth) .report-table { min-width: 0; }
    body:not(.live-stealth) .report-table-wrap { overflow-x: auto; }
    body:not(.live-stealth) .section-block + .currency-block { margin-top: 30px; }
}
@media (min-width: 1200px) {
    body:not(.live-stealth) .currency-block:not(.lifetime-block) > .stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
    body:not(.live-stealth) .report-table { min-width: 790px; }
}
@media (min-width: 1400px) {
    body:not(.live-stealth) .trip-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body:not(.live-stealth) .trip-list > .trip-group-card { grid-column: 1 / -1; }
    body:not(.live-stealth) .series-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    body:not(.live-stealth) .tournament-country-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    body:not(.live-stealth) .country-region-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    body:not(.live-stealth) .trip-check-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1700px) {
    body:not(.live-stealth) .venue-stake-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    body:not(.live-stealth) .report-presets { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
}
/* Celular: las grillas de formularios no se estiran por el ancho mínimo de sus campos (evita scroll horizontal en 320px). */
@media (max-width: 820px) {
    body:not(.live-stealth) :is(.settings-grid, .tournament-setup-grid, .series-grid) { grid-template-columns: minmax(0, 1fr); }
    body:not(.live-stealth) :is(.form-card, .form-grid > label, .form-grid > *) { min-width: 0; }
    body:not(.live-stealth) .form-grid :is(input, select, textarea) { min-width: 0; max-width: 100%; }
}
@media (max-width: 520px) {
    body:not(.live-stealth) .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ── Selects modernos (con assets/select-sheet.js). Sin JS, quedan los nativos. ── */
html.nx-selects select:not([multiple]):not([size]) { -webkit-appearance: none; appearance: none; padding-right: 36px; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' fill='none' stroke='%239a9aa2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 13px center !important; background-size: 12px 12px !important; text-overflow: ellipsis; }
/* El script abre el selector: el toque atraviesa el select y lo recibe el documento */
html.nx-selects select:not([multiple]):not([size]):not([data-native-select]) { pointer-events: none; }
html.nx-selects :has(> select:not([multiple]):not([size])) { cursor: pointer; }
html.nx-selects select.nx-open { border-color: rgba(255,255,255,.3) !important; box-shadow: 0 0 0 4px rgba(255,255,255,.045) !important; }
html.nx-lock { overflow: hidden; }

.nx-select { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: #f4f4f5; overflow: hidden; font: 14px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", Inter, system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
.nx-select::backdrop { background: transparent; }
.nx-select.is-sheet::backdrop { background: rgba(0,0,0,.55); backdrop-filter: blur(3px); animation: nx-fade .22s ease backwards; }
.nx-select.is-sheet.is-closing::backdrop { animation: nx-fade-out .19s ease both; }
.nx-panel { position: absolute; display: flex; flex-direction: column; min-height: 0; overflow: hidden; background: #0f0f11; border: 1px solid rgba(255,255,255,.1); }
.nx-list { min-height: 0; flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; outline: none; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.14) transparent; }
.nx-option { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-radius: 9px; color: #c9c9cf; cursor: pointer; -webkit-user-select: none; user-select: none; }
.nx-option > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nx-option::after { content: ''; flex: 0 0 auto; width: 12px; height: 7px; margin-right: 2px; border-left: 1.75px solid transparent; border-bottom: 1.75px solid transparent; transform: rotate(-45deg) translateY(-2px); }
.nx-option.is-active { background: rgba(255,255,255,.055); color: #fff; }
.nx-option[aria-selected="true"] { color: #fff; font-weight: 600; }
.nx-option[aria-selected="true"]::after { border-color: #56c78f; }
.nx-option.is-placeholder:not([aria-selected="true"]) { color: #7c7c85; }
.nx-option[aria-disabled="true"] { color: #505058; cursor: default; }
.nx-option[aria-disabled="true"].is-active { background: transparent; }
.nx-group { padding: 12px 12px 5px; color: #6c6c75; font-size: 10px; font-weight: 650; letter-spacing: .15em; text-transform: uppercase; }
.nx-empty { margin: 0; padding: 18px 12px 22px; color: #6c6c75; text-align: center; font-size: 13px; }
.nx-search { position: relative; flex: 0 0 auto; }
.nx-search::before { content: ''; position: absolute; left: 13px; top: 50%; width: 14px; height: 14px; transform: translateY(-50%); background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Ccircle cx='6' cy='6' r='4.5' fill='none' stroke='%237c7c85' stroke-width='1.5'/%3E%3Cpath d='m9.5 9.5 3 3' stroke='%237c7c85' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center; pointer-events: none; }
.nx-search input { width: 100%; height: 40px; padding: 0 12px 0 36px; border: 1px solid rgba(255,255,255,.08); border-radius: 10px; color: #f4f4f5; background: #080809; font: inherit; font-size: 13px; outline: none; box-shadow: none; -webkit-appearance: none; appearance: none; }
.nx-search input:focus { border-color: rgba(255,255,255,.26); }
.nx-search input::placeholder { color: #55555c; }
.nx-search input::-webkit-search-cancel-button { filter: invert(.6); }

/* Escritorio: menú anclado bajo el select */
.nx-select.is-pop .nx-grip, .nx-select.is-pop .nx-head { display: none; }
.nx-select.is-pop .nx-panel { padding: 5px; border-radius: 13px; box-shadow: 0 22px 50px rgba(0,0,0,.7), 0 2px 6px rgba(0,0,0,.4); animation: nx-pop .13s ease-out backwards; transform-origin: top center; }
.nx-select.is-pop .nx-panel.from-above { transform-origin: bottom center; }
.nx-select.is-pop .nx-search { margin: 1px 1px 5px; }
.nx-select.is-pop .nx-option { min-height: 36px; padding: 0 11px; font-size: inherit; }
.nx-select.is-pop.is-closing .nx-panel { animation: nx-pop-out .11s ease-in both; }

/* Celular: panel que sube desde abajo */
.nx-select.is-sheet .nx-panel { left: 0; right: 0; bottom: 0; width: min(100%, 560px); max-height: min(78dvh, 640px); margin-inline: auto; padding-bottom: max(10px, env(safe-area-inset-bottom)); border-width: 1px 1px 0; border-radius: 22px 22px 0 0; box-shadow: 0 -18px 60px rgba(0,0,0,.6); touch-action: pan-y; animation: nx-sheet-in .26s cubic-bezier(.2,.8,.2,1) backwards; transition: transform .2s ease; }
.nx-select.is-sheet.is-closing .nx-panel { animation: nx-sheet-out .19s ease-in both; }
.nx-grip { flex: 0 0 auto; width: 38px; height: 4px; margin: 9px auto 2px; border-radius: 4px; background: rgba(255,255,255,.18); touch-action: none; }
.nx-head { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 14px 12px 22px; touch-action: none; }
.nx-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; font-weight: 600; letter-spacing: -.01em; }
.nx-close { flex: 0 0 auto; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; color: #a1a1aa; background: rgba(255,255,255,.06); font: inherit; font-size: 20px; line-height: 1; cursor: pointer; }
.nx-select.is-sheet .nx-search { margin: 0 16px 8px; }
.nx-select.is-sheet .nx-search input { height: 44px; font-size: 16px; }
.nx-select.is-sheet .nx-list { padding: 2px 10px 6px; }
.nx-select.is-sheet .nx-option { min-height: 52px; padding: 0 14px; font-size: 15px; border-radius: 12px; }
.nx-select.is-sheet .nx-option.is-active { background: rgba(255,255,255,.045); }

@keyframes nx-fade { from { opacity: 0; } }
@keyframes nx-fade-out { to { opacity: 0; } }
@keyframes nx-pop { from { opacity: 0; transform: translateY(-4px) scale(.985); } }
@keyframes nx-pop-out { to { opacity: 0; transform: translateY(-3px) scale(.99); } }
@keyframes nx-sheet-in { from { transform: translateY(100%); } }
@keyframes nx-sheet-out { to { transform: translateY(100%); } }
@media (hover: hover) { .nx-close:hover { color: #fff; background: rgba(255,255,255,.1); } }
@media (prefers-reduced-motion: reduce) { .nx-select .nx-panel, .nx-select::backdrop { animation: none !important; } }

/* Banderas de moneda (assets/flags, flag-icons MIT). */
.flag { display: inline-block; flex: 0 0 auto; width: 1.15em; height: auto; aspect-ratio: 4 / 3; margin-right: .45em; border-radius: 3px; object-fit: cover; vertical-align: -.1em; box-shadow: 0 0 0 1px rgba(15,15,20,.12); }
.stake-chart-switch .flag { width: 16px; margin-right: 6px; vertical-align: -2px; }
.stake-chart-switch button { display: inline-flex; align-items: center; justify-content: center; }

/* ── Versión light 2026-09-28: mismo diseño, en claro. El reloj en vivo (html.live-stealth-root) sigue oscuro. ── */
/* "%" se reemplaza en build.py por: html:not(.live-stealth-root) body:not(.live-stealth) */
html:not(.live-stealth-root) {
    color-scheme: light;
    background: #f5f5f4;
    --bg: #f5f5f4;
    --surface: #ffffff;
    --surface-2: #f3f3f4;
    --line: rgba(15, 15, 20, .08);
    --text: #111113;
    --muted: #6b6b74;
    --green: #1a1a1c;
    --green-dark: #eeeef0;
    --red: #d4434e;
    --shadow: 0 1px 2px rgba(15,15,20,.04), 0 10px 28px -16px rgba(15,15,20,.14);
    --nx-pos: #178a55;
    --nx-neg: #d4434e;
    --nx-card: linear-gradient(#ffffff, #ffffff);
    --nx-edge: linear-gradient(rgba(15,15,20,.09), rgba(15,15,20,.09));
}
html:not(.live-stealth-root) body:not(.live-stealth) { background: radial-gradient(ellipse 60% 30% at 70% -8%, rgba(255,255,255,.9), transparent 70%), #f5f5f4; color: #111113; }
html:not(.live-stealth-root) body:not(.live-stealth)::before { filter: invert(1); opacity: .022; }
html:not(.live-stealth-root) body:not(.live-stealth)::after { filter: invert(1); opacity: .018; }
::selection { background: rgba(23,138,85,.18); color: inherit; }

/* Barra lateral */
html:not(.live-stealth-root) body:not(.live-stealth) .sidebar { background: rgba(250,250,249,.86); border-right: 1px solid rgba(15,15,20,.07); border-image: none; }
html:not(.live-stealth-root) body:not(.live-stealth) .brand > span:last-child { color: #111113; }
.brand-mark { filter: drop-shadow(0 3px 8px rgba(15,15,20,.18)); }
html:not(.live-stealth-root) body:not(.live-stealth) .desktop-nav a { color: #6b6b74; }
html:not(.live-stealth-root) body:not(.live-stealth) .desktop-nav a:hover { color: #111113; background: rgba(15,15,20,.035); }
html:not(.live-stealth-root) body:not(.live-stealth) .desktop-nav a.active { color: #111113; background: rgba(15,15,20,.055); }
html:not(.live-stealth-root) body:not(.live-stealth) .desktop-nav a.active::before { background: #111113; }
html:not(.live-stealth-root) body:not(.live-stealth) .sidebar .text-button, html:not(.live-stealth-root) body:not(.live-stealth) .text-button { color: #8a8a93; }
html:not(.live-stealth-root) body:not(.live-stealth) .sidebar .text-button:hover { color: #111113; }

/* Tipografía */
html:not(.live-stealth-root) body:not(.live-stealth) :is(.page-header h1, .live-hero h2, .venue-report-title h2, .tournament-live-heading h2, .empty-state h2), html:not(.live-stealth-root) .login-card h1 { color: #0e0e10; }
html:not(.live-stealth-root) body:not(.live-stealth) .page-header::after { background: linear-gradient(90deg, rgba(15,15,20,.12), rgba(15,15,20,.04) 55%, transparent); }
html:not(.live-stealth-root) body:not(.live-stealth) .eyebrow { color: #8a8a93; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.section-heading h2, .chart-heading h2, .form-card h2, .trip-card h2, .series-card h2, .stake-card-heading h3, .empty-state h2) { color: #111113; }
html:not(.live-stealth-root) body:not(.live-stealth) .section-heading :is(span, a) { color: #8a8a93; }
html:not(.live-stealth-root) body:not(.live-stealth) .section-heading a:hover { color: #111113; }
html:not(.live-stealth-root) body:not(.live-stealth) .muted, html:not(.live-stealth-root) body:not(.live-stealth) .trip-dates, html:not(.live-stealth-root) body:not(.live-stealth) .live-context { color: #6b6b74; }
html:not(.live-stealth-root) body:not(.live-stealth) .objective-input-helper { color: #8a8a93; }

/* Botones: primario negro, secundario blanco con borde */
html:not(.live-stealth-root) body:not(.live-stealth) :is(.button.primary, .button.resume, .app-confirm-accept) { border: 1px solid #111113; color: #ffffff; background: #111113; box-shadow: 0 1px 2px rgba(15,15,20,.12); }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.button.secondary, .saved-session-edit) { border: 1px solid rgba(15,15,20,.14); color: #111113; background: #ffffff; box-shadow: 0 1px 2px rgba(15,15,20,.05); }
html:not(.live-stealth-root) body:not(.live-stealth) .button.ghost { color: #55555c; border-color: rgba(15,15,20,.12); background: transparent; }
@media (hover: hover) {
    html:not(.live-stealth-root) body:not(.live-stealth) :is(.button.primary, .button.resume):hover { border-color: #2a2a2e; background: #2a2a2e; box-shadow: 0 1px 2px rgba(15,15,20,.12); }
    html:not(.live-stealth-root) body:not(.live-stealth) .button.secondary:hover { border-color: rgba(15,15,20,.24); background: #f7f7f8; box-shadow: 0 1px 2px rgba(15,15,20,.05); }
    html:not(.live-stealth-root) body:not(.live-stealth) .button.ghost:hover { color: #111113; border-color: rgba(15,15,20,.22); }
}
html:not(.live-stealth-root) body:not(.live-stealth) .button.pause { color: #8a5a00; background: #fff6e0; border-color: rgba(176,122,0,.25); }
html:not(.live-stealth-root) body:not(.live-stealth) .button.warm { color: #3b2800; background: #f4d58d; border-color: #e5c170; }
html:not(.live-stealth-root) body:not(.live-stealth) .danger-button { color: #b3303b; background: #fdeeef; border-color: rgba(212,67,78,.22); }
html:not(.live-stealth-root) body:not(.live-stealth) .danger-text, html:not(.live-stealth-root) body:not(.live-stealth) .saved-session-delete { color: #c23a45 !important; }

/* Avisos */
html:not(.live-stealth-root) body:not(.live-stealth) .notice.success { color: #135f3c; background: #eaf6ef; border-color: rgba(23,138,85,.22); }
html:not(.live-stealth-root) body:not(.live-stealth) .notice.danger { color: #9f2530; background: #fdeeef; border-color: rgba(212,67,78,.22); }

/* Tarjetas */
html:not(.live-stealth-root) body:not(.live-stealth) .card, html:not(.live-stealth-root) .login-card, html:not(.live-stealth-root) body:not(.live-stealth) .stat-card { box-shadow: var(--shadow); }
html:not(.live-stealth-root) body:not(.live-stealth) .hero-stat { background: linear-gradient(#ffffff, #ffffff) padding-box, linear-gradient(rgba(15,15,20,.16), rgba(15,15,20,.16)) border-box; }
html:not(.live-stealth-root) body:not(.live-stealth) .stat-card > span { color: #7a7a82; }
html:not(.live-stealth-root) body:not(.live-stealth) .stat-card small { color: #82828b; }
html:not(.live-stealth-root) body:not(.live-stealth) :where(.stat-card, .tournament-metric-grid article, .series-card, .stake-drilldown-card, .tournament-extreme, .tournament-live-kpis div, .live-kpis div, .stake-stat-grid div) strong, html:not(.live-stealth-root) body:not(.live-stealth) :where(.tournament-extreme, .tournament-country-grid article, .series-kpis span) > b, html:not(.live-stealth-root) body:not(.live-stealth) .series-result { color: #111113; }
@media (hover: hover) { html:not(.live-stealth-root) body:not(.live-stealth) :is(.stat-card, .report-presets a):hover { box-shadow: var(--shadow); } }
html:not(.live-stealth-root) body:not(.live-stealth) .tournament-continuation-card { background: linear-gradient(#fffdf7, #fffdf7) padding-box, linear-gradient(rgba(176,122,0,.3), rgba(176,122,0,.3)) border-box; }
html:not(.live-stealth-root) body:not(.live-stealth) .tournament-continuation-card > div > strong, html:not(.live-stealth-root) body:not(.live-stealth) .classified-text { color: #a26a00 !important; }
html:not(.live-stealth-root) body:not(.live-stealth) .report-presets a.active { background: linear-gradient(#ffffff, #ffffff) padding-box, linear-gradient(#111113, #111113) border-box; box-shadow: var(--shadow); }
html:not(.live-stealth-root) body:not(.live-stealth) .report-presets a:not(.active):hover { background: var(--nx-card) padding-box, linear-gradient(rgba(15,15,20,.2), rgba(15,15,20,.2)) border-box; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.report-presets span, .venue-report-title > span, .venue-report-link, .tournament-create-hint a) { color: #8a8a93; }
html:not(.live-stealth-root) body:not(.live-stealth) .report-presets a.active span { color: #111113; }
html:not(.live-stealth-root) body:not(.live-stealth) .report-presets small { color: #8a8a93; }

/* Positivo / negativo */
html:not(.live-stealth-root) body:not(.live-stealth) .positive, html:not(.live-stealth-root) body:not(.live-stealth) :is(strong, b).positive { color: var(--nx-pos) !important; }
html:not(.live-stealth-root) body:not(.live-stealth) .negative, html:not(.live-stealth-root) body:not(.live-stealth) :is(strong, b).negative { color: var(--nx-neg) !important; }

/* Selectores segmentados y pestañas */
html:not(.live-stealth-root) body:not(.live-stealth) :is(.summary-currency-toggle, .stake-chart-switch, .tournament-money-toolbar nav, .tournament-tabs) { border: 1px solid rgba(15,15,20,.06); background: #ececed; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.summary-currency-toggle button, .stake-chart-switch button, .tournament-money-toolbar a, .tournament-tabs a) { color: #6b6b74; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.summary-currency-toggle button:hover, .stake-chart-switch button:hover, .tournament-money-toolbar a:hover, .tournament-tabs a:hover) { color: #111113; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.summary-currency-toggle button[aria-pressed="true"], .stake-chart-switch button.active, .tournament-money-toolbar a.active, .tournament-tabs a.active) { color: #111113; background: #ffffff; box-shadow: 0 1px 2px rgba(15,15,20,.1), 0 0 0 1px rgba(15,15,20,.05); }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.tournament-metric-grid, .tournament-money-toolbar) { background: #ffffff; border-color: rgba(15,15,20,.08); }
html:not(.live-stealth-root) body:not(.live-stealth) .tournament-metric-grid article { border-color: rgba(15,15,20,.06); }
html:not(.live-stealth-root) body:not(.live-stealth) .tournament-metric-grid span { color: #7a7a82; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.tournament-country-grid article, .quick-tournament-card) { background: #ffffff; border-color: rgba(15,15,20,.08); }
html:not(.live-stealth-root) body:not(.live-stealth) .tournament-finish-panel { background: #ffffff; border-color: rgba(15,15,20,.08); }
html:not(.live-stealth-root) body:not(.live-stealth) .tournament-finish-panel summary { color: #111113; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.tournament-advance-help) { color: #7a5200; background: #fff8e6; border-color: rgba(176,122,0,.22); }

/* Tablas */
html:not(.live-stealth-root) body:not(.live-stealth) .recent-days-head, html:not(.live-stealth-root) body:not(.live-stealth) .report-table th { color: #7a7a82; background: #fafafa; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.recent-days-row, .report-table th, .report-table td) { border-bottom-color: rgba(15,15,20,.06); }
html:not(.live-stealth-root) body:not(.live-stealth) .recent-days-row > :first-child, html:not(.live-stealth-root) body:not(.live-stealth) .report-table td:first-child { color: #111113; }
@media (hover: hover) { html:not(.live-stealth-root) body:not(.live-stealth) :is(.recent-days-row:not(.recent-days-head), .report-table tbody tr):hover { background: #fafafa; } }
html:not(.live-stealth-root) body:not(.live-stealth) .report-table th[aria-sort] button { color: #111113; }
html:not(.live-stealth-root) body:not(.live-stealth) .monthly-venues-row { background: #fafafa; }
html:not(.live-stealth-root) body:not(.live-stealth) .monthly-venue-list span { color: #6b6b74; }
html:not(.live-stealth-root) body:not(.live-stealth) .monthly-venue-toggle::before { color: #8a8a93; }

/* Sesiones */
html:not(.live-stealth-root) body:not(.live-stealth) :is(.session-row, .saved-session) { border-color: rgba(15,15,20,.08); background: #ffffff; box-shadow: 0 1px 2px rgba(15,15,20,.04); }
html:not(.live-stealth-root) body:not(.live-stealth) .saved-session > summary.session-row { background: transparent; box-shadow: none; }
@media (hover: hover) { html:not(.live-stealth-root) body:not(.live-stealth) :is(.session-list > .session-row, .saved-session):hover { border-color: rgba(15,15,20,.16); } }
html:not(.live-stealth-root) body:not(.live-stealth) .saved-session[open] { border-color: rgba(15,15,20,.18); background: #ffffff; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.session-date, .date-chip) strong { color: #111113; }
html:not(.live-stealth-root) body:not(.live-stealth) .date-chip { border-color: rgba(15,15,20,.08); background: #fafafa; }
html:not(.live-stealth-root) body:not(.live-stealth) .session-main span, html:not(.live-stealth-root) body:not(.live-stealth) .session-date span, html:not(.live-stealth-root) body:not(.live-stealth) .session-result small { color: #8a8a93; }

/* Formularios */
html:not(.live-stealth-root) body:not(.live-stealth) label, html:not(.live-stealth-root) body:not(.live-stealth) .trip-check-fieldset legend { color: #55555c; }
html:not(.live-stealth-root) body:not(.live-stealth) .form-grid > label > small { color: #8a8a93; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(input, select, textarea) { color: #111113; background-color: #ffffff; border-color: rgba(15,15,20,.13); box-shadow: 0 1px 1px rgba(15,15,20,.03); }
html:not(.live-stealth-root) body:not(.live-stealth) :is(input:not([type="checkbox"]):not([type="radio"]), textarea) { background-image: none; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(input, select, textarea):hover { border-color: rgba(15,15,20,.22); }
html:not(.live-stealth-root) body:not(.live-stealth) :is(input, select, textarea):focus { border-color: #111113; background-color: #ffffff; box-shadow: 0 0 0 4px rgba(15,15,20,.06); }
html:not(.live-stealth-root) body:not(.live-stealth) :is(input, textarea)::placeholder { color: #a1a1a8; }
html:not(.live-stealth-root) body:not(.live-stealth) select option { background: #ffffff; color: #111113; }
html:not(.live-stealth-root) body:not(.live-stealth) input:is([type="checkbox"], [type="radio"]) { accent-color: #178a55; }
html:not(.live-stealth-root) body:not(.live-stealth) select.nx-open { border-color: #111113 !important; box-shadow: 0 0 0 4px rgba(15,15,20,.06) !important; }
html:not(.live-stealth-root) body:not(.live-stealth) .search-combobox-control { border-color: rgba(15,15,20,.13); background: #ffffff; }
html:not(.live-stealth-root) body:not(.live-stealth) .search-combobox.is-open .search-combobox-control, html:not(.live-stealth-root) body:not(.live-stealth) .search-combobox-control:focus-within { border-color: #111113; background: #ffffff; box-shadow: 0 0 0 4px rgba(15,15,20,.06); }
html:not(.live-stealth-root) body:not(.live-stealth) .search-combobox-toggle { color: #6b6b74; }
html:not(.live-stealth-root) body:not(.live-stealth) .search-combobox-toggle:hover { background: rgba(15,15,20,.04); }
html:not(.live-stealth-root) body:not(.live-stealth) .search-combobox-results { border-color: rgba(15,15,20,.1); background: #ffffff; box-shadow: 0 18px 48px -12px rgba(15,15,20,.22); }
html:not(.live-stealth-root) body:not(.live-stealth) .search-combobox-option { color: #111113; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.search-combobox-option:hover, .search-combobox-option.is-active) { color: #111113; background: rgba(15,15,20,.045); }
html:not(.live-stealth-root) body:not(.live-stealth) .trip-check-list { border-color: rgba(15,15,20,.1); background: #fafafa; }
html:not(.live-stealth-root) body:not(.live-stealth) .trip-check-option:hover { background: rgba(15,15,20,.04); }
html:not(.live-stealth-root) body:not(.live-stealth) .trip-check-option strong { color: #111113; }
html:not(.live-stealth-root) body:not(.live-stealth) .region-chip-list span { color: #111113; border-color: rgba(15,15,20,.12); background: #ffffff; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.country-region-list form, .venue-fee-list form, .buyin-timeline div, .currency-line) { background: #fafafa; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.objective-card, .objective-editor-form, .resume-correction-form, .live-total-form, .stack-edit-form) { background: #fafafa; border-color: rgba(15,15,20,.08); }

/* Iniciar una sesión (antes de arrancar el reloj) */
html:not(.live-stealth-root) body:not(.live-stealth) .live-hero { background: radial-gradient(ellipse 60% 100% at 50% 0, rgba(23,138,85,.06), transparent 64%); }
html:not(.live-stealth-root) body:not(.live-stealth) .pulse-orb { background: radial-gradient(circle at 50% 30%, #ffffff, #efeff1 72%); box-shadow: 0 10px 24px -8px rgba(15,15,20,.22); }
html:not(.live-stealth-root) body:not(.live-stealth) .pulse-orb::before { background: conic-gradient(from 0deg, rgba(15,15,20,.5), rgba(15,15,20,.06) 25%, rgba(15,15,20,.28) 50%, rgba(15,15,20,.05) 75%, rgba(15,15,20,.5)); opacity: 1; }
html:not(.live-stealth-root) body:not(.live-stealth) .pulse-orb span { box-shadow: 0 0 0 6px rgba(23,138,85,.1); }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.trip-context, .quote-strip) { border-color: rgba(15,15,20,.08); background: #fafafa; }
html:not(.live-stealth-root) body:not(.live-stealth) .trip-context span { color: #8a8a93; }
html:not(.live-stealth-root) body:not(.live-stealth) .live-status.running, html:not(.live-stealth-root) body:not(.live-stealth) .live-status-dot { color: #135f3c; border-color: rgba(23,138,85,.22); background: #eaf6ef; }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.live-timer, .tournament-clock) { color: #0e0e10; }
html:not(.live-stealth-root) body:not(.live-stealth) .live-kpis, html:not(.live-stealth-root) body:not(.live-stealth) .tournament-live-kpis, html:not(.live-stealth-root) body:not(.live-stealth) .stake-stat-grid, html:not(.live-stealth-root) body:not(.live-stealth) .series-kpis { border-color: rgba(15,15,20,.08); }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.live-kpis div, .tournament-live-kpis div, .stake-stat-grid div, .series-kpis span) { border-color: rgba(15,15,20,.08); }
html:not(.live-stealth-root) body:not(.live-stealth) :is(.timer-mode-toggle, .objective-editor summary) { color: #111113; background: rgba(15,15,20,.05); }
html:not(.live-stealth-root) body:not(.live-stealth) .objective-card strong { color: var(--nx-pos); }

/* Viajes y reportes */
html:not(.live-stealth-root) body:not(.live-stealth) .trip-group-card { background: linear-gradient(#ffffff, #ffffff) padding-box, linear-gradient(rgba(15,15,20,.16), rgba(15,15,20,.16)) border-box; }
html:not(.live-stealth-root) body:not(.live-stealth) .chart-fullscreen-button { color: #55555c; border-color: rgba(15,15,20,.1); background: #ffffff; }
html:not(.live-stealth-root) body:not(.live-stealth) .chart-fullscreen-button:hover { color: #111113; border-color: rgba(15,15,20,.2); background: #fafafa; }
html:not(.live-stealth-root) body:not(.live-stealth) .chart-fullscreen-button b { color: #111113; }
html:not(.live-stealth-root) body:not(.live-stealth) .report-chart-tooltip { color: #111113; border-color: rgba(15,15,20,.1); background: rgba(255,255,255,.97); box-shadow: 0 14px 36px -10px rgba(15,15,20,.25); }
html:not(.live-stealth-root) body:not(.live-stealth) .chart-tooltip-close:hover { background: rgba(15,15,20,.05); }
html:not(.live-stealth-root) body:not(.live-stealth) .ath-status { background: rgba(15,15,20,.05); }
html:not(.live-stealth-root) body:not(.live-stealth) .ath-status.is-current { color: #135f3c; background: #eaf6ef; }
html:not(.live-stealth-root) body:not(.live-stealth) .chart-ath-summary { border-color: rgba(176,122,0,.25); background: #fffbef; }
html:not(.live-stealth-root) body:not(.live-stealth) .ath-summary-heading > strong, html:not(.live-stealth-root) body:not(.live-stealth) .chart-series-legend .legend-ath { color: #a26a00; }
html:not(.live-stealth-root) body:not(.live-stealth) .chart-card:fullscreen, html:not(.live-stealth-root) body:not(.live-stealth) .chart-card.is-chart-expanded { background: #f5f5f4; }

/* Gráficos: colores fijos del JS adaptados a fondo claro */
html:not(.live-stealth-root) .chart-host [stroke="#1a1a1c"] { stroke: var(--nx-pos); }
html:not(.live-stealth-root) .chart-host [fill="#1a1a1c"] { fill: var(--nx-pos); }
html:not(.live-stealth-root) .chart-host [stroke="rgba(255,255,255,.09)"] { stroke: rgba(15,15,20,.08); }
html:not(.live-stealth-root) .chart-host circle[fill="#f3f3f4"] { fill: #ffffff; }
html:not(.live-stealth-root) .chart-host .domain, html:not(.live-stealth-root) .chart-host .tick line { stroke: rgba(15,15,20,.08); }
html:not(.live-stealth-root) .chart-host [stroke="#ffc86a"] { stroke: #d08a10; }
html:not(.live-stealth-root) .chart-host [fill="#ffc86a"] { fill: #e3a33a; }
html:not(.live-stealth-root) .chart-host [stroke="#ffdf57"] { stroke: #c9920a; }
html:not(.live-stealth-root) .chart-host [fill="#ffdf57"] { fill: #d9a20c; }
html:not(.live-stealth-root) .chart-host [stroke="#65a6ff"] { stroke: #2f7de1; }
html:not(.live-stealth-root) .chart-host [fill="#65a6ff"] { fill: #2f7de1; }
html:not(.live-stealth-root) .profit-ath-label { fill: #a26a00; }
html:not(.live-stealth-root) .chart-series-legend .legend-ev, html:not(.live-stealth-root) .chart-series-legend .legend-net { color: #2f7de1; }
html:not(.live-stealth-root) .chart-series-legend :is(.legend-session, .legend-trend) { color: #c27c0e; }
html:not(.live-stealth-root) .tip-dot.ev { background: #2f7de1; }
html:not(.live-stealth-root) .tournament-stack-chart :is(path, circle)[stroke="#33df8a"] { stroke: var(--nx-pos); }
html:not(.live-stealth-root) .tournament-stack-chart path[fill="rgba(51,223,138,.11)"] { fill: rgba(23,138,85,.1); }
html:not(.live-stealth-root) .tournament-stack-chart circle[fill="#11221c"] { fill: #ffffff; }
html:not(.live-stealth-root) .tournament-country-grid article > em { color: #a26a00; }

/* Diálogos y avisos */
html:not(.live-stealth-root) body:not(.live-stealth) .app-confirm-dialog { color: #111113; border: 1px solid rgba(15,15,20,.1); background: #ffffff; box-shadow: 0 30px 80px -20px rgba(15,15,20,.35); }
html:not(.live-stealth-root) body:not(.live-stealth) .app-confirm-dialog h2 { color: #111113; }
html:not(.live-stealth-root) body:not(.live-stealth) .app-confirm-dialog p { color: #55555c; }
html:not(.live-stealth-root) body:not(.live-stealth) .app-confirm-dialog::backdrop { background: rgba(15,15,20,.35); }
html:not(.live-stealth-root) body:not(.live-stealth) .app-confirm-icon { color: #111113; background: #f3f3f4; }
html:not(.live-stealth-root) body:not(.live-stealth) .app-confirm-cancel { color: #111113; background: #ffffff; border-color: rgba(15,15,20,.14); }
html:not(.live-stealth-root) body:not(.live-stealth) .app-confirm-dialog.is-danger .app-confirm-accept { color: #fff; border-color: #c23a45; background: #c23a45; }
html:not(.live-stealth-root) body:not(.live-stealth) .live-feedback { color: #111113; border-color: rgba(15,15,20,.1); background: rgba(255,255,255,.97); box-shadow: 0 16px 40px -12px rgba(15,15,20,.3); }
html:not(.live-stealth-root) body:not(.live-stealth) .feedback-mark { color: #fff; background: var(--nx-pos); }
html:not(.live-stealth-root) body:not(.live-stealth) .live-feedback.error .feedback-mark { color: #fff; background: var(--nx-neg); }
html:not(.live-stealth-root) body:not(.live-stealth) .feedback-close { color: #6b6b74; }
html:not(.live-stealth-root) body:not(.live-stealth) .feedback-close:hover { background: rgba(15,15,20,.05); }

/* Barra inferior del celular */
@media (max-width: 820px) {
    html:not(.live-stealth-root) body:not(.live-stealth) .mobile-nav { border: 1px solid rgba(15,15,20,.08); background: rgba(255,255,255,.92); box-shadow: 0 12px 36px -8px rgba(15,15,20,.22); }
    html:not(.live-stealth-root) body:not(.live-stealth) .mobile-nav a { color: #8a8a93; }
    html:not(.live-stealth-root) body:not(.live-stealth) .mobile-nav a.active { color: #111113; }
    html:not(.live-stealth-root) body:not(.live-stealth) .mobile-nav .new-button span { color: #fff; border: 1px solid #111113; background: #111113; }
}
html:not(.live-stealth-root) body:not(.live-stealth) :is(a, button, summary):focus-visible { outline-color: rgba(15,15,20,.6); }

/* Selector (panel/menú de selects) en claro */
html:not(.live-stealth-root) .nx-select { color: #111113; }
html:not(.live-stealth-root) .nx-select.is-sheet::backdrop { background: rgba(15,15,20,.32); }
html:not(.live-stealth-root) .nx-panel { background: #ffffff; border-color: rgba(15,15,20,.1); }
html:not(.live-stealth-root) .nx-select.is-pop .nx-panel { box-shadow: 0 18px 48px -12px rgba(15,15,20,.25), 0 2px 6px rgba(15,15,20,.06); }
html:not(.live-stealth-root) .nx-select.is-sheet .nx-panel { box-shadow: 0 -14px 44px rgba(15,15,20,.16); }
html:not(.live-stealth-root) .nx-option { color: #3a3a40; }
html:not(.live-stealth-root) .nx-option.is-active, html:not(.live-stealth-root) .nx-select.is-sheet .nx-option.is-active { color: #111113; background: rgba(15,15,20,.045); }
html:not(.live-stealth-root) .nx-option[aria-selected="true"] { color: #111113; }
html:not(.live-stealth-root) .nx-option[aria-selected="true"]::after { border-color: #178a55; }
html:not(.live-stealth-root) .nx-option.is-placeholder:not([aria-selected="true"]) { color: #8a8a93; }
html:not(.live-stealth-root) .nx-option[aria-disabled="true"] { color: #b4b4ba; }
html:not(.live-stealth-root) .nx-group, html:not(.live-stealth-root) .nx-empty { color: #8a8a93; }
html:not(.live-stealth-root) .nx-grip { background: rgba(15,15,20,.16); }
html:not(.live-stealth-root) .nx-close { color: #55555c; background: #f1f1f2; }
html:not(.live-stealth-root) .nx-search input { color: #111113; background: #f5f5f6; border-color: rgba(15,15,20,.08); }
html:not(.live-stealth-root) .nx-search input:focus { border-color: #111113; }
html:not(.live-stealth-root) .nx-search input::placeholder { color: #a1a1a8; }
html:not(.live-stealth-root) .nx-search input::-webkit-search-cancel-button { filter: none; }
@media (hover: hover) { html:not(.live-stealth-root) .nx-close:hover { color: #111113; background: #e8e8ea; } }

/* ── Reportes: títulos de sección (todas las opciones). En escritorio no hay líneas: el espacio ya separa las áreas. ── */
html:not(.live-stealth-root) { --rp-global: #4a4fd8; --rp-global-soft: #eef0ff; --rp-stake: #0f8f82; --rp-stake-soft: #e3f4f1; --rp-stake-ink: #0b6e64; }
html:not(.live-stealth-root) body:not(.live-stealth) .report-group { margin-top: 30px; }
html:not(.live-stealth-root) body:not(.live-stealth) .report-group-heading, html:not(.live-stealth-root) body:not(.live-stealth) .venue-stake-section > .section-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 16px; margin: 0 0 16px; }
html:not(.live-stealth-root) body:not(.live-stealth) .report-group-heading h2, html:not(.live-stealth-root) body:not(.live-stealth) .venue-stake-section > .section-heading h2 { margin: 0; color: #0e0e10; font-size: 26px; font-weight: 650; letter-spacing: -.025em; line-height: 1.15; }
html:not(.live-stealth-root) body:not(.live-stealth) .report-group-heading > span { color: #6b6b74; font-size: 13px; font-weight: 600; }
html:not(.live-stealth-root) body:not(.live-stealth) .venue-stake-section { margin-top: 36px; }
html:not(.live-stealth-root) body:not(.live-stealth) .venue-stake-section > .section-heading > div > span { display: block; margin-top: 5px; }
html:not(.live-stealth-root) body:not(.live-stealth) .venue-stake-section > .section-heading > span { color: #6b6b74; font-size: 13px; font-weight: 650; }
html:not(.live-stealth-root) body:not(.live-stealth) .report-group .chart-heading h2, html:not(.live-stealth-root) body:not(.live-stealth) .stake-card-heading h3 { color: #0e0e10; font-size: 20px; font-weight: 650; letter-spacing: -.02em; line-height: 1.2; }
html:not(.live-stealth-root) body:not(.live-stealth) .stake-card-heading h3 { margin: 6px 0 4px; }
html:not(.live-stealth-root) body:not(.live-stealth) .stake-card-heading > strong { font-size: 19px; }
@media (max-width: 520px) {
    html:not(.live-stealth-root) body:not(.live-stealth) .report-group-heading h2, html:not(.live-stealth-root) body:not(.live-stealth) .venue-stake-section > .section-heading h2 { font-size: 22px; }
    html:not(.live-stealth-root) body:not(.live-stealth) .report-group .chart-heading h2, html:not(.live-stealth-root) body:not(.live-stealth) .stake-card-heading h3 { font-size: 18px; }
    html:not(.live-stealth-root) body:not(.live-stealth) .venue-stake-section > .section-heading { flex-direction: column; align-items: flex-start; gap: 6px; }
}

/* Desglose anual: la proyección es una fila más, mismo formato */
html:not(.live-stealth-root) body:not(.live-stealth) [data-report-yearly] .yearly-current td { padding-bottom: 3px; border-bottom-color: transparent; }
html:not(.live-stealth-root) body:not(.live-stealth) [data-report-yearly] .yearly-projection td { padding-top: 3px; color: #6b6b74; }
@media (hover: hover) { html:not(.live-stealth-root) body:not(.live-stealth) [data-report-yearly] .yearly-current:hover, html:not(.live-stealth-root) body:not(.live-stealth) [data-report-yearly] .yearly-current:hover + .yearly-projection { background: #fafafa; } % [data-report-yearly] .yearly-projection:hover { background: transparent; } }
html:not(.live-stealth-root) body:not(.live-stealth) [data-report-yearly] .yearly-projection td:nth-child(2) { color: #111113; animation: summary-live-blink 1.6s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { html:not(.live-stealth-root) body:not(.live-stealth) [data-report-yearly] .yearly-projection td:nth-child(2) { animation: none; } }
@media (max-width: 520px) {
    html:not(.live-stealth-root) body:not(.live-stealth) [data-report-yearly] .report-table th, html:not(.live-stealth-root) body:not(.live-stealth) [data-report-yearly] .report-table td { padding-inline: 5px; font-size: 12px; }
    html:not(.live-stealth-root) body:not(.live-stealth) [data-report-yearly] .report-table th { font-size: 8.5px; letter-spacing: .04em; line-height: 1.3; white-space: normal; }
    html:not(.live-stealth-root) body:not(.live-stealth) [data-report-yearly] .report-table td { font-variant-numeric: tabular-nums; }
}
@media (max-width: 360px) {
    html:not(.live-stealth-root) body:not(.live-stealth) [data-report-yearly] .report-table th, html:not(.live-stealth-root) body:not(.live-stealth) [data-report-yearly] .report-table td { padding-inline: 3px; }
    html:not(.live-stealth-root) body:not(.live-stealth) [data-report-yearly] .report-table td { font-size: 11px; }
    html:not(.live-stealth-root) body:not(.live-stealth) [data-report-yearly] .report-table th { font-size: 8px; letter-spacing: .02em; }
}
/* Variante 1 · Línea fina + punto (solo celular; la línea va en el margen, sin mover el contenido) */
@media (max-width: 820px) {
    html:not(.live-stealth-root) body:not(.live-stealth) .report-group { position: relative; }
    html:not(.live-stealth-root) body:not(.live-stealth) .stake-drilldown-card:not(.is-chart-expanded):not(:fullscreen) { position: relative; overflow: visible; }
    html:not(.live-stealth-root) body:not(.live-stealth) .report-group::before { content: ''; position: absolute; left: -10px; top: 4px; bottom: 0; width: 2px; border-radius: 2px; background: var(--rp-global); }
    html:not(.live-stealth-root) body:not(.live-stealth) .stake-drilldown-card:not(.is-chart-expanded):not(:fullscreen)::before { content: ''; position: absolute; left: -10px; top: 8px; bottom: 8px; width: 2px; border-radius: 2px; background: var(--rp-stake); }
    html:not(.live-stealth-root) body:not(.live-stealth) .report-group-heading h2::before, html:not(.live-stealth-root) body:not(.live-stealth) .venue-stake-section > .section-heading h2::before { content: ''; display: inline-block; width: 8px; height: 8px; margin: 0 9px 4px 0; border-radius: 50%; vertical-align: middle; background: var(--rp-global); }
    html:not(.live-stealth-root) body:not(.live-stealth) .venue-stake-section > .section-heading h2::before { background: var(--rp-stake); }
    html:not(.live-stealth-root) body:not(.live-stealth) .stake-card-heading .eyebrow { color: var(--rp-stake-ink); }
}

/* Gastos en ARS (sedes de Argentina): casillas de la sede en una fila y equivalente bajo "Gastos". */
.venue-fee-list .venue-switches { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px 14px; }
.live-kpis div small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }

/* Mes: selector de mes, totales del mes y días sin sesiones atenuados. */
.month-heading { flex-wrap: wrap; }
.month-switch { display: flex; align-items: center; gap: 4px; min-width: 0; }
.month-switch h2 { min-width: 9.5ch; text-align: center; }
.month-switch a, .month-switch > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; color: var(--muted); font-size: 22px; line-height: 1; text-decoration: none; }
.month-switch > span { opacity: .3; }
.month-switch a:hover { background: rgba(127,127,135,.12); color: inherit; }
.month-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 16px; }
.month-stats .stat-card { min-height: 112px; }
.recent-days-row.is-empty { min-height: 40px; padding-block: 8px; color: var(--muted); opacity: .55; }
.nav-calendar { width: 1em; height: 1em; display: block; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nav-calendar .nav-calendar-dot { fill: currentColor; stroke: none; }
@media (max-width: 820px) {
    .month-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .month-stats .stat-card { min-height: 100px; }
}

/* Mes: proyección de horas y EV a fin de mes (month.js). */
.month-projection { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.month-chart-card .chart-heading { align-items: flex-end; }
.month-projection-figure { display: grid; justify-items: end; gap: 2px; text-align: right; }
.month-projection-figure strong { font-size: 26px; font-weight: 650; letter-spacing: -.02em; line-height: 1.1; font-variant-numeric: tabular-nums; white-space: nowrap; }
.month-projection-figure small { color: var(--muted); font-size: 11px; white-space: nowrap; }
.month-chart-host { min-height: 230px; }
.month-chart text { font-family: inherit; }
.month-grid .tick line { stroke: var(--line); }
.month-grid text, .month-axis text { fill: var(--muted); font-size: 10px; }
.month-area { stroke: none; }
.month-area-hours { fill: rgba(23,138,85,.10); }
.month-area-ev { fill: rgba(47,125,225,.10); }
.month-line { fill: none; stroke-width: 2.4; }
.month-line-hours, .month-dot-hours { stroke: #178a55; }
.month-line-ev, .month-dot-ev { stroke: #2f7de1; }
.month-dot { fill: var(--surface); stroke-width: 2.5; }
.month-projection-line { stroke-width: 2; stroke-dasharray: 6 6; stroke-linecap: round; }
.month-projection-line.month-projection-hours { stroke: #178a55; }
.month-projection-line.month-projection-ev { stroke: #2f7de1; }
circle.month-projection-end { fill: var(--surface); stroke-width: 2; }
circle.month-projection-end.month-projection-hours { stroke: #178a55; }
circle.month-projection-end.month-projection-ev { stroke: #2f7de1; }
.month-projection-label { fill: var(--text); font-size: 12px; font-weight: 750; }
.month-day-bar { fill: rgba(23,138,85,.32); }
.month-rest-dot { fill: #b9b9c0; }
.month-today { stroke: var(--muted); stroke-opacity: .35; stroke-dasharray: 2 3; }
.month-today-label { fill: var(--muted); font-size: 10px; font-weight: 700; }
.chart-series-legend .legend-month-actual, .chart-series-legend .legend-month-projection { color: #178a55; }
.chart-series-legend .legend-month-ev, .chart-series-legend .legend-month-ev-projection { color: #2f7de1; }
.chart-series-legend :is(.legend-month-projection, .legend-month-ev-projection)::before { height: 2px; background: repeating-linear-gradient(90deg, currentColor 0 5px, transparent 5px 9px); }
.chart-series-legend .legend-month-day { color: rgba(23,138,85,.55); }
.chart-series-legend .legend-month-day::before { width: 5px; height: 10px; border-radius: 1.5px; }
.chart-series-legend .legend-month-rest { color: #9a9aa2; }
.chart-series-legend .legend-month-rest::before { width: 6px; height: 6px; border-radius: 50%; background: #b9b9c0; }
@media (max-width: 1100px) { .month-projection { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 820px) {
    .month-chart-card { padding: 16px 14px; }
    .month-projection-figure strong { font-size: 22px; }
}
.month-line-result { stroke: #178a55; }
.month-dot-result { stroke: #178a55; }
.month-dot-result.is-negative { stroke: #d4434e; }
.month-zero { stroke: var(--muted); stroke-opacity: .35; }
.chart-series-legend .legend-month-result { color: #178a55; }

/* Objetivo "Horas del día": horas : minutos en dos casillas. */
input.is-split-source { display: none !important; }
.duration-split { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; }
.duration-split[hidden] { display: none; }
.duration-split input { text-align: center; font-variant-numeric: tabular-nums; }
.duration-colon { color: var(--muted); font-size: 20px; font-weight: 700; line-height: 1; }
.objective-input-helper { grid-column: 1 / -1; }
.objective-input-helper[hidden] { display: none; }

/* Mes v2: barras por día (eje izq.) + total del mes (eje der.); totales reales arriba, proyección en la nota. */
.month-figure-pair { display: flex; gap: 18px; }
.month-chart-note { margin: 2px 0 8px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.month-chart-note strong { color: var(--text); font-weight: 750; }
.chart-series-legend em { font-style: normal; opacity: .6; font-size: 10px; }
.month-axis-title { fill: var(--muted); font-size: 9.5px; font-weight: 700; }
.month-axis-right text { fill: var(--muted); font-size: 10px; }
.month-day-bar { fill: rgba(23,138,85,.30); }
.month-ev-bar { fill: rgba(47,125,225,.38); }
.month-result-bar { fill: rgba(23,138,85,.45); }
.month-result-bar.is-negative { fill: rgba(212,67,78,.45); }
.month-area { display: none; }
.chart-series-legend .legend-month-ev-day { color: rgba(47,125,225,.75); }
.chart-series-legend .legend-month-result-day { color: rgba(23,138,85,.75); }
.chart-series-legend :is(.legend-month-ev-day, .legend-month-result-day)::before { width: 5px; height: 10px; border-radius: 1.5px; }
@media (max-width: 820px) {
    .month-figure-pair { gap: 12px; }
    .month-chart-card .chart-heading { align-items: flex-start; }
}
/* Días de descanso en la tabla del mes: fila gris claro (hoy sin jugar no cuenta como descanso). */
.recent-days-table .recent-days-row.is-rest { opacity: 1; background: #ececee; color: #8a8a93; }
.recent-days-table .recent-days-row.is-rest > strong { color: #6b6b74; font-weight: 600; }
html:not(.live-stealth-root) body:not(.live-stealth) .recent-days-table .recent-days-row.is-rest > :first-child { color: #6b6b74; }
@media (hover: hover) { html:not(.live-stealth-root) body:not(.live-stealth) .recent-days-table .recent-days-row.is-rest:hover { background: #e6e6e8; } }
/* Mes multimoneda: desglose chico con banderas bajo Resultado y EV (en USD). */
.month-currency-breakdown { margin-top: 10px; padding-top: 9px; display: grid; gap: 4px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11.5px; font-variant-numeric: tabular-nums; }
.month-currency-breakdown span { display: flex; align-items: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.month-currency-breakdown b { font-weight: 650; color: var(--text); margin-right: 4px; }
.month-currency-breakdown b.positive { color: #178a55; }
.month-currency-breakdown b.negative { color: #d4434e; }
.month-currency-breakdown .flag { width: 15px; margin-right: 6px; }
.month-stats .stat-card:has(.month-currency-breakdown) { justify-content: flex-start; }
/* Mes: el EV siempre en azul (resultados siguen verde/rojo). */
html:not(.live-stealth-root) body:not(.live-stealth) .month-section .month-ev-card > strong,
html:not(.live-stealth-root) body:not(.live-stealth) .month-section .month-ev-card .month-currency-breakdown b,
html:not(.live-stealth-root) body:not(.live-stealth) .month-section .month-ev-card .summary-native-line strong,
html:not(.live-stealth-root) body:not(.live-stealth) .month-section .recent-days-row:not(.recent-days-head) > :last-child strong { color: #2f7de1; }
/* Mes: el gráfico de horas en amarillo suave (verde queda solo para resultado ganador). */
.month-day-bar { fill: rgba(232,190,72,.42); }
.month-line-hours, .month-dot-hours { stroke: #d6a326; }
.month-projection-line.month-projection-hours, circle.month-projection-end.month-projection-hours { stroke: #d6a326; }
.chart-series-legend .legend-month-actual, .chart-series-legend .legend-month-projection { color: #b88a14; }
.chart-series-legend .legend-month-day { color: rgba(214,163,38,.75); }

/* Reportes: "Filtrar por" + valor (reemplaza sede/presets/período/agrupar). */
.report-picker { margin-bottom: 16px; padding: 16px 18px; }
.report-picker-form { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr) auto; gap: 12px; align-items: end; }
.report-picker-form [hidden] { display: none !important; }
.report-picker-form.is-loading { opacity: .6; pointer-events: none; }
.report-flag-select { position: relative; display: block; }
.report-flag-select > .flag { position: absolute; z-index: 1; left: 14px; top: 50%; width: 20px; margin: 0; transform: translateY(-50%); pointer-events: none; }
.report-flag-select select { padding-left: 44px; }
.report-currency-switch { margin-top: 12px; display: inline-flex; padding: 3px; gap: 2px; border: 1px solid var(--line); border-radius: 10px; background: #ececed; }
.report-currency-switch a { padding: 6px 12px; border-radius: 7px; color: #6b6b74; font-size: 12px; font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; }
.report-currency-switch a.active { color: #111113; background: #fff; box-shadow: 0 1px 2px rgba(15,15,20,.1); }
.report-currency-switch .flag { width: 15px; margin-right: 6px; }
.nx-option .nx-flag { width: 20px; margin-right: 10px; flex: 0 0 auto; }
@media (max-width: 820px) {
    .report-picker { padding: 14px; }
    .report-picker-form { grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); gap: 10px; }
    .report-picker-form .button { grid-column: 1 / -1; }
}
.nx-option:has(.nx-flag) { justify-content: flex-start; }
.nx-option:has(.nx-flag) > span { flex: 1 1 auto; min-width: 0; }

/* Reportes Lifetime: hourly por mes en cada año. */
.month-hourly-card { margin-top: 16px; }
.month-hourly-host { min-height: 260px; }
.month-hourly-legend .legend-year { color: var(--text); font-weight: 650; }
.month-hourly-legend .legend-year::before { width: 10px; height: 10px; border-radius: 3px; background: var(--year-color); }
.month-hourly-hit { fill: transparent; cursor: pointer; }
.month-hourly-selected { fill: rgba(59,68,168,.07); }
.month-hourly-detail { margin-top: 6px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); display: grid; gap: 8px; }
.month-hourly-detail > strong { font-size: 14px; }
.month-hourly-detail > small { color: var(--muted); }
.month-hourly-rows { display: grid; gap: 4px; }
.month-hourly-row { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto 44px; align-items: center; gap: 8px; padding: 5px 8px; border-radius: 8px; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.month-hourly-row b { font-weight: 700; }
.month-hourly-row b.positive { color: #178a55; }
.month-hourly-row b.negative { color: #d4434e; }
.month-hourly-row small { color: var(--muted); text-align: right; }
.month-hourly-row em { font-style: normal; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; text-align: right; }
.month-hourly-row.is-best { background: rgba(23,138,85,.08); }
.month-hourly-row.is-best em { color: #178a55; }
.month-hourly-row.is-worst { background: rgba(212,67,78,.07); }
.month-hourly-row.is-worst em { color: #d4434e; }
.month-hourly-year { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; }
.month-hourly-year::before { content: ''; width: 9px; height: 9px; border-radius: 3px; background: var(--year-color); }
/* Hourly acumulado mes a mes: líneas por año + horas del mes (barras suaves, eje der.). */
.month-hourly-line { fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.month-hourly-line.is-current { stroke-width: 3; }
.month-hourly-dot.is-selected { fill: var(--surface); }
.month-hours-bar { opacity: .26; }
.month-hourly-legend .legend-hours { color: var(--muted); }
.month-hourly-legend .legend-hours::before { width: 6px; height: 11px; border-radius: 1.5px; background: #9aa0ad; opacity: .5; }
.month-hourly-row { grid-template-columns: 54px minmax(0, 1fr) auto 42px; }
.month-hourly-hours { display: grid; gap: 1px; justify-items: end; }
.month-hourly-hours span { display: inline-flex; gap: 6px; align-items: baseline; white-space: nowrap; }
.month-hourly-hours i { font-style: normal; font-size: 9.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; opacity: .7; }

/* Selects con info (sede/país/región): nombre + segunda línea + horas a la derecha. */
.nx-option.has-meta, .nx-option:has(.nx-text) { justify-content: flex-start; }
.nx-option .nx-text { flex: 1 1 auto; min-width: 0; display: grid; gap: 2px; white-space: normal; }
.nx-option .nx-main { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nx-option .nx-sub { color: #8a8a93; font-size: 11.5px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nx-option .nx-meta { flex: 0 0 auto; margin-left: auto; padding: 3px 8px; border-radius: 999px; background: rgba(15,15,20,.05); color: #55555d; font-size: 11.5px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.nx-option[aria-selected="true"] .nx-meta { background: rgba(23,138,85,.1); color: #178a55; }
.nx-select.is-sheet .nx-option:has(.nx-text) { min-height: 60px; padding-block: 8px; }
.nx-select.is-pop .nx-option:has(.nx-text) { min-height: 46px; padding-block: 5px; }
.nx-option:has(.nx-text) .nx-flag { margin-right: 12px; }
.nx-option > span.nx-meta, .nx-option:has(.nx-flag) > span.nx-meta { flex: 0 0 auto; margin-left: 10px; overflow: visible; }
.nx-option:has(.nx-flag) > span.nx-text { flex: 1 1 auto; }

/* Datos de la sesión: tiempo en pausa (solo lectura). */
.live-time-off { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 2px 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; }
.live-time-off > span { font-size: 12px; font-weight: 700; color: var(--muted); }
.live-time-off > strong { font-size: 18px; font-variant-numeric: tabular-nums; }
.live-time-off > small { grid-column: 1 / -1; color: var(--muted); font-size: 11px; }
.live-stealth .live-time-off { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.02); }
.live-stealth .live-time-off > span { color: #a1a1aa; letter-spacing: .12em; text-transform: uppercase; font-size: 10.5px; }
.live-stealth .live-time-off > strong { color: #f4f4f5; }
.live-stealth .live-time-off > small { color: #71717a; }
/* Mes: la proyección es una línea día a día (no una recta hasta fin de mes). */
path.month-projection-line { fill: none; stroke-dasharray: 5 4; }
/* Puntos chicos: proyección rellena sin borde; punto de hoy más fino. */
circle.month-projection-end { stroke-width: 0; }
circle.month-projection-end.month-projection-hours { fill: #d6a326; }
circle.month-projection-end.month-projection-ev { fill: #2f7de1; }
.month-dot { stroke-width: 1.8; }

/* Mes: cuadro con los datos del día tocado. */
.month-chart-host { position: relative; }
.month-hit { fill: transparent; cursor: crosshair; touch-action: pan-y; }
.month-guide { stroke: var(--muted); stroke-opacity: .45; stroke-width: 1; }
.month-tip { position: absolute; z-index: 3; min-width: 168px; max-width: calc(100% - 8px); padding: 10px 12px; display: grid; gap: 4px; pointer-events: none; border: 1px solid rgba(15,15,20,.1); border-radius: 11px; background: rgba(255,255,255,.97); box-shadow: 0 14px 36px -10px rgba(15,15,20,.28); font-size: 11.5px; font-variant-numeric: tabular-nums; }
.month-tip[hidden] { display: none; }
.month-tip strong { font-size: 13px; margin-bottom: 2px; }
.month-tip span { display: flex; justify-content: space-between; gap: 14px; }
.month-tip em { font-style: normal; color: var(--muted); }
.month-tip b { font-weight: 700; white-space: nowrap; }
.month-tip .tone-day, .month-tip .tone-total, .month-tip .tone-projection { color: #b88a14; }
.month-tip .tone-ev { color: #2f7de1; }
.month-tip .tone-positive { color: #178a55; }
.month-tip .tone-negative { color: #d4434e; }
/* Mes: promedio diario de horas (violeta, eje izquierdo). */
.month-average-line { fill: none; stroke: #7457c9; stroke-width: 2.2; stroke-linejoin: round; stroke-linecap: round; }
.month-average-dot { fill: #7457c9; }
.chart-series-legend .legend-month-average { color: #7457c9; }
.month-tip .tone-average { color: #7457c9; }

/* Mes: sedes donde se jugó en el mes. */
.month-venues { margin-bottom: 16px; padding: 6px 0; }
.month-venues-head { display: flex; justify-content: space-between; align-items: baseline; padding: 12px 18px 8px; }
.month-venues-head h2 { margin: 0; font-size: 16px; }
.month-venues-head span { color: var(--muted); font-size: 12px; }
.month-venue { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 11px 18px; color: inherit; text-decoration: none; border-top: 1px solid var(--line); }
.month-venue:first-of-type { border-top: 0; }
a.month-venue:hover { background: rgba(15,15,20,.03); }
.month-venue-flag .flag { width: 22px; margin: 0; }
.month-venue-name { display: grid; gap: 2px; min-width: 0; }
.month-venue-name strong { font-size: 14px; font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.month-venue-name em { font-style: normal; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; margin-left: 4px; }
.month-venue-name small, .month-venue-stats small { color: var(--muted); font-size: 11.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.month-venue-stats { display: grid; gap: 2px; justify-items: end; text-align: right; font-variant-numeric: tabular-nums; }
.month-venue-stats b { font-size: 14px; font-weight: 700; }
.month-venue-stats .positive { color: #178a55; }
.month-venue-stats .negative { color: #d4434e; }
.month-venue { grid-template-columns: 24px minmax(0, 1fr) auto; row-gap: 8px; }
.month-venue-sessions { color: var(--muted); font-size: 11.5px; white-space: nowrap; }
.month-venue-metrics { grid-column: 2 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.month-venue-metrics > span { display: grid; gap: 1px; min-width: 0; }
.month-venue-metrics em { font-style: normal; color: var(--muted); font-size: 9.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.month-venue-metrics b { font-size: 13.5px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.month-venue-metrics .positive { color: #178a55; }
.month-venue-metrics .negative { color: #d4434e; }
.month-venue-metrics .tone-ev { color: #2f7de1; }
.month-venue-metrics .tone-hours { color: #b88a14; }
@media (max-width: 380px) {
    .month-venue { padding-inline: 14px; column-gap: 10px; }
    .month-venue-metrics { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 8px; }
    .month-venue-metrics em { font-size: 9px; letter-spacing: .03em; }
    .month-venue-metrics b { font-size: 12.5px; overflow: visible; }
}
.month-venue-metrics .tone-hours { color: var(--text); }

/* Mes > Próximos viajes: viaje futuro. Cuenta regresiva a la derecha, sobre las fechas (jerarquía tipográfica, sin color). */
.month-trip .trip-when { display: grid; justify-items: end; gap: 3px; line-height: 1.15; }
.month-trip .trip-when b { color: #111113; font-size: 13px; font-weight: 650; letter-spacing: -.01em; }

/* Cierre en vivo: resultado previsto mientras se escribe "Cobrado al salir" (sin guardar). */
.finish-result { display: grid; align-content: end; gap: 6px; padding: 0 2px 10px; min-width: 0; }
.finish-result span { color: #8b8b93; font-size: 10.5px; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; }
.finish-result strong { color: #f2f2f3; font-size: 22px; font-weight: 700; letter-spacing: -.01em; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.finish-result small { color: #8b8b93; font-size: 12px; font-variant-numeric: tabular-nums; min-height: 1em; }
.finish-result.is-pos strong { color: #56c78f; }
.finish-result.is-neg strong { color: #e5737c; }

/* Gráfico Hourly: escala ajustada al tramo estable (picos iniciales recortados) + "Ver todo". */
.hourly-zoom-toggle { display: block; margin: 0 0 4px auto; padding: 5px 11px; border: 1px solid rgba(17,17,19,.12); border-radius: 999px; background: transparent; color: #55555c; font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.hourly-zoom-toggle:hover { background: rgba(17,17,19,.04); }
.chart-host .hourly-warmup-zone { fill: rgba(17,17,19,.035); }
.chart-host .hourly-warmup-label { fill: #8a8a93; font-size: 10px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.chart-host .hourly-peak-label { font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums; }

/* Reportes: botones Swing 500h / 1.000h y lista de rachas. */
.swing-controls { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 6px; }
.swing-controls button { padding: 7px 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--text); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.swing-controls button[aria-pressed="true"] { border-color: #111113; background: #111113; color: #fff; }
.swing-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 6px 0 4px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; }
.swing-summary[hidden] { display: none; }
.swing-summary .swing-empty { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 12px; }
.swing-column { display: grid; gap: 6px; min-width: 0; }
.swing-column > strong { font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.swing-column > span { display: grid; gap: 1px; padding-left: 12px; border-left: 3px solid var(--swing-color); }
.swing-column b { font-size: 13px; font-variant-numeric: tabular-nums; color: var(--swing-color); }
.swing-column small { color: var(--muted); font-size: 11px; }
.swing-line { stroke-width: 3; stroke-linecap: round; }
.swing-end { stroke: var(--surface); stroke-width: 1.5; }
.swing-column small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 400px) {
    .swing-summary { grid-template-columns: minmax(0, 1fr); gap: 14px; }
}
/* Swings: un botón que despliega las opciones de horas. */
.swing-controls { flex-direction: column; align-items: flex-start; }
.swing-toggle { display: inline-flex; align-items: center; gap: 8px; }
.swing-toggle i { font-style: normal; font-size: 10px; transition: transform .15s ease; }
.swing-toggle[aria-expanded="true"] i { transform: rotate(180deg); }
.swing-controls .swing-toggle.is-active { border-color: #111113; background: #111113; color: #fff; }
.swing-options { display: flex; flex-wrap: wrap; gap: 6px; }
.swing-options[hidden] { display: none; }
.swing-options button { padding: 6px 11px; font-size: 12px; }
.swing-options button:disabled { opacity: .35; cursor: default; }
/* Swings: colores más marcados (intensidad = qué tan bueno/malo). */
.swing-halo { stroke: #fff; stroke-width: 7; stroke-linecap: round; opacity: .9; }
.swing-line { stroke-width: 4; }
.swing-end { r: 4; stroke: #fff; stroke-width: 2; }
.swing-column b { color: var(--swing-text, var(--swing-color)); }
.swing-column > span { border-left-width: 4px; }
/* Swings: tocar una racha muestra las ciudades del tramo. */
.swing-row { cursor: pointer; border-radius: 0 8px 8px 0; transition: background .15s ease; }
.swing-row[aria-expanded="true"] { background: rgba(15,15,20,.035); }
@media (hover: hover) { .swing-row:hover { background: rgba(15,15,20,.035); } }
.swing-row:focus-visible { outline: 2px solid var(--swing-color); outline-offset: 2px; }
.swing-more { font-style: normal; font-size: 11px; font-weight: 700; color: var(--swing-text, var(--muted)); opacity: .85; }
.swing-places { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 2px; }
.swing-places[hidden] { display: none; }
.swing-place { display: inline-flex; align-items: center; gap: 6px; padding: 4px 9px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); font-size: 12px; }
.swing-place .flag { width: 16px; margin: 0; }
.swing-place b { font-weight: 650; }
.swing-place small { color: var(--muted); font-size: 11px; }
.swing-layer .is-dim { opacity: .18; }
.swing-line.is-focus { stroke-width: 5.5; }
.swing-column .swing-place b { color: var(--text); font-size: 12.5px; }
/* Swings en celulares: una columna, filas sin estirar y ciudades como lista simple (sin globitos). */
.swing-column { align-content: start; }
.swing-places { display: grid; gap: 0; margin: 6px 0 2px; padding: 0; }
.swing-place { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 5px 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: none; }
.swing-place:first-child { border-top: 0; }
.swing-place .flag { width: 18px; }
.swing-column .swing-place b { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.swing-place small { font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--muted); }

/* Swings: vuelven las 2 columnas en celular; fila abierta sin fondo/caja (solo la lista de ciudades). */
.swing-row, .swing-row[aria-expanded="true"] { background: none; border-radius: 0; }
@media (hover: hover) { .swing-row:hover { background: none; } .swing-row:hover .swing-more { text-decoration: underline; } }
.swing-summary { gap: 10px 14px; }
.swing-place { gap: 6px; grid-template-columns: 16px minmax(0, 1fr) auto; }
.swing-place .flag { width: 16px; }
.swing-column .swing-place b { font-size: 12.5px; }
.swing-place small { font-size: 11.5px; }
/* Swings: recorrido cronológico del tramo (inicio → ciudades → fin). */
.swing-places { position: relative; display: grid; gap: 0; margin: 8px 0 2px; padding-left: 14px; }
.swing-places::before { content: ''; position: absolute; left: 4px; top: 8px; bottom: 8px; width: 2px; border-radius: 2px; background: var(--line); }
.swing-edge, .swing-step { position: relative; padding: 5px 0; }
.swing-edge::before, .swing-step::before { content: ''; position: absolute; left: -14px; top: 11px; width: 10px; height: 10px; border-radius: 50%; background: var(--surface); border: 2px solid var(--swing-color); box-sizing: border-box; }
.swing-step::before { width: 8px; height: 8px; left: -13px; top: 12px; border: 0; background: #b9b9c0; }
.swing-edge { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; font-size: 12px; }
.swing-column .swing-edge b { color: var(--text); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.swing-edge span { color: var(--text); font-weight: 600; }
.swing-edge small { color: var(--muted); font-variant-numeric: tabular-nums; }
.swing-step { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1px 8px; align-items: center; border-top: 1px solid var(--line); }
.swing-step-place { display: flex; align-items: center; gap: 6px; min-width: 0; }
.swing-step-place .flag { width: 16px; margin: 0; }
.swing-column .swing-step-place b { color: var(--text); font-size: 12.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.swing-step-dates { grid-column: 1; color: var(--muted); font-size: 11px; white-space: nowrap; }
.swing-step-hours { grid-column: 2; grid-row: 1 / span 2; font-size: 12.5px; font-variant-numeric: tabular-nums; color: var(--text); white-space: nowrap; }
/* Recorrido a todo el ancho, debajo de las dos columnas. */
.swing-detail { grid-column: 1 / -1; }
.swing-detail .swing-places { margin: 2px 0 0; padding: 12px 0 2px 16px; border-top: 1px solid var(--line); }
.swing-detail .swing-places::before { top: 52px; }
.swing-detail-title { margin: 0 0 4px -16px; font-size: 13px; }
.swing-detail-title b { color: var(--swing-text, var(--text)); }
.swing-detail-title span { color: var(--muted); }
.swing-detail .swing-step-place b { color: var(--text); font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.swing-detail .swing-edge b { color: var(--text); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.swing-step { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; }
.swing-step-dates { grid-column: 2; grid-row: 1; text-align: left; }
.swing-step-hours { grid-column: 3; grid-row: 1; }
@media (max-width: 460px) {
    .swing-step { grid-template-columns: minmax(0, 1fr) auto; }
    .swing-step-dates { grid-column: 1; grid-row: 2; }
    .swing-step-hours { grid-column: 2; grid-row: 1 / span 2; }
}
/* Gráficos por horas: líneas verticales en cada marca y tramo todavía sin jugar sombreado. */
.hours-unplayed { fill: rgba(15,15,20,.035); }
.hours-unplayed-label { fill: var(--muted); font-size: 10px; font-weight: 600; }
html:not(.live-stealth-root) .chart-host .tick line { stroke: rgba(15,15,20,.07); }

/* Datos de la sesión: fecha "15-oct-26 3:02 PM" encima del selector nativo + EV del stake. */
.date-display-input { position: relative; display: block; }
.date-display-input input { color: transparent; -webkit-text-fill-color: transparent; }
.date-display-input input::-webkit-datetime-edit { color: transparent; }
.date-display-text { position: absolute; left: 14px; right: 44px; top: 50%; transform: translateY(-50%); pointer-events: none; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-weight: 600; color: var(--text); }
.live-stealth .date-display-text { color: #f4f4f5; }
/* Ocultar el texto nativo del selector (la pantalla negra le pone color propio) y usar la tipografía del campo. */
.date-display-input input[type="datetime-local"], .live-stealth .date-display-input input[type="datetime-local"] { color: transparent !important; -webkit-text-fill-color: transparent !important; }
.date-display-input input::-webkit-datetime-edit, .date-display-input input::-webkit-datetime-edit-fields-wrapper,
.date-display-input input::-webkit-datetime-edit-text, .date-display-input input::-webkit-datetime-edit-month-field,
.date-display-input input::-webkit-datetime-edit-day-field, .date-display-input input::-webkit-datetime-edit-year-field,
.date-display-input input::-webkit-datetime-edit-hour-field, .date-display-input input::-webkit-datetime-edit-minute-field,
.date-display-input input::-webkit-datetime-edit-ampm-field { color: transparent !important; -webkit-text-fill-color: transparent !important; background: transparent !important; }
.date-display-text { left: 15px; font-family: inherit; font-size: 17px; font-weight: 600; letter-spacing: normal; text-transform: none; }
/* Nuevo stake: SB · BB · Straddle en una fila. */
.three-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
/* Mes · Horas: un color por eje. Izquierdo (h/día: barras + promedio) violeta; derecho (h mes: total + proyección) dorado. */
.month-chart-hours .month-day-bar { fill: rgba(116,87,201,.24); }
.chart-series-legend .legend-month-day { color: rgba(116,87,201,.8); }
.month-chart-hours .month-grid .tick text, .month-chart-hours .month-axis-title-left { fill: #7457c9; }
.month-chart-hours .month-axis-right .tick text, .month-chart-hours .month-axis-title-right { fill: #b88a14; }
/* Reportes · viaje: detalle por día con el formato de Mes; los días con varias sesiones se despliegan. */
.trip-day > summary { list-style: none; cursor: pointer; }
.trip-day > summary::-webkit-details-marker { display: none; }
.trip-day > summary .trip-day-count::after { content: ' \25BE'; color: var(--muted); font-size: .85em; }
.trip-day[open] > summary .trip-day-count::after { content: ' \25B4'; }
.trip-day[open] { border-bottom: 1px solid rgba(15,15,20,.06); }
.trip-days-table > .trip-day:last-child { border-bottom: 0; }
.trip-days-table > .trip-day:last-child:not([open]) > summary { border-bottom: 0; }
.recent-days-row.trip-day-session { min-height: 40px; padding-block: 8px; background: #fafafa; }
html:not(.live-stealth-root) body:not(.live-stealth) .recent-days-row.trip-day-session > .trip-day-session-label { grid-column: 1 / span 2; min-width: 0; display: grid; gap: 1px; color: var(--text); }
.trip-day-session-label b { font-weight: 650; }
.trip-day-session-label small { color: #6b6b74; font-size: 10.5px; font-weight: 500; line-height: 1.3; }
.trip-days-month { padding: 14px 16px 6px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; border-bottom: 1px solid rgba(15,15,20,.06); }
.trip-days-table > .recent-days-row > :first-child, .trip-days-table > .trip-day > summary > :first-child { white-space: nowrap; }
@media (max-width: 720px) { .trip-days-month { padding-inline: 9px; } }
html:not(.live-stealth-root) body:not(.live-stealth) .trip-days-table .recent-days-row:not(.recent-days-head) > :last-child strong { color: #2f7de1; }
/* Mes: título centrado entre las dos flechas; debajo, chips con el mes y los viajes de ese mes. */
.month-heading .month-switch { flex: 1 1 100%; justify-content: space-between; }
.month-heading .month-switch h2 { flex: 1; min-width: 0; text-align: center; font-size: 24px; font-weight: 700; letter-spacing: -.02em; }
.month-heading .month-chips { flex: 1 1 100%; min-width: 0; }
.month-chips { display: flex; gap: 8px; margin: 2px 0 2px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.month-chips::-webkit-scrollbar { display: none; }
.month-chip { flex: none; display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 14px; border: 1px solid rgba(15,15,20,.12); border-radius: 999px; background: #fff; color: #2a2a30; font-size: 13.5px; font-weight: 600; white-space: nowrap; text-decoration: none; }
.month-chip .flag { width: 20px; height: auto; margin: 0; border-radius: 3px; }
.month-chip.is-active { background: #111113; border-color: #111113; color: #fff; }
@media (hover: hover) { .month-chip:not(.is-active):hover { border-color: rgba(15,15,20,.25); } }
html:not(.live-stealth-root) body:not(.live-stealth) .month-chips .month-chip { color: #2a2a30; font-size: 13.5px; font-weight: 600; letter-spacing: 0; text-transform: none; }
html:not(.live-stealth-root) body:not(.live-stealth) .month-chips .month-chip.is-active { color: #fff; }
/* Flechas del mes: dos botones redondos iguales; sin mes anterior/siguiente quedan tenues en su lugar. */
.month-switch { gap: 8px; }
html:not(.live-stealth-root) body:not(.live-stealth) .month-switch > a, html:not(.live-stealth-root) body:not(.live-stealth) .month-switch > span { flex: none; width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(15,15,20,.12); border-radius: 50%; background: #fff; color: #1c1c20; box-shadow: 0 1px 2px rgba(15,15,20,.06); opacity: 1; text-decoration: none; transition: background .15s ease, border-color .15s ease; }
.month-switch svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (hover: hover) { html:not(.live-stealth-root) body:not(.live-stealth) .month-switch > a:hover { background: #f4f4f5; border-color: rgba(15,15,20,.2); } }
html:not(.live-stealth-root) body:not(.live-stealth) .month-switch > span.is-disabled { opacity: .3; box-shadow: none; }
/* Mes · Hourly: hourly acumulado (verde) y EV/h acumulado (azul); ocupa todo el ancho en escritorio. */
.month-projection > .month-hourly-card { grid-column: 1 / -1; }
.month-hourly-path { fill: none; stroke-width: 2.4; stroke-linejoin: round; stroke-linecap: round; }
.month-hourly-path.month-hourly-result { stroke: #178a55; }
.month-hourly-path.month-hourly-ev { stroke: #2f7de1; stroke-width: 2; }
.month-hourly-dot.month-hourly-result { fill: #178a55; }
.month-hourly-dot.month-hourly-ev { fill: #2f7de1; }
.month-hourly-clip { fill: #6b6b74; font-size: 10.5px; font-weight: 700; }
.month-hourly-end { fill: #178a55; }
.month-hourly-end.is-negative { fill: #d4434e; }
.chart-series-legend .legend-month-hourly { color: #178a55; }
.month-tip .tone-muted { color: var(--muted); }
.month-chart-empty { margin: 24px 0; color: var(--muted); text-align: center; }
html:not(.live-stealth-root) body:not(.live-stealth) .month-hourly-card [data-month-total="evHourly"] { color: #2f7de1; }
/* Sesión en vivo: mismo tamaño de número en tiempo, % y EV; la moneda va chica al lado del número. */
.live-timer.showing-money, .live-stealth .live-timer.showing-money { font-size: inherit; letter-spacing: inherit; }
.live-timer.showing-money { font-size: clamp(48px, 10vw, 82px); letter-spacing: -.06em; }
.live-stealth .live-timer.showing-money { font-size: clamp(58px, 17vw, 96px); letter-spacing: -.055em; }
.live-timer .counter-unit { margin-left: .22em; font-size: .26em; font-weight: 650; letter-spacing: .06em; vertical-align: .18em; opacity: .6; }
.live-stealth .live-timer .counter-unit { color: #c9c9cf; background: none; -webkit-background-clip: border-box; background-clip: border-box; }
/* Barras de EV y resultado (opción 3): tonos oscuros sólidos, iguales en Mes, Reportes y Torneos. */
.month-ev-bar { fill: #2f6fd0; }
.month-result-bar { fill: #147a4b; }
.month-result-bar.is-negative { fill: #c43a45; }
.chart-series-legend .legend-month-ev-day { color: #2f6fd0; }
.chart-series-legend .legend-month-result-day { color: #147a4b; }
/* Las líneas del gráfico de EV quedan legibles sobre las barras oscuras. */
.month-chart-ev .month-line, .month-chart-ev .month-projection-line { filter: drop-shadow(0 0 .6px #fff) drop-shadow(0 0 .6px #fff) drop-shadow(0 0 .6px #fff); }
/* Mes · viaje recortado al mes: botón al viaje completo en Reportes. */
.month-heading .month-full-trip { flex: 1 1 100%; }
html:not(.live-stealth-root) body:not(.live-stealth) .month-full-trip { display: inline-flex; align-items: center; gap: 6px; width: fit-content; max-width: 100%; margin-top: 2px; padding: 7px 13px; border: 1px solid rgba(15,15,20,.12); border-radius: 999px; background: #fff; color: #2a2a30; font-size: 12.5px; font-weight: 600; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (hover: hover) { html:not(.live-stealth-root) body:not(.live-stealth) .month-full-trip:hover { border-color: rgba(15,15,20,.25); } }
html:not(.live-stealth-root) body:not(.live-stealth) .month-heading a.month-full-trip { color: #2a2a30; font-size: 12.5px; font-weight: 600; letter-spacing: 0; text-transform: none; }
/* BI (buy-in estándar): métricas en Mes y en cada stake de Reportes; lista en Ajustes. */
.bi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 14px; }
.bi-grid > div { display: grid; gap: 3px; min-width: 0; }
.bi-grid span { color: var(--muted); font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.bi-grid span em { font-style: normal; font-weight: 600; letter-spacing: 0; text-transform: none; color: #b88a14; }
.bi-grid strong { font-size: 17px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bi-grid strong small { margin-left: 2px; color: var(--muted); font-size: 11px; font-weight: 600; }
.bi-note { margin: 8px 0 0; color: var(--muted); font-size: 11px; }
.bi-empty { margin: 0; color: var(--muted); font-size: 12.5px; }
.month-bi-card { margin-bottom: 16px; padding: 16px 18px; }
.month-bi-card .month-venues-head { padding: 0 0 12px; }
.stake-bi { padding: 12px 0; border-top: 1px solid rgba(15,15,20,.06); }
html:not(.live-stealth-root) body:not(.live-stealth) .bi-list form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 10px; align-items: center; }
.bi-list form > span:first-of-type { grid-column: 1 / -1; }
.bi-list form > .bi-input { grid-column: 1 / -1; justify-self: end; }
html:not(.live-stealth-root) body:not(.live-stealth) .bi-list .bi-input { display: flex !important; flex-direction: row !important; }
.bi-list form > span:first-of-type { min-width: 0; }
.bi-list form strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bi-input { display: flex; flex-wrap: nowrap; gap: 6px; align-items: center; }
html:not(.live-stealth-root) body:not(.live-stealth) .bi-input input { width: 104px; min-height: 38px; padding: 0 10px; }
html:not(.live-stealth-root) body:not(.live-stealth) .bi-input .button { min-height: 38px; padding: 0 12px; font-size: 13px; white-space: nowrap; }
@media (max-width: 720px) {
    .bi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    html:not(.live-stealth-root) body:not(.live-stealth) .bi-input input { width: 78px; }
}
/* Mes · viaje recortado: línea de tiempo del viaje completo (botón al reporte del viaje). */
html:not(.live-stealth-root) body:not(.live-stealth) .month-heading a.month-trip-line { display: flex; align-items: center; gap: 10px; width: 100%; max-width: none; padding: 9px 14px; overflow: visible; }
.month-trip-line .line-date { flex: none; color: #6b6b74; font-size: 11.5px; font-weight: 600; white-space: nowrap; }
.month-trip-line .line-track { position: relative; flex: 1; min-width: 60px; height: 10px; }
.month-trip-line .line-track::before { content: ''; position: absolute; left: -3px; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: #c9c9cf; }
.month-trip-line .line-track svg { display: block; width: 100%; height: 10px; overflow: visible; }
.month-trip-line .line-bg { fill: #e4e4e8; }
.month-trip-line .line-on { fill: #111113; }
.month-trip-line .line-arrow { flex: none; color: #8a8a93; font-size: 15px; }
.month-trip-line .line-tick { fill: #a3a3ab; }
/* Profit con rakeback: desglose debajo del total. */
.rb-split { margin: 6px 0 0; color: var(--muted); font-size: 11.5px; font-weight: 600; font-variant-numeric: tabular-nums; }
/* Sesión en vivo: el número también cambia lo que se ve. */
.live-timer.is-switchable { cursor: pointer; -webkit-tap-highlight-color: transparent; user-select: none; -webkit-user-select: none; touch-action: manipulation; }
.live-timer.is-switchable:focus-visible { outline: 1px solid rgba(255,255,255,.35); outline-offset: 6px; border-radius: 8px; }

/* Gasto con fichas: el bloque se desliza a la derecha y queda dorado; a la izquierda vuelve a efectivo. */
.expense-add[data-chip-toggle] { touch-action: pan-y; transform: translateX(var(--chip-drag, 0)); transition: transform .22s cubic-bezier(.2,.8,.2,1), border-color .25s ease, background .25s ease, box-shadow .25s ease; }
.expense-add[data-chip-toggle].is-dragging { transition: none; }
.live-stealth .expense-add.is-chips { border-color: rgba(214,170,76,.55); background: linear-gradient(180deg, #2a1f0b, #120d04); box-shadow: inset 0 1px 0 rgba(255,220,140,.08), 0 0 0 1px rgba(214,170,76,.12); }
.live-stealth .expense-add.is-chips:focus-within { border-color: rgba(236,196,104,.85); box-shadow: inset 0 1px 0 rgba(255,220,140,.1), 0 0 0 3px rgba(214,170,76,.14); }
.live-stealth .expense-add.is-chips .quick-add-field > span { background: linear-gradient(180deg, #ffe7a8 0%, #e3b75a 60%, #b58a32 100%); -webkit-background-clip: text; background-clip: text; }
.live-stealth .expense-add.is-chips .quick-add-field small { -webkit-text-fill-color: #b8964f; }
.live-stealth .expense-add.is-chips input::placeholder { color: #8c7445; }
.live-stealth .expense-add.is-chips button { color: #ffe3a3; background: radial-gradient(circle at 50% 30%, #4a3612, #1a1205 75%) padding-box, linear-gradient(145deg, rgba(255,226,150,.8), rgba(181,138,50,.35) 45%, rgba(236,196,104,.6) 70%, rgba(120,88,30,.4)) border-box; }
.live-stealth .expense-add.is-chips:focus-within button { color: #1a1205; background: radial-gradient(circle at 50% 30%, #ffe9b0, #d9ab4c 80%) padding-box, linear-gradient(145deg, #ffe9b0, #b58a32) border-box; }
body:not(.live-stealth) .expense-add.is-chips input { background: #2a1f0b; }
body:not(.live-stealth) .quick-add.expense-add.is-chips .expense-submit { color: #2a1f0b; background: #d9ab4c; }
.live-kpis .chip-kpi { color: #c9a35a; }
.live-total-form .chip-total-field { grid-column: 1 / -1; }
.live-total-form .chip-total-field textarea { height: auto; min-height: 50px; }
@media (prefers-reduced-motion: reduce) { .expense-add[data-chip-toggle] { transition: none; } }

/* Reportes: una tarjeta ocupa la fila completa en el teléfono para que las demás queden de a pares. */
@media (max-width: 820px) { .report-kpis .report-kpi-wide { grid-column: 1 / -1; } }

/* Reportes · tarjeta Profit: número grande en Space Grotesk (archivo local, OFL), Resultado vs EV y EV diff. */
@font-face { font-family: 'Space Grotesk'; font-style: normal; font-weight: 300 700; font-display: swap; src: url('fonts/space-grotesk-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
.report-kpis .profit-hero { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; gap: 0; padding: 20px 18px 18px; text-align: center; }
.profit-hero > span { letter-spacing: .16em; }
.profit-hero .profit-hero-number { margin: 8px 0 0; font-family: 'Space Grotesk', var(--nx-display, sans-serif); font-size: clamp(34px, 12vw, 54px); font-weight: 700; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.profit-hero .profit-hero-number.is-long { font-size: clamp(28px, 9vw, 44px); }
.profit-hero .profit-hero-number small { margin-left: 6px; color: #8a8a93; font-size: .34em; font-weight: 600; letter-spacing: .04em; vertical-align: .9em; }
.profit-hero .profit-hero-split { margin: 9px 0 0; color: #55555c; font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.profit-hero .profit-hero-split b { color: #2a2a30; font-weight: 700; }
.profit-hero .profit-hero-compare { width: min(100%, 560px); max-width: 560px; margin-top: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; text-align: left; }
.profit-hero .profit-hero-compare > div { min-width: 0; display: grid; gap: 6px; }
.profit-hero .profit-hero-compare em { color: #6b6b74; font-size: 10.5px; font-style: normal; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.profit-hero .profit-hero-compare b { font-family: 'Space Grotesk', var(--nx-display, sans-serif); font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.profit-hero .profit-hero-compare b.ev { color: #2f7de1; }
.profit-hero-bar { display: block; overflow: visible; }
.profit-hero-bar .track { fill: #ececef; }
.profit-hero-bar.is-positive .fill { fill: #147a4b; }
.profit-hero-bar.is-negative .fill { fill: #c43a45; }
.profit-hero-bar.is-ev .fill { fill: #2f7de1; }
.profit-hero .profit-hero-diff { margin: 14px 0 0; display: flex; align-items: center; justify-content: center; gap: 10px; }
.profit-hero .profit-hero-diff span { color: #6b6b74; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.profit-hero .profit-hero-diff b { padding: 3px 10px; border-radius: 999px; font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
.profit-hero .profit-hero-diff b.positive { background: rgba(20,122,75,.1); }
.profit-hero .profit-hero-diff b.negative { background: rgba(196,58,69,.1); }
.profit-hero :is(.positive) { color: #147a4b; }
.profit-hero :is(.negative) { color: #c43a45; }
/* Tarjeta Profit: una barra partida — arriba Resultado (verde/rojo), abajo EV (azul), misma escala. */
.profit-hero .profit-hero-split-bar { width: min(100%, 560px); margin-top: 18px; display: grid; gap: 8px; text-align: left; }
.profit-hero .profit-hero-split-bar p { margin: 0; display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.profit-hero .profit-hero-split-bar em { color: #6b6b74; font-size: 10.5px; font-style: normal; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.profit-hero .profit-hero-split-bar b { font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.profit-hero .profit-hero-split-bar b.ev { color: #2f7de1; }
.profit-hero .profit-hero-split-bar svg { display: block; }
.profit-hero .profit-hero-split-bar .track { fill: #f0f0f3; }
.profit-hero .profit-hero-split-bar .is-positive .result { fill: #147a4b; }
.profit-hero .profit-hero-split-bar .is-negative .result { fill: #c43a45; }
.profit-hero .profit-hero-split-bar rect.ev { fill: #2f7de1; }
.profit-hero .profit-hero-split-bar .seam { stroke: #fff; stroke-width: 1.5; }
.profit-hero .profit-hero-split-bar svg { overflow: visible; }
.profit-hero .profit-hero-split-bar .zero { stroke: #2a2a30; stroke-width: 2; stroke-linecap: round; }
/* Mes: la tarjeta Profit ocupa toda la fila; desglose por moneda chico; Horas · Hourly · Sesiones · Promedio de a pares. */
.month-stats .profit-hero { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; padding: 20px 18px 18px; text-align: center; }
.month-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.profit-hero .profit-hero-split-bar b small { color: #8a8a93; font-size: 10px; font-weight: 600; }
.profit-hero .profit-hero-currencies { margin: 8px 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 14px; color: #6b6b74; font-size: 11.5px; font-weight: 600; font-variant-numeric: tabular-nums; }
.profit-hero .profit-hero-split-bar .profit-hero-currencies { justify-content: flex-end; margin: -2px 0 0; }
.profit-hero .profit-hero-currencies span { display: inline-flex; align-items: center; white-space: nowrap; }
.profit-hero .profit-hero-currencies b { margin-right: 4px; font-size: 11.5px; font-weight: 700; color: #2a2a30; }
.profit-hero .profit-hero-currencies.is-ev b { color: #2f7de1; }
.profit-hero .profit-hero-split-bar b.ev span { color: inherit; }
.profit-hero .profit-hero-currencies .flag { width: 15px; margin-right: 6px; }
.profit-hero .profit-hero-note { margin-top: 6px; color: #8a8a93; font-size: 10.5px; }
@media (max-width: 820px) { .month-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
