:root {
    --bg: #f5f7fb;
    --surface: #ffffff;
    --surface-2: #eef2f7;
    --sidebar: #10141d;
    --text: #151a24;
    --muted: #697386;
    --border: #dfe5ee;
    --accent: #4f7cff;
    --accent-2: #7c5cff;
    --success: #1da36a;
    --danger: #dc4c64;
    --shadow: 0 18px 45px rgba(21, 28, 44, .08);
}

html[data-theme="dark"] {
    --bg: #0b0d12;
    --surface: #141821;
    --surface-2: #1b202b;
    --sidebar: #080a0f;
    --text: #f6f7fb;
    --muted: #929bad;
    --border: #292f3c;
    --accent: #7d9cff;
    --accent-2: #a183ff;
    --success: #42c88a;
    --danger: #ff6f86;
    --shadow: 0 18px 45px rgba(0, 0, 0, .28);
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body {
    margin: 0;
    min-height: 100vh;
    background: var(--bg);
    color: var(--text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
code {
    padding: .15rem .38rem;
    border-radius: .35rem;
    background: var(--surface-2);
}

.app-shell { display: grid; grid-template-columns: 270px minmax(0, 1fr); min-height: 100vh; }
.sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    padding: 28px 22px;
    background: var(--sidebar);
    color: #fff;
    border-right: 1px solid rgba(255,255,255,.06);
}
.brand, .login-brand { display: flex; align-items: center; gap: 12px; }
.brand strong, .login-brand strong { display: block; font-size: 1.05rem; }
.brand small, .login-brand span { display: block; color: #8d97aa; font-size: .77rem; }
.brand-mark {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: #fff;
    font-weight: 800;
    box-shadow: 0 10px 24px rgba(90, 104, 255, .24);
}
.brand-mark.large { width: 50px; height: 50px; border-radius: 15px; }
.nav { margin-top: 42px; display: grid; gap: 7px; }
.nav-heading {
    margin: 24px 12px 8px;
    color: #596274;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.nav-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 13px;
    border-radius: 10px;
    color: #aab2c1;
    font-size: .92rem;
}
.nav-link.active { background: rgba(125, 156, 255, .13); color: #fff; }
.nav-link.disabled { opacity: .58; cursor: default; }
.sidebar-footer { margin-top: auto; border-top: 1px solid rgba(255,255,255,.08); padding-top: 18px; }
.user-mini { display: flex; gap: 10px; align-items: center; min-width: 0; }
.user-mini > span:last-child { min-width: 0; }
.user-mini strong, .user-mini small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-mini strong { font-size: .84rem; }
.user-mini small { color: #7f899a; font-size: .7rem; }
.avatar {
    width: 34px; height: 34px; display: grid; place-items: center;
    border-radius: 50%; background: #252b37; color: #fff; font-weight: 700;
}
.link-button {
    margin-top: 14px; padding: 0; border: 0; background: transparent;
    color: #8d97aa; cursor: pointer; font-size: .78rem;
}
.main-area { min-width: 0; }
.topbar {
    min-height: 98px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 22px 38px;
    border-bottom: 1px solid var(--border);
    background: color-mix(in srgb, var(--bg) 88%, transparent);
    backdrop-filter: blur(14px);
}
.topbar h1 { margin: 2px 0 0; font-size: 1.55rem; }
.eyebrow {
    margin: 0;
    color: var(--accent);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.theme-toggle, .icon-button {
    width: 42px; height: 42px; border-radius: 12px;
    border: 1px solid var(--border); background: var(--surface); color: var(--text);
    cursor: pointer;
}
.content { padding: 34px 38px 60px; max-width: 1500px; margin: 0 auto; }
.hero-row {
    display: flex; justify-content: space-between; align-items: flex-end; gap: 30px;
    padding: 30px 0 34px;
}
.hero-row h2 { margin: 7px 0 10px; max-width: 700px; font-size: clamp(1.7rem, 3vw, 2.7rem); line-height: 1.12; }
.hero-text { max-width: 720px; color: var(--muted); }
.muted { color: var(--muted); }
.phase-badge {
    min-width: 190px; padding: 16px 18px; border: 1px solid var(--border);
    border-radius: 14px; background: var(--surface);
}
.phase-badge span, .phase-badge strong { display: block; }
.phase-badge span { color: var(--muted); font-size: .72rem; }
.phase-badge strong { margin-top: 4px; font-size: .88rem; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.metric-card, .panel {
    border: 1px solid var(--border);
    background: var(--surface);
    border-radius: 16px;
    box-shadow: var(--shadow);
}
.metric-card { padding: 21px; }
.metric-card span, .metric-card small, .metric-card strong { display: block; }
.metric-card span { color: var(--muted); font-size: .78rem; }
.metric-card strong { margin: 9px 0 5px; font-size: 1.65rem; letter-spacing: -.03em; }
.metric-card small { color: var(--muted); font-size: .7rem; }
.dashboard-grid { display: grid; grid-template-columns: 1.6fr .9fr; gap: 18px; margin-top: 18px; }
.panel { padding: 24px; }
.panel-header { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.panel h3 { margin: 6px 0 0; font-size: 1.25rem; }
.status-dot { color: var(--success); font-size: .75rem; }
.progress-list { margin-top: 26px; display: grid; gap: 16px; }
.progress-item { display: grid; grid-template-columns: 34px 1fr; gap: 14px; align-items: start; }
.progress-item > span {
    display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%;
    background: var(--surface-2); color: var(--muted); font-size: .75rem; font-weight: 700;
}
.progress-item.done > span { background: color-mix(in srgb, var(--success) 16%, transparent); color: var(--success); }
.progress-item.next > span { background: color-mix(in srgb, var(--accent) 16%, transparent); color: var(--accent); }
.progress-item strong, .progress-item small { display: block; }
.progress-item strong { font-size: .88rem; }
.progress-item small { margin-top: 3px; color: var(--muted); font-size: .75rem; }
.accent-panel {
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--accent-2) 23%, transparent), transparent 42%),
        var(--surface);
}
.accent-panel p { color: var(--muted); }
.clean-list { padding-left: 18px; color: var(--muted); }

.alert { padding: 12px 14px; border-radius: 10px; font-size: .86rem; }
.alert.error { background: color-mix(in srgb, var(--danger) 13%, transparent); color: var(--danger); border: 1px solid color-mix(in srgb, var(--danger) 35%, transparent); }
.alert.success { background: color-mix(in srgb, var(--success) 13%, transparent); color: var(--success); border: 1px solid color-mix(in srgb, var(--success) 35%, transparent); }

.guest-body {
    display: grid;
    min-height: 100vh;
    background:
        radial-gradient(circle at 12% 18%, rgba(99, 89, 255, .2), transparent 28%),
        radial-gradient(circle at 90% 82%, rgba(43, 121, 255, .15), transparent 30%),
        var(--bg);
}
.guest-shell { display: grid; place-items: center; padding: 28px; }
.login-panel {
    width: min(1080px, 100%);
    min-height: 650px;
    display: grid;
    grid-template-columns: 1.08fr .92fr;
    grid-template-rows: auto 1fr;
    gap: 40px;
    padding: 48px;
    border: 1px solid var(--border);
    border-radius: 24px;
    background: color-mix(in srgb, var(--surface) 94%, transparent);
    box-shadow: 0 30px 90px rgba(0,0,0,.22);
}
.login-brand { grid-column: 1 / -1; align-self: start; }
.login-copy { align-self: center; padding-right: 32px; }
.login-copy h1 { margin: 0 0 18px; font-size: clamp(2.4rem, 5vw, 4.5rem); line-height: .98; letter-spacing: -.055em; }
.login-copy p { max-width: 470px; color: var(--muted); }
.login-form-wrap {
    align-self: center;
    padding: 34px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: var(--surface);
}
.login-form-wrap h2 { margin: 6px 0; font-size: 1.8rem; }
.stack { display: grid; gap: 16px; margin-top: 25px; }
label span { display: block; margin-bottom: 7px; color: var(--muted); font-size: .78rem; font-weight: 650; }
input {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid var(--border);
    border-radius: 10px;
    outline: none;
    background: var(--bg);
    color: var(--text);
}
input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 17%, transparent); }
.primary-button {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 12px 16px; border: 0; border-radius: 10px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: #fff; cursor: pointer; font-weight: 750;
}
.primary-button.inline { width: auto; }
.security-note { display: block; margin-top: 20px; color: var(--muted); font-size: .68rem; }
.installer-shell { display: grid; place-items: center; min-height: 100vh; padding: 30px; }
.installer-card {
    width: min(600px, 100%); padding: 34px;
    border: 1px solid var(--border); border-radius: 20px;
    background: var(--surface); box-shadow: var(--shadow);
}
.installer-card h1 { margin-bottom: 8px; }
.installer-card .login-brand { margin-bottom: 32px; }
.install-success { text-align: center; padding: 20px 0; }
.warning-text { margin-top: 25px; color: var(--danger); font-size: .8rem; }
.simple-message { text-align: center; padding: 60px 20px; }
.simple-message .brand-mark { margin: 0 auto; width: 78px; }
.mobile-only { display: none; }

@media (max-width: 1000px) {
    .metric-grid { grid-template-columns: repeat(2, 1fr); }
    .dashboard-grid { grid-template-columns: 1fr; }
    .login-panel { grid-template-columns: 1fr; min-height: auto; }
    .login-copy { display: none; }
}
@media (max-width: 760px) {
    .app-shell { display: block; }
    .sidebar {
        position: fixed; z-index: 30; left: 0; top: 0;
        width: 270px; transform: translateX(-105%); transition: transform .22s ease;
    }
    .sidebar.open { transform: translateX(0); }
    .mobile-only { display: inline-grid; place-items: center; }
    .topbar { padding: 18px 20px; gap: 12px; }
    .topbar > div { margin-right: auto; }
    .content { padding: 24px 20px 45px; }
    .hero-row { display: block; }
    .phase-badge { margin-top: 20px; }
    .login-panel { padding: 26px; }
}
@media (max-width: 520px) {
    .metric-grid { grid-template-columns: 1fr; }
    .topbar h1 { font-size: 1.2rem; }
    .eyebrow { font-size: .6rem; }
}


/* Fase 2 */
textarea, select {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid var(--border);
    border-radius: 10px;
    outline: none;
    background: var(--bg);
    color: var(--text);
    font: inherit;
}
textarea:focus, select:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 17%, transparent);
}
.page-intro, .builder-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    margin: 8px 0 28px;
}
.page-intro h2, .builder-header h2 { margin: 0 0 7px; font-size: clamp(1.7rem, 3vw, 2.4rem); }
.page-intro p, .builder-header p { margin: 0; color: var(--muted); max-width: 760px; }
.crud-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(320px, .75fr);
    gap: 20px;
    align-items: start;
}
.form-panel { position: sticky; top: 118px; }
.form-panel > h3 { margin-top: 6px; }
.stack.compact { gap: 13px; }
.form-grid { display: grid; gap: 12px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 5px; }
.secondary-button {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 11px 15px; border: 1px solid var(--border); border-radius: 10px;
    background: var(--surface-2); color: var(--text); font-weight: 700; font-size: .84rem;
}
.secondary-button.centered { width: 100%; }
.check-control { display: flex; align-items: center; gap: 9px; cursor: pointer; }
.check-control input { width: 17px; height: 17px; margin: 0; }
.check-control span { margin: 0; color: var(--text); }
.inline-checks { display: flex; gap: 20px; flex-wrap: wrap; }
.inline-checks.vertical { display: grid; gap: 8px; }
.empty-state {
    margin-top: 22px; padding: 34px 20px; text-align: center;
    border: 1px dashed var(--border); border-radius: 13px; color: var(--muted);
}
.table-wrap { overflow-x: auto; margin-top: 20px; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th, .data-table td { padding: 14px 12px; border-bottom: 1px solid var(--border); text-align: left; font-size: .82rem; }
.data-table th { color: var(--muted); font-size: .69rem; text-transform: uppercase; letter-spacing: .08em; }
.actions-col { width: 160px; }
.row-actions { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.row-actions form { margin: 0; }
.small-button, .icon-link {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 7px 9px; border: 1px solid var(--border); border-radius: 8px;
    background: var(--surface-2); color: var(--text); font-size: .7rem; cursor: pointer;
}
.small-button.primary-small { background: color-mix(in srgb, var(--accent) 15%, var(--surface)); color: var(--accent); border-color: color-mix(in srgb, var(--accent) 30%, var(--border)); }
.small-button.danger, .icon-link.danger { color: var(--danger); }
.icon-link { padding: 0; border: 0; background: none; }
.state {
    display: inline-flex; padding: 4px 8px; border-radius: 999px;
    font-size: .65rem; font-weight: 750;
}
.state.active { color: var(--success); background: color-mix(in srgb, var(--success) 13%, transparent); }
.state.inactive { color: var(--muted); background: var(--surface-2); }
.state.default-state { color: var(--accent); background: color-mix(in srgb, var(--accent) 13%, transparent); }
.account-grid, .template-grid { display: grid; gap: 14px; margin-top: 20px; }
.account-card, .template-card {
    padding: 19px; border: 1px solid var(--border); border-radius: 14px; background: var(--bg);
}
.account-card.default { border-color: color-mix(in srgb, var(--accent) 50%, var(--border)); }
.account-card-head, .template-title { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.account-card h3, .template-card h3 { margin: 9px 0 3px; }
.account-card p, .template-card p { margin: 0; color: var(--muted); font-size: .76rem; }
.default-mark { color: var(--accent); font-size: .65rem; font-weight: 750; }
.account-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 18px 0; }
.account-metrics div { padding: 11px; border-radius: 10px; background: var(--surface); }
.account-metrics span, .account-metrics strong { display: block; }
.account-metrics span { color: var(--muted); font-size: .65rem; }
.account-metrics strong { margin-top: 5px; font-size: .88rem; }
.template-stats {
    display: flex; gap: 8px; flex-wrap: wrap; margin: 17px 0;
}
.template-stats span, .criterion-tags span {
    padding: 4px 7px; border-radius: 7px; background: var(--surface);
    color: var(--muted); font-size: .63rem;
}
.score-ring {
    display: grid; place-items: center; flex: 0 0 auto; width: 58px; height: 58px;
    border-radius: 50%; border: 5px solid color-mix(in srgb, var(--accent) 45%, var(--border));
    font-size: .8rem;
}
.builder-header { align-items: center; }
.back-link { display: inline-block; margin-bottom: 10px; color: var(--accent); font-size: .77rem; }
.score-legend { display: flex; gap: 16px; padding: 14px 16px; border: 1px solid var(--border); border-radius: 13px; background: var(--surface); }
.score-legend > div { min-width: 90px; }
.score-legend strong, .score-legend small { display: block; }
.score-legend strong { margin: 3px 0; font-size: .76rem; }
.score-legend small { color: var(--muted); font-size: .61rem; }
.legend-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; }
.legend-dot.red { background: var(--danger); }
.legend-dot.yellow { background: #dda22e; }
.legend-dot.green { background: var(--success); }
.builder-layout {
    display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(330px, .72fr);
    gap: 20px; align-items: start;
}
.builder-canvas { display: grid; gap: 16px; }
.builder-sidebar { display: grid; gap: 16px; position: sticky; top: 118px; }
.builder-sidebar .form-panel { position: static; }
.check-section {
    border: 1px solid var(--border); border-radius: 16px; background: var(--surface); overflow: hidden;
}
.check-section > header {
    display: flex; align-items: flex-start; justify-content: space-between; gap: 20px;
    padding: 20px 22px; border-bottom: 1px solid var(--border);
}
.check-section h3 { margin: 6px 0 2px; }
.check-section header p { margin: 0; color: var(--muted); font-size: .75rem; }
.section-type {
    color: var(--accent); font-size: .64rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
}
.section-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; color: var(--muted); font-size: .65rem; }
.criteria-list { padding: 8px 18px 16px; }
.criterion-row {
    display: grid; grid-template-columns: 20px minmax(0, 1fr) auto;
    gap: 12px; align-items: center; padding: 13px 4px; border-bottom: 1px solid var(--border);
}
.criterion-row:last-child { border-bottom: 0; }
.criterion-row.disabled-row { opacity: .48; }
.fake-check { width: 16px; height: 16px; border: 1.5px solid var(--success); border-radius: 3px; }
.criterion-copy strong, .criterion-copy small { display: block; }
.criterion-copy strong { font-size: .83rem; }
.criterion-copy small { margin-top: 3px; color: var(--muted); font-size: .69rem; }
.criterion-tags { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 8px; }
.criterion-tags .required-tag { color: var(--accent); }
.criterion-tags .warning-tag { color: #dda22e; }
.criterion-tags .block-tag { color: var(--danger); }
.criteria-empty { padding: 24px; text-align: center; color: var(--muted); font-size: .78rem; }

@media (max-width: 1120px) {
    .crud-layout, .builder-layout { grid-template-columns: 1fr; }
    .form-panel, .builder-sidebar { position: static; }
}
@media (max-width: 760px) {
    .page-intro, .builder-header { display: block; }
    .score-legend { margin-top: 18px; overflow-x: auto; }
    .form-grid.two, .account-metrics { grid-template-columns: 1fr; }
    .check-section > header { display: block; }
    .section-meta { justify-content: flex-start; margin-top: 12px; }
    .criterion-row { grid-template-columns: 20px minmax(0, 1fr); }
    .criterion-row > .row-actions { grid-column: 2; }
}

.form-wide{max-width:1100px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.session-list{display:grid;gap:12px}.session-card{display:grid;grid-template-columns:1fr auto auto;gap:20px;align-items:center;padding:18px;border:1px solid var(--border);border-radius:15px;background:var(--surface);box-shadow:var(--shadow)}.session-card small,.session-card span,.trade-row span{display:block;color:var(--muted);font-size:.7rem}.session-card p{margin:4px 0 0}
.positive{color:var(--success)!important}.negative{color:var(--danger)!important}.session-hero,.trade-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}.session-hero h2,.trade-hero h2{margin:0}.session-hero p,.trade-hero p{color:var(--muted)}
.session-layout,.trade-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(340px,.75fr);gap:20px;align-items:start}.session-content,.trade-content,.session-sidebar,.trade-sidebar{display:grid;gap:18px}.session-sidebar,.trade-sidebar{position:sticky;top:118px}
.trade-list{display:grid;margin-top:18px}.trade-row{display:grid;grid-template-columns:1fr 1fr 80px 100px;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--border)}
.runtime-item{padding:12px 0;border-bottom:1px solid var(--border)}.runtime-item>strong,.runtime-item>small{display:block}.runtime-item>small{color:var(--muted);font-size:.65rem}.answer-options{display:flex;gap:6px;margin:8px 0}.answer-options input{position:absolute;opacity:0}.answer-options span{display:inline-flex;padding:5px 9px;border:1px solid var(--border);border-radius:7px;font-size:.68rem}.answer-options input:checked+span{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}
.full-button{width:100%}.danger-button{display:inline-flex;justify-content:center;padding:12px 16px;border:0;border-radius:10px;background:var(--danger);color:#fff;font-weight:750}.closed-message{text-align:center;padding:14px;border-radius:10px;background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success)}
.quality-card{min-width:170px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.quality-card span,.quality-card strong,.quality-card small{display:block}.quality-card span,.quality-card small{color:var(--muted);font-size:.67rem}.quality-card strong{font-size:1.5rem}
.state.draft,.state.planned{color:#dda22e;background:color-mix(in srgb,#dda22e 15%,transparent)}.state.open{color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,transparent)}.state.closed{color:var(--success);background:color-mix(in srgb,var(--success) 15%,transparent)}
@media(max-width:1100px){.session-layout,.trade-layout{grid-template-columns:1fr}.session-sidebar,.trade-sidebar{position:static}}@media(max-width:760px){.form-grid.three,.form-grid.four{grid-template-columns:1fr}.session-hero,.trade-hero{display:block}.quality-card{margin-top:15px}.session-card{grid-template-columns:1fr}.trade-row{grid-template-columns:1fr 70px}}


/* Flujo operativo corregido */
.market-phase{margin-bottom:20px}.phase-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.phase-heading h3{margin:5px 0}.phase-heading p{margin:0;color:var(--muted)}.phase-heading>strong{font-size:1.2rem}
.market-checklist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.market-check-item{padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--bg)}.market-check-item>strong,.market-check-item>small{display:block}.market-check-item>small{margin-top:4px;color:var(--muted);font-size:.65rem}.market-check-item>input{margin-top:8px}
.postmarket-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.postmarket-columns>div{display:grid;gap:10px}.postmarket-columns h4{margin:0}
.phase-final-action{margin-top:16px}.trade-preparation-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(360px,.7fr);gap:20px;align-items:start}.trade-preparation-checklist{position:sticky;top:118px}
.live-score span,.live-score strong{display:block}.live-score span{font-size:.65rem;color:var(--muted)}.live-score strong{font-size:1.35rem}.trade-validation-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.trade-validation-summary>div{padding:10px;border-radius:10px;background:var(--surface-2)}.trade-validation-summary span,.trade-validation-summary strong{display:block}.trade-validation-summary span{font-size:.62rem;color:var(--muted)}.trade-validation-summary strong{margin-top:4px}
@media(max-width:1050px){.trade-preparation-layout{grid-template-columns:1fr}.trade-preparation-checklist{position:static}}@media(max-width:760px){.market-checklist-grid,.postmarket-columns{grid-template-columns:1fr}.phase-heading{display:block}.phase-heading>strong{display:block;margin-top:10px}}

.trade-validation-summary.three-columns{grid-template-columns:repeat(3,1fr)}
@media(max-width:600px){.trade-validation-summary.three-columns{grid-template-columns:1fr}}


/* Imágenes antes y después del trade */
.evidence-upload-block{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.evidence-upload-block>div{grid-column:1/-1}.evidence-upload-block h4{margin:5px 0}.evidence-upload-block p{margin:0;color:var(--muted);font-size:.75rem}
.trade-image-upload{display:grid;grid-template-columns:180px minmax(220px,1fr) minmax(220px,1fr) auto;gap:10px;align-items:end;margin-top:18px}.trade-image-groups{display:grid;gap:22px;margin-top:22px}.trade-image-group h4{margin:0 0 10px}.trade-image-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.trade-image-card{margin:0;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--bg)}.trade-image-card img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:8px}.trade-image-card figcaption{padding:9px 0}.trade-image-card figcaption strong,.trade-image-card figcaption small{display:block}.trade-image-card figcaption strong{font-size:.75rem}.trade-image-card figcaption small{margin-top:3px;color:var(--muted);font-size:.65rem}
@media(max-width:1100px){.trade-image-upload{grid-template-columns:1fr 1fr}.trade-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.evidence-upload-block,.trade-image-upload,.trade-image-grid{grid-template-columns:1fr}}


