/* R25 shared product components — tokens only. */
:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--olympus-gold);outline-offset:2px}
.r25-page-shell{max-width:var(--content-max);margin:0 auto}
.r25-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}
.r25-page-header__eyebrow{margin:0 0 var(--space-1);color:var(--olympus-blue);font:var(--font-caption);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.r25-page-header__title{margin:0;color:var(--text-primary);font:var(--font-page-title)}
.r25-page-header__sub{margin:var(--space-1) 0 0;color:var(--text-secondary);font:var(--font-caption)}
.r25-section{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}
.r25-section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}
.r25-section-header h2{margin:0;color:var(--text-primary);font:var(--font-section-title)}
.r25-section-header p{margin:var(--space-1) 0 0;color:var(--text-muted);font:var(--font-caption)}
.r25-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}
.r25-metric-card{min-width:0;padding:var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card)}
.r25-metric-card__label{display:block;color:var(--text-secondary);font:var(--font-caption)}
.r25-metric-card__value{display:block;margin-top:var(--space-2);color:var(--olympus-navy);font:var(--font-number)}
.r25-metric-card__hint{display:block;margin-top:var(--space-1);color:var(--text-muted);font:var(--font-caption)}
.r25-status{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:999px;font:var(--font-caption);font-weight:700;border:1px solid var(--border-default)}
.r25-status--success{background:var(--success-soft);color:var(--success)}
.r25-status--warning{background:var(--warning-soft);color:var(--warning)}
.r25-status--danger{background:var(--danger-soft);color:var(--danger)}
.r25-status--info{background:var(--info-soft);color:var(--info)}
.r25-data-table{width:100%;border-collapse:separate;border-spacing:0;color:var(--text-primary);font:var(--font-body)}
.r25-data-table th{background:var(--surface-soft-blue);color:var(--olympus-navy);font-weight:750;text-align:left;border-bottom:1px solid var(--border-strong);padding:var(--space-3)}
.r25-data-table td{padding:var(--space-3);border-bottom:1px solid var(--border-default);vertical-align:top}
.r25-empty{padding:var(--space-8);text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface-page);color:var(--text-secondary)}
.r25-info-banner{display:flex;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--info-soft);color:var(--text-primary);border:1px solid var(--border-default)}
.r25-form-section{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card)}
.r25-action-bar{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-4)}
.r25-progress{height:10px;overflow:hidden;border-radius:999px;background:var(--surface-soft-blue)}
.r25-progress__fill{height:100%;border-radius:inherit;background:var(--olympus-blue)}
.r25-brand-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--olympus-navy);color:var(--text-inverse)}
.r25-brand-footer{display:flex;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-default);color:var(--text-muted);font:var(--font-caption)}
.r25-narrative{padding:var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card)}
.r25-narrative--strength{border-left:4px solid var(--success)}
.r25-narrative--focus{border-left:4px solid var(--warning)}
.r25-narrative--next{border-left:4px solid var(--olympus-blue)}
@media(max-width:900px){.r25-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.r25-page-header{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.r25-metric-grid{grid-template-columns:1fr}.r25-section{padding:var(--space-4)}}

/* R25 product-wide shell convergence. Business-module semantics remain in legacy CSS. */
body{background:var(--surface-page);color:var(--text-primary);font-family:var(--font-sans)}
.sidebar{background:var(--olympus-navy);border-right:0;box-shadow:var(--shadow-md)}
.sidebar .brand b{color:var(--text-inverse)}.sidebar .brand small,.sidebar .user small{color:var(--border-strong)}.sidebar .user{border-top-color:var(--olympus-blue);color:var(--text-inverse)}
.sidebar nav button{color:var(--border-default)}.sidebar nav button:hover{background:var(--olympus-blue);color:var(--text-inverse)}.sidebar nav button.active{background:var(--surface-card);color:var(--olympus-navy);box-shadow:inset 4px 0 0 var(--olympus-gold)}
.app>main>header{background:var(--surface-card);border-bottom-color:var(--border-default);box-shadow:var(--shadow-sm)}
.page.r25-page-shell{max-width:var(--content-max);margin:0 auto}.page.r25-page-shell>.panel,.page.r25-page-shell .settings-card{background:var(--surface-card);border-color:var(--border-default);box-shadow:var(--shadow-sm)}
.primary{background:var(--olympus-blue)!important;border-color:var(--olympus-blue)!important;color:var(--text-inverse)!important}.primary:hover{filter:brightness(.94)}
.kpis article{background:var(--surface-card);border-color:var(--border-default)}.kpis strong{color:var(--olympus-navy)}
.data-table th,.r25-data-table th{background:var(--surface-soft-blue);color:var(--olympus-navy)}.data-table td{border-color:var(--border-default)}
.settings-card[data-settings-group]{position:relative;padding-top:var(--space-5);border-top:4px solid var(--olympus-blue)}.settings-card[data-settings-group="brand"]{border-top-color:var(--olympus-gold)}.settings-card[data-settings-group] h3{color:var(--olympus-navy)}.r25-settings-sync{margin-top:var(--space-3)}
.auth-shell{border-color:var(--border-default);border-top:5px solid var(--olympus-gold);box-shadow:var(--shadow-md)}.auth-shell h1{color:var(--olympus-navy)}
