/* Shared NASCAM experience. Native Desk rules activate only inside the owned route context. */
.nascam-ui { --nascam-ring: #70415f; }
.nascam-ui :is(a,button,input,select,textarea):focus-visible,
.nascam-desk-navigation :is(a,button,input,select,summary):focus-visible {
  outline: 3px solid #70415f; outline-offset: 3px;
}
.nascam-ui :is(input,select,textarea) { max-width: 100%; font: inherit; }
.nascam-ui :is(button,a) { touch-action: manipulation; }
.nascam-skip-link { position:absolute; left:-9999px; z-index:1050; background:white; padding:12px; }
.nascam-skip-link:focus { position:fixed; top:8px; left:8px; }
.nascam-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:10px; color:var(--nascam-text-muted,#685862); font-size:.85rem; margin:0 0 20px; }
.nascam-breadcrumb a { color:var(--nascam-primary,#3a0a27); text-decoration:underline; }
.nascam-ui .nascam-portal-nav { border:1px solid var(--nascam-border,#dfd3da); background:#fff; box-shadow:0 3px 12px #3a0a2708; padding:8px; border-radius:14px; gap:4px; }
.nascam-ui .nascam-portal-nav a { min-height:42px; display:flex; align-items:center; padding:9px 13px; border-radius:9px; line-height:1.3; }
.nascam-ui .nascam-portal-nav a[aria-current="page"] { background:#3a0a27; color:#fff; font-weight:700; }
.nascam-overview-link { display:flex; gap:18px; align-items:center; justify-content:space-between; flex-wrap:wrap; margin:0 0 24px; padding:20px 24px; background:#f3eaf0; border:1px solid #dfd3da; border-radius:14px; }
.nascam-overview-link p { margin:4px 0 0; color:#685862; }
.nascam-insights { min-width:0; }
.nascam-insights-header { display:flex; justify-content:space-between; margin-bottom:24px; padding-top:8px; }
.nascam-insights-header h1 { font-size:clamp(1.6rem,3vw,2.3rem); letter-spacing:-.025em; margin:5px 0 12px; }
.nascam-insights-header p { max-width:75ch; }
.nascam-eyebrow { letter-spacing:.14em; font-size:.72rem; font-weight:800; color:#70415f; }
.nascam-insights-filters { display:flex; gap:12px; align-items:end; flex-wrap:wrap; padding:20px; border:1px solid #dfd3da; border-radius:14px; background:#fff; }
.nascam-insights-filters .nascam-field { flex:1 1 155px; min-width:0; margin:0; font-size:.85rem; font-weight:600; }
.nascam-insights-filters :is(input,select) { display:block; width:100%; min-height:44px; padding:9px 10px; border:1px solid #c5afbd; background:white; border-radius:8px; margin-top:6px; color:#21171d; }
.nascam-insights-message { font-size:.82rem; color:#685862; margin:14px 2px 24px; line-height:1.6; }
.nascam-insight-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.nascam-insight-card { display:flex; flex-direction:column; gap:10px; text-align:left; width:100%; border:1px solid #dfd3da; color:#21171d; font:inherit; cursor:pointer; transition:border-color .15s,box-shadow .15s; }
.nascam-insight-card:not(:disabled):hover { border-color:#70415f; box-shadow:0 5px 18px #3a0a2712; }
.nascam-insight-card:disabled { cursor:default; background:#f5f2f4; opacity:1; }
.nascam-insight-card .nascam-card__value { font-size:clamp(1.35rem,2.4vw,2rem); overflow-wrap:anywhere; line-height:1.2; }
.nascam-insight-card .nascam-kicker { font-size:.7rem; letter-spacing:.07em; text-transform:uppercase; color:#685862; }
.nascam-insight-action { display:flex; flex-direction:column; gap:5px; text-align:left; border:0; border-bottom:1px solid #dfd3da; padding:14px 0; background:transparent; width:100%; color:#3a0a27; font:inherit; cursor:pointer; }
.nascam-insight-action span { color:#685862; }
.nascam-insight-charts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:24px; }
.nascam-insight-chart { min-width:0; }
.nascam-chart-bars { list-style:none; padding:0; margin:22px 0; display:grid; gap:14px; }
.nascam-chart-bar { width:100%; display:grid; grid-template-columns:minmax(90px,1fr) minmax(50px,1.2fr) auto; gap:12px; align-items:center; color:#21171d; background:transparent; border:0; text-align:left; font:inherit; padding:7px 0; }
button.nascam-chart-bar { cursor:pointer; }
button.nascam-chart-bar:hover { background:#faf7f9; }
.nascam-chart-bar-label { font-size:.85rem; overflow-wrap:anywhere; }
.nascam-chart-bar-track { height:13px; background:#f0e8ed; border-radius:6px; overflow:hidden; }
.nascam-chart-bar-fill { display:block; height:100%; background:#70415f; border-radius:6px; }
.nascam-chart-bar strong { font-size:.85rem; white-space:nowrap; }
.nascam-insight-records { margin-top:24px; scroll-margin-top:100px; }
.nascam-insight-records>.nascam-btn { margin-bottom:16px; }
.nascam-insight-records a { overflow-wrap:anywhere; text-decoration:underline; }
.nascam-desk-navigation { margin-bottom:20px; border:1px solid #dfd3da; border-radius:12px; background:#fff; color:#21171d; padding:12px 16px; font-family:inherit; }
.nascam-desk-navigation-bar { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.nascam-desk-navigation a { color:#3a0a27; padding:9px 12px; min-height:40px; display:inline-flex; align-items:center; border-radius:8px; font-weight:600; }
.nascam-desk-navigation a:hover { background:#f3eaf0; }
.nascam-desk-navigation details { flex:1; min-width:180px; }
.nascam-desk-navigation summary { cursor:pointer; padding:9px 12px; font-weight:600; }
.nascam-desk-destinations { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:16px; padding:16px 0 4px; }
.nascam-desk-destinations h3 { font-size:.85rem; margin:10px 0; color:#685862; }
.nascam-desk-destinations a { display:flex; font-size:.9rem; font-weight:400; }
.nascam-desk-navigation input { width:100%; border:1px solid #c5afbd; min-height:42px; border-radius:8px; padding:8px 12px; margin-top:12px; }
body.nascam-desk-context .layout-main-section { border-color:#dfd3da; border-radius:12px; }
body.nascam-desk-context .form-section { border-color:#e8dfe4; }
body.nascam-desk-context .control-label { white-space:normal; line-height:1.45; }
body.nascam-desk-context .page-actions :is(button,a) { min-height:36px; }
body.nascam-desk-context .form-control:focus { border-color:#70415f; box-shadow:0 0 0 2px #bf94ae45; }
@media(max-width:900px) { .nascam-insight-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } .nascam-insight-charts { grid-template-columns:1fr; } }
@media(max-width:540px) {
 .nascam-insight-cards { grid-template-columns:1fr; gap:12px; }
 .nascam-insights-filters { padding:14px; gap:10px; }
 .nascam-insights-filters>.nascam-btn { flex:1 1 100%; }
 .nascam-insights-filters .nascam-field { flex-basis:100%; }
 .nascam-chart-bar { grid-template-columns:minmax(70px,1fr) minmax(32px,1fr) auto; gap:7px; }
 .nascam-overview-link { padding:16px; } .nascam-overview-link>a { width:100%; }
 .nascam-ui .nascam-portal-nav a { flex:1 1 auto; justify-content:center; font-size:.84rem; }
 .nascam-desk-navigation { padding:10px; } .nascam-desk-navigation details { flex-basis:100%; }
}
@media(prefers-reduced-motion:reduce) { .nascam-ui *, .nascam-desk-navigation * { transition:none!important; animation:none!important; } }

.nascam-ui [hidden], .nascam-desk-navigation [hidden] { display:none!important; }

.nascam-account-page .form-control { border-color:#c5afbd; border-radius:8px; min-height:44px; }
.nascam-account-page .btn-primary { background:#3a0a27; border-color:#3a0a27; color:#fff; min-height:44px; }
.nascam-account-page .web-form { border-color:#dfd3da; }
@media print { .nascam-portal-nav, .nascam-desk-navigation, .nascam-breadcrumb, .nascam-skip-link { display:none!important; } }

body.nascam-auth-page { background:#faf7f9; }
body.nascam-auth-page .page-card { border:1px solid #dfd3da; border-radius:14px; box-shadow:0 8px 24px #3a0a2712; }
body.nascam-auth-page .page-card-head h4 { color:#3a0a27; font-family:var(--nascam-font); }
body.nascam-auth-page .form-control { border:1px solid #c5afbd; border-radius:8px; min-height:44px; }
body.nascam-auth-page :is(.btn-primary,.es-button[data-variant="solid"]) { background:#3a0a27; border-color:#3a0a27; color:white; min-height:44px; }
body.nascam-auth-page :is(a,button,input):focus-visible { outline:3px solid #70415f; outline-offset:3px; }