/* Agrupación mensual y eliminación de sesiones */
.monthly-session-list{display:grid;gap:28px}.month-session-group{display:grid;gap:13px}.month-session-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:0 4px}.month-session-header h3{margin:4px 0 0;font-size:1.35rem}.month-preview-metrics{display:flex;gap:8px}.month-preview-metrics>div{min-width:88px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.month-preview-metrics span,.month-preview-metrics strong{display:block}.month-preview-metrics span{color:var(--muted);font-size:.6rem}.month-preview-metrics strong{margin-top:3px;font-size:.78rem}
.session-card{position:relative;display:flex!important;align-items:stretch!important;padding:0!important;gap:0!important;overflow:hidden}.session-card-link{display:grid;grid-template-columns:minmax(0,1fr) auto 110px;gap:20px;align-items:center;flex:1;padding:18px}.session-card-date strong,.session-card-date small,.session-card-status span,.session-card-status small{display:block}.session-card-date small,.session-card-status small{margin-top:4px;color:var(--muted);font-size:.68rem}.session-card-pnl{text-align:right}.session-delete-form{display:flex;align-items:center;padding:12px;border-left:1px solid var(--border);background:color-mix(in srgb,var(--danger) 4%,transparent)}.session-delete-button{padding:8px 10px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));border-radius:8px;background:transparent;color:var(--danger);font-size:.7rem;font-weight:700;cursor:pointer}.session-delete-button:hover{background:color-mix(in srgb,var(--danger) 12%,transparent)}
@media(max-width:800px){.month-session-header{display:block}.month-preview-metrics{margin-top:12px;overflow-x:auto}.session-card{display:block!important}.session-card-link{grid-template-columns:1fr auto}.session-card-pnl{grid-column:1/-1;text-align:left}.session-delete-form{border-left:0;border-top:1px solid var(--border);justify-content:flex-end}}


