/* Shared visual-polish layer — elevation tokens + interaction patterns lifted
   from the original dashboard's design system (its hover-lift + shadow scale).
   Loaded app-wide (after the page/view CSS) so it can refine shared components
   without each view re-declaring shadows/transitions. Uses existing color
   tokens only — no new color primitives. */

:root {
  /* Elevation scale (matches the original's shadow vocabulary). */
  --elev-1: 0 1px 2px rgba(0, 0, 0, 0.4);          /* resting card */
  --elev-2: 0 12px 28px rgba(0, 0, 0, 0.35);        /* hover lift */
  --elev-3: 0 24px 60px rgba(0, 0, 0, 0.55);        /* modals/overlays */
  /* The signature ease + a reusable hover-lift transition. */
  --ease-out: cubic-bezier(0.2, 0.7, 0.2, 1);
  --lift-tr: transform 200ms var(--ease-out), background 200ms ease,
             border-color 200ms ease, box-shadow 200ms ease;
}

/* ── Card-like surfaces: a soft resting shadow + a hover-lift. Applied to the
   new views' cards and the existing asset/folder cards. Kept gentle (no scale
   on dense grids) so it reads as "crafted", not "bouncy". ── */
.prof-card,
.gal-tile,
.wmap-folder,
.anl-stat,
.anl-panel,
.prof-stat {
  box-shadow: var(--elev-1);
  transition: var(--lift-tr);
  will-change: transform;
}
.prof-card:hover,
.gal-tile:hover,
.anl-stat:hover,
.anl-panel:hover {
  transform: translateY(-3px);
  box-shadow: var(--elev-2);
}
/* Gallery tiles already translateY on hover in their own CSS; reinforce the
   shadow + ease here so it matches the system. */
.gal-tile:hover { box-shadow: var(--elev-2); }

/* Section headers get a touch more rhythm + a hairline accent rule under the
   title, echoing the original's block-head treatment. */
.prof-title, .gal-title, .wmap-title, .qtr-title, .anl-title, .info-title {
  letter-spacing: var(--track-tight, -0.015em);
}

/* Tables (Info, Analytics) — subtle zebra + crisper header, lifted from the
   original's .table styling. */
.info-table tbody tr:nth-child(even) td,
.anl-table tbody tr:nth-child(even) td {
  background: rgba(255, 255, 255, 0.015);
}

/* Modals/overlays use the top of the elevation scale. */
.prof-modal, .addnote, .cpal {
  box-shadow: var(--elev-3);
}

/* Filter chips + range toggles: a springier active state. */
.prof-chip, .gal-chip, .anl-range-btn {
  transition: background 160ms var(--ease-out), color 160ms ease, border-color 160ms ease;
}

/* Buttons (add/save/primary): gentle lift + shadow on hover. */
.prof-add, .addnote-save, .prof-modal-save {
  transition: filter 140ms ease, transform 140ms var(--ease-out), box-shadow 140ms ease;
}
.prof-add:hover, .addnote-save:hover, .prof-modal-save:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px var(--accent-soft, rgba(110, 163, 255, 0.18));
}

@media (prefers-reduced-motion: reduce) {
  .prof-card, .gal-tile, .anl-stat, .anl-panel,
  .prof-card:hover, .gal-tile:hover, .anl-stat:hover, .anl-panel:hover,
  .prof-add:hover, .addnote-save:hover, .prof-modal-save:hover {
    transform: none; transition: none;
  }
}
