/* Reserved area (app/view/resarea/*.phtml) - all the rules are scoped to .ap-resarea, same palette of the home page (home.css)
-------------------------------------------------- */

.ap-resarea {
    --ap-accent: #712cf9;
    --ap-accent-soft: rgba(113, 44, 249, .10);
    --ap-hero-from: #1b1340;
    --ap-hero-to: #3b1d8f;
    color: var(--bs-body-color);        /* carousel.css sets a lighter body text color */
    padding-top: 1.5rem;
}
.ap-resarea section { scroll-margin-top: 70px; }
.ap-resarea .kicker { color: var(--ap-accent); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; font-size: .8rem; }

/* Welcome box */
.ap-resarea .welcome { background: linear-gradient(135deg, var(--ap-hero-from), var(--ap-hero-to)); color: #fff; }
.ap-resarea .welcome .kicker { color: rgba(255, 255, 255, .75); }
.ap-resarea .welcome .lead { color: rgba(255, 255, 255, .85); }
.ap-resarea .welcome a:not(.btn) { color: #fff; }

/* Profile */
.ap-resarea .avatar { width: 3rem; height: 3rem; flex-shrink: 0; border-radius: 50%; background: var(--ap-accent); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.25rem; }

/* Administration */
.ap-resarea .stat-tile { background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); }

/* My templates */
.ap-resarea .empty-state { border: 2px dashed var(--bs-border-color); color: var(--bs-secondary-color); }
.ap-resarea .empty-state .fw-semibold { color: var(--bs-body-color); }

/* Examples */
.ap-resarea .card-hover { transition: transform .15s ease, box-shadow .15s ease; }
.ap-resarea .card-hover:hover { transform: translateY(-3px); box-shadow: 0 .75rem 1.5rem rgba(0, 0, 0, .12); }
.ap-resarea .example-thumb { height: 200px; width: 100%; object-fit: contain; background: var(--bs-tertiary-bg); }
.ap-resarea .hello-thumb span { background: #2874a6; color: #fff; font: 700 1.4rem Helvetica, Arial, sans-serif; padding: .6rem 2rem; box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .2); }
.ap-resarea .tag { background: var(--ap-accent-soft); color: var(--ap-accent); font-weight: 500; }
.ap-resarea .composer { background: var(--bs-tertiary-bg); border-radius: .375rem; padding: .5rem .75rem; font-size: .85rem; }

[data-bs-theme="dark"] .ap-resarea .tag { color: #b794ff; }
[data-bs-theme="dark"] .ap-resarea .kicker:not(.welcome .kicker) { color: #b794ff; }

/* Activity log (app/view/activity/*.phtml) */
.ap-activity {
    --ap-chart-bar: #712cf9;            /* Chart colors validated (dataviz validator): light and dark surface */
    --ap-chart-grid: var(--bs-border-color);
}
[data-bs-theme="dark"] .ap-activity { --ap-chart-bar: #9a6cff; }
.ap-activity .filter-bar { background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); }
.ap-activity .tabular { font-variant-numeric: tabular-nums; }
.ap-activity .views-chart { width: 100%; min-height: 220px; }
.ap-activity .views-chart svg { display: block; }
.ap-activity .views-chart .bar { fill: var(--ap-chart-bar); }
.ap-activity .views-chart .grid { stroke: var(--ap-chart-grid); stroke-width: 1; }
.ap-activity .views-chart .base { stroke: var(--bs-secondary-color); stroke-width: 1; }
.ap-activity .views-chart .axis { fill: var(--bs-secondary-color); font-size: 11px; font-variant-numeric: tabular-nums; }
.ap-activity .views-chart .hit { fill: transparent; }
.ap-activity .views-chart .hit:hover { fill: var(--bs-secondary-bg); fill-opacity: .5; }
.ap-activity .top-list li + li { margin-top: .5rem; }
.ap-activity .top-bar { height: 4px; background: var(--bs-secondary-bg); border-radius: 2px; margin-top: 2px; }
.ap-activity .top-bar span { display: block; height: 100%; background: var(--ap-chart-bar); border-radius: 2px; }
.chart-tip { position: absolute; z-index: 1080; pointer-events: none; background: var(--bs-body-bg); color: var(--bs-body-color); border: 1px solid var(--bs-border-color);
    border-radius: .375rem; padding: .4rem .6rem; font-size: .8rem; box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15); font-variant-numeric: tabular-nums; }