/* Meses desplegables */
.month-session-group{
    display:block;
    border:0;
}
.month-session-group > summary{
    list-style:none;
}
.month-session-group > summary::-webkit-details-marker{
    display:none;
}
.month-session-header{
    cursor:pointer;
    user-select:none;
    padding:14px 16px;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface);
    transition:border-color .18s ease,background .18s ease;
}
.month-session-header:hover{
    border-color:color-mix(in srgb,var(--accent) 40%,var(--border));
    background:color-mix(in srgb,var(--accent) 4%,var(--surface));
}
.month-session-group[open] .month-session-header{
    border-bottom-left-radius:0;
    border-bottom-right-radius:0;
    border-color:color-mix(in srgb,var(--accent) 28%,var(--border));
}
.month-title-area{
    display:flex;
    align-items:center;
    gap:13px;
}
.month-toggle-icon{
    display:grid;
    place-items:center;
    width:30px;
    height:30px;
    flex:0 0 auto;
    border:1px solid var(--border);
    border-radius:50%;
    color:var(--accent);
    font-size:1rem;
    transform:rotate(-90deg);
    transition:transform .2s ease;
}
.month-session-group[open] .month-toggle-icon{
    transform:rotate(0deg);
}
.month-toggle-hint{
    display:block;
    margin-top:4px;
    color:var(--muted);
    font-size:.64rem;
}
.month-session-content{
    padding:13px;
    border:1px solid var(--border);
    border-top:0;
    border-bottom-left-radius:14px;
    border-bottom-right-radius:14px;
    background:color-mix(in srgb,var(--surface) 84%,transparent);
}
.month-session-group:not([open]) .month-session-content{
    display:none;
}
@media(max-width:800px){
    .month-session-header{
        padding:13px;
    }
    .month-title-area{
        align-items:flex-start;
    }
    .month-preview-metrics{
        margin-left:43px;
    }
}


/* Fase 4.1 · Motor de métricas */
.metrics-intro{align-items:center}.metrics-period-badge{min-width:170px;padding:13px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.metrics-period-badge span,.metrics-period-badge strong{display:block}.metrics-period-badge span{color:var(--muted);font-size:.64rem}.metrics-period-badge strong{margin-top:4px}
.metrics-filter-panel{margin-bottom:20px}.metrics-filter-form{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr)) auto auto;gap:10px;align-items:end}.metrics-filter-form .primary-button,.metrics-filter-form .secondary-button{min-height:43px}
.metrics-card-grid{display:grid;gap:12px}.primary-metrics{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:26px}.compact-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.analytics-card{padding:17px;border:1px solid var(--border);border-radius:13px;background:var(--surface);box-shadow:var(--shadow)}.analytics-card span,.analytics-card strong,.analytics-card small{display:block}.analytics-card span{color:var(--muted);font-size:.68rem}.analytics-card strong{margin:7px 0 4px;font-size:1.35rem}.analytics-card small{color:var(--muted);font-size:.64rem}
.metrics-section,.metrics-table-section{margin:28px 0}.metrics-section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:12px}.metrics-section-heading h3{margin:4px 0 0}
.metrics-two-column{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:28px 0}.metric-definition-list{display:grid}.metric-definition-list>div{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid var(--border)}.metric-definition-list>div:last-child{border-bottom:0}.metric-definition-list span{color:var(--muted);font-size:.75rem}.metric-definition-list strong{text-align:right;font-size:.8rem}
.metrics-table{min-width:840px}.metrics-table td small{display:block;margin-top:3px;color:var(--muted);font-size:.62rem}.empty-table-cell{text-align:center!important;color:var(--muted);padding:28px!important}
@media(max-width:1250px){.metrics-filter-form{grid-template-columns:repeat(3,minmax(150px,1fr))}.primary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.metrics-intro{display:block}.metrics-period-badge{margin-top:15px}.metrics-filter-form{grid-template-columns:1fr 1fr}.metrics-two-column{grid-template-columns:1fr}.compact-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.metrics-filter-form,.primary-metrics,.compact-metrics{grid-template-columns:1fr}}


/* Fase 4.2 · Dashboard mensual */
.monthly-dashboard-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.monthly-dashboard-hero h2{margin:5px 0}.monthly-dashboard-hero p{margin:0;color:var(--muted)}.monthly-dashboard-selector{display:grid;grid-template-columns:190px 220px auto;gap:10px;align-items:end}
.monthly-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:18px 0 12px}.monthly-title-row h3{margin:4px 0 0;font-size:1.45rem}.monthly-title-row.compact{margin-top:28px}.monthly-title-row.compact>span{color:var(--muted);font-size:.72rem}
.monthly-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.monthly-kpi-card{padding:17px;border:1px solid var(--border);border-radius:13px;background:var(--surface);box-shadow:var(--shadow)}.monthly-kpi-card span,.monthly-kpi-card strong,.monthly-kpi-card small{display:block}.monthly-kpi-card span{color:var(--muted);font-size:.68rem}.monthly-kpi-card strong{margin:7px 0 4px;font-size:1.3rem}.monthly-kpi-card small{color:var(--muted);font-size:.64rem}
.monthly-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);gap:18px;align-items:start}.calendar-legend{display:flex;gap:10px;flex-wrap:wrap}.calendar-legend span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:.62rem}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.winner{background:var(--success)}.legend-dot.loser{background:var(--danger)}.legend-dot.flat{background:#d5a62c}
.trading-calendar{margin-top:16px}.calendar-weekdays,.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendar-weekdays{margin-bottom:7px}.calendar-weekdays span{text-align:center;color:var(--muted);font-size:.62rem;font-weight:700}.calendar-weeks{display:grid;gap:7px}.calendar-day{min-height:88px;padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--bg);display:flex;flex-direction:column;text-decoration:none}.calendar-day.empty{visibility:hidden}.calendar-day-number{font-size:.68rem;color:var(--muted)}.calendar-day strong{margin-top:auto;font-size:.78rem}.calendar-day small{margin-top:3px;color:var(--muted);font-size:.58rem}.calendar-day.winner{border-color:color-mix(in srgb,var(--success) 35%,var(--border));background:color-mix(in srgb,var(--success) 7%,var(--bg))}.calendar-day.loser{border-color:color-mix(in srgb,var(--danger) 35%,var(--border));background:color-mix(in srgb,var(--danger) 7%,var(--bg))}.calendar-day.flat{border-color:color-mix(in srgb,#d5a62c 35%,var(--border));background:color-mix(in srgb,#d5a62c 7%,var(--bg))}.calendar-day.no-session{opacity:.55}
.equity-chart-wrap{width:100%;min-height:300px;margin-top:14px}.monthly-curve-panel>.panel-header>strong{font-size:1rem}.monthly-session-table{min-width:900px}.monthly-table-section{margin-bottom:30px}
@media(max-width:1250px){.monthly-dashboard-grid{grid-template-columns:1fr}.monthly-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.monthly-dashboard-hero{display:block}.monthly-dashboard-selector{grid-template-columns:1fr 1fr;margin-top:16px}.monthly-dashboard-selector .primary-button{grid-column:1/-1}.monthly-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.monthly-dashboard-selector,.monthly-kpi-grid{grid-template-columns:1fr}.calendar-day{min-height:70px;padding:6px}.calendar-day strong{font-size:.66rem}.calendar-day small{display:none}}


/* Fase 4.3 · Análisis de metodología */
.methodology-intro{margin-bottom:20px}.methodology-filter-panel{margin-bottom:20px}.methodology-filter-form{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr)) auto auto;gap:10px;align-items:end}
.methodology-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:28px}.methodology-kpi-card{padding:17px;border:1px solid var(--border);border-radius:13px;background:var(--surface);box-shadow:var(--shadow)}.methodology-kpi-card span,.methodology-kpi-card strong,.methodology-kpi-card small{display:block}.methodology-kpi-card span{color:var(--muted);font-size:.67rem}.methodology-kpi-card strong{margin:7px 0 4px;font-size:1.3rem}.methodology-kpi-card small{color:var(--muted);font-size:.63rem}
.methodology-section{margin:30px 0}.methodology-section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:12px}.methodology-section-heading h3{margin:4px 0}.methodology-section-heading p:last-child{margin:5px 0 0;color:var(--muted);font-size:.72rem}
.quality-outcome-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.quality-outcome-card{padding:15px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.quality-outcome-card>div:first-child span,.quality-outcome-card>div:first-child strong{display:block}.quality-outcome-card>div:first-child span{color:var(--accent);font-size:.75rem;font-weight:800}.quality-outcome-card>div:first-child strong{margin-top:4px}.quality-outcome-stats{display:grid;gap:7px;margin-top:13px}.quality-outcome-stats span{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.65rem}.quality-outcome-stats strong{color:var(--text)}
.methodology-table{min-width:1180px}.methodology-table td small{display:block;margin-top:3px;color:var(--muted);font-size:.6rem}.criterion-type{display:inline-flex;padding:4px 7px;border-radius:7px;font-size:.6rem;font-weight:800}.criterion-type.block{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent)}.criterion-type.warning{color:#d8a521;background:color-mix(in srgb,#d8a521 12%,transparent)}.criterion-type.none{color:var(--muted);background:var(--surface-2)}
.methodology-two-column{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px 0}.comparison-list{display:grid}.comparison-row{display:grid;grid-template-columns:minmax(150px,1.5fr) repeat(3,minmax(90px,1fr));gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--border)}.comparison-row:last-child{border-bottom:0}.comparison-row>div:first-child strong,.comparison-row>div:first-child small{display:block}.comparison-row>div:first-child small{margin-top:3px;color:var(--muted);font-size:.62rem}.comparison-row>div:not(:first-child) span,.comparison-row>div:not(:first-child) strong{display:block}.comparison-row>div:not(:first-child) span{color:var(--muted);font-size:.58rem}.comparison-row>div:not(:first-child) strong{margin-top:3px;font-size:.72rem}
.blocking-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.blocking-impact-card{padding:16px;border:1px solid color-mix(in srgb,var(--danger) 25%,var(--border));border-radius:13px;background:color-mix(in srgb,var(--danger) 4%,var(--surface))}.blocking-impact-card h4{margin:8px 0 0}.blocking-impact-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.blocking-impact-stats>div{padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--bg)}.blocking-impact-stats span,.blocking-impact-stats strong,.blocking-impact-stats small{display:block}.blocking-impact-stats span{color:var(--muted);font-size:.6rem}.blocking-impact-stats strong{margin-top:4px}.blocking-impact-stats small{margin-top:3px;font-size:.65rem}
.exception-reason{max-width:330px;white-space:normal;line-height:1.45}.exceptions-table{min-width:1100px}
@media(max-width:1250px){.methodology-filter-form{grid-template-columns:repeat(3,minmax(150px,1fr))}.quality-outcome-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.blocking-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.methodology-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.methodology-two-column{grid-template-columns:1fr}.quality-outcome-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.methodology-filter-form,.methodology-kpi-grid,.quality-outcome-grid,.blocking-card-grid{grid-template-columns:1fr}.comparison-row{grid-template-columns:1fr 1fr}.comparison-row>div:first-child{grid-column:1/-1}}


/* Evaluación visible del cumplimiento del plan */
.plan-compliance-block{
    display:grid;
    gap:16px;
    margin-top:8px;
    padding:18px;
    border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));
    border-radius:14px;
    background:color-mix(in srgb,var(--accent) 4%,var(--surface));
}
.plan-compliance-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
}
.plan-compliance-heading h3{
    margin:5px 0;
}
.plan-compliance-heading p:last-child{
    margin:0;
    color:var(--muted);
    font-size:.74rem;
    line-height:1.5;
}
.plan-evaluation-state{
    display:inline-flex;
    flex:0 0 auto;
    padding:6px 10px;
    border-radius:999px;
    font-size:.62rem;
    font-weight:800;
}
.plan-evaluation-state.pending{
    color:#d4a72c;
    background:color-mix(in srgb,#d4a72c 13%,transparent);
}
.plan-evaluation-state.compliant{
    color:var(--success);
    background:color-mix(in srgb,var(--success) 13%,transparent);
}
.plan-evaluation-state.non-compliant{
    color:var(--danger);
    background:color-mix(in srgb,var(--danger) 13%,transparent);
}
.plan-compliance-options{
    display:grid;
    gap:10px;
    margin:0;
    padding:0;
    border:0;
}
.plan-compliance-options legend{
    margin-bottom:8px;
    font-size:.74rem;
    font-weight:800;
}
.plan-compliance-options label{
    display:flex;
    align-items:flex-start;
    gap:11px;
    padding:13px;
    border:1px solid var(--border);
    border-radius:11px;
    background:var(--bg);
    cursor:pointer;
}
.plan-compliance-options label:hover{
    border-color:color-mix(in srgb,var(--accent) 45%,var(--border));
}
.plan-compliance-options input{
    margin-top:3px;
}
.plan-compliance-options span,
.plan-compliance-options strong,
.plan-compliance-options small{
    display:block;
}
.plan-compliance-options strong{
    font-size:.75rem;
}
.plan-compliance-options small{
    margin-top:4px;
    color:var(--muted);
    font-size:.64rem;
    line-height:1.45;
}
.plan-review-guidance{
    padding:13px;
    border-radius:10px;
    background:var(--surface-2);
}
.plan-review-guidance>strong{
    display:block;
    margin-bottom:6px;
    font-size:.7rem;
}
.plan-review-guidance ul{
    margin:0;
    padding-left:18px;
    color:var(--muted);
    font-size:.65rem;
    line-height:1.6;
}
@media(max-width:650px){
    .plan-compliance-heading{
        display:block;
    }
    .plan-evaluation-state{
        margin-top:10px;
    }
}


/* Fase 4.4 · Informes */
.reports-intro{margin-bottom:20px}.report-filter-panel{margin-bottom:16px}.report-filter-form{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr)) auto;gap:10px;align-items:end}
.report-action-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.report-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.report-summary-card{padding:15px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.report-summary-card span,.report-summary-card strong{display:block}.report-summary-card span{color:var(--muted);font-size:.65rem}.report-summary-card strong{margin-top:6px;font-size:1.12rem}
.reports-section{margin:30px 0}.reports-section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:12px}.reports-section-heading h3{margin:4px 0}.reports-section-heading>span{color:var(--muted);font-size:.68rem}.report-table{min-width:850px}
.comparison-filter{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr)) auto;gap:10px;align-items:end;margin-bottom:14px}.comparison-report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.comparison-report-card{display:grid}.comparison-report-head{padding-bottom:10px;margin-bottom:4px;border-bottom:1px solid var(--border)}.comparison-report-head span,.comparison-report-head strong{display:block}.comparison-report-head span{color:var(--muted);font-size:.62rem}.comparison-report-head strong{margin-top:3px}.comparison-report-card>div:not(.comparison-report-head){display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--border)}.comparison-report-card>div:last-child{border-bottom:0}.comparison-report-card>div span{color:var(--muted);font-size:.68rem}.comparison-report-card>div strong{font-size:.72rem;text-align:right}.delta-card{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}
@media(max-width:1250px){.report-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.report-filter-form{grid-template-columns:repeat(3,minmax(150px,1fr))}}@media(max-width:900px){.comparison-report-grid{grid-template-columns:1fr}.comparison-filter{grid-template-columns:1fr 1fr}.comparison-filter .primary-button{grid-column:1/-1}}@media(max-width:650px){.report-filter-form,.report-summary-grid,.comparison-filter{grid-template-columns:1fr}}


/* Fase 5.1 · Usuarios y seguridad */
.auth-card{width:min(460px,100%);padding:28px;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.wide-auth-card{width:min(620px,100%)}.auth-card h1{margin:22px 0 6px}.auth-link-grid{display:flex;justify-content:space-between;gap:15px;margin-top:16px;font-size:.72rem}.auth-secondary-link{text-align:center;margin:18px 0 0;font-size:.72rem}.terms-check,.starter-data-option{display:flex!important;align-items:flex-start;gap:10px}.terms-check input,.starter-data-option input{width:auto;margin-top:3px}.resend-verification{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.resend-verification summary{cursor:pointer;color:var(--muted);font-size:.7rem}
.admin-user-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(310px,.65fr);gap:18px;align-items:start}.admin-user-sidebar{display:grid;gap:16px;position:sticky;top:110px}.admin-user-search{display:flex;gap:8px}.admin-users-table{min-width:1050px}.admin-users-table td small{display:block;color:var(--muted);font-size:.62rem;line-height:1.5}.inline-admin-form{display:flex;gap:6px;align-items:center}.inline-admin-form select{min-width:125px}.admin-status-actions{display:flex;flex-wrap:wrap;gap:5px}.user-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.6rem;font-weight:800}.user-status.active{color:var(--success);background:color-mix(in srgb,var(--success) 12%,transparent)}.user-status.pending{color:#d4a72c;background:color-mix(in srgb,#d4a72c 12%,transparent)}.user-status.suspended,.user-status.rejected{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent)}
.security-audit-card>strong{display:block;margin:8px 0 13px;font-size:1.4rem}.security-check-list{display:grid}.security-check-list>div{display:flex;gap:9px;padding:8px 0;border-bottom:1px solid var(--border)}.security-check-list>div>span{color:var(--accent)}.security-check-list p,.security-check-list strong,.security-check-list small{display:block;margin:0}.security-check-list strong{font-size:.66rem}.security-check-list small{margin-top:3px;color:var(--muted);font-size:.58rem}.invitation-list{display:grid}.invitation-list>div{padding:8px 0;border-bottom:1px solid var(--border)}.invitation-list strong,.invitation-list small{display:block}.invitation-list small{margin-top:3px;color:var(--muted);font-size:.6rem}
.onboarding-shell{width:min(1000px,100%);display:grid;gap:18px}.onboarding-header{text-align:center}.onboarding-header .login-brand{justify-content:center}.onboarding-header h1{margin:20px 0 7px}.onboarding-header p{margin:0;color:var(--muted)}.onboarding-form{display:grid;gap:16px}.starter-data-option{padding:15px;border:1px solid var(--border);border-radius:11px;background:var(--bg)}.starter-data-option span,.starter-data-option strong,.starter-data-option small{display:block}.starter-data-option small{margin-top:4px;color:var(--muted);font-size:.65rem}
.profile-grid{display:grid;grid-template-columns:1.3fr .85fr .85fr;gap:18px;align-items:start}
@media(max-width:1150px){.admin-user-layout{grid-template-columns:1fr}.admin-user-sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.profile-grid{grid-template-columns:1fr 1fr}.profile-grid>section:first-child{grid-column:1/-1}}@media(max-width:700px){.admin-user-sidebar,.profile-grid{grid-template-columns:1fr}.profile-grid>section:first-child{grid-column:auto}.auth-link-grid{display:grid}.admin-user-search{display:grid}}


/* Páginas de error amigables */
.friendly-error-page{
    min-height:calc(100vh - 180px);
    display:grid;
    place-items:center;
    padding:32px 16px;
}
.friendly-error-card{
    width:min(620px,100%);
    padding:38px;
    border:1px solid var(--border);
    border-radius:20px;
    background:
        radial-gradient(circle at top right,
            color-mix(in srgb,var(--accent) 16%,transparent),
            transparent 36%),
        var(--surface);
    box-shadow:var(--shadow);
    text-align:center;
    position:relative;
    overflow:hidden;
}
.friendly-error-code{
    position:absolute;
    top:-22px;
    right:18px;
    font-size:7rem;
    line-height:1;
    font-weight:900;
    color:color-mix(in srgb,var(--accent) 8%,transparent);
    pointer-events:none;
}
.friendly-error-icon{
    width:62px;
    height:62px;
    margin:0 auto 18px;
    display:grid;
    place-items:center;
    border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));
    border-radius:18px;
    background:color-mix(in srgb,var(--accent) 10%,var(--surface));
    color:var(--accent);
    font-size:1.7rem;
    box-shadow:0 12px 30px color-mix(in srgb,var(--accent) 14%,transparent);
}
.friendly-error-card h2{
    margin:6px 0 10px;
    font-size:1.8rem;
}
.friendly-error-message{
    max-width:470px;
    margin:0 auto;
    color:var(--muted);
    line-height:1.65;
}
.friendly-error-actions{
    display:flex;
    justify-content:center;
    gap:10px;
    flex-wrap:wrap;
    margin-top:24px;
}
.friendly-error-note{
    margin-top:24px;
    padding:14px;
    border:1px solid var(--border);
    border-radius:11px;
    background:var(--bg);
    text-align:left;
}
.friendly-error-note strong,
.friendly-error-note span{
    display:block;
}
.friendly-error-note strong{
    font-size:.68rem;
}
.friendly-error-note span{
    margin-top:5px;
    color:var(--muted);
    font-size:.65rem;
    line-height:1.5;
}
@media(max-width:600px){
    .friendly-error-card{
        padding:28px 20px;
    }
    .friendly-error-code{
        font-size:5rem;
    }
    .friendly-error-actions{
        display:grid;
    }
}

/* Fase 5.2 · Producción y rol viewer */
body[data-role="viewer"] form[action*="/delete"],
body[data-role="viewer"] form[action*="/store"],
body[data-role="viewer"] form[action*="/update"],
body[data-role="viewer"] form[action*="/upload"],
body[data-role="viewer"] .danger-button,
body[data-role="viewer"] a[href*="/create"],
body[data-role="viewer"] a[href*="/edit"],
body[data-role="viewer"] .new-session-button{display:none!important}
.read-only-banner{padding:10px 14px;margin-bottom:14px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));color:var(--muted);font-size:.7rem}
