html, body { font-family: 'Inter', 'Segoe UI', sans-serif; background: #FAF8F5; }

.lc-brand { font-family: 'Fraunces', Georgia, serif; font-weight: 600; font-size: 1.35rem; color: #1F2A44; letter-spacing: .2px; }
.lc-brand em { font-style: normal; color: #B8233B; }
.lc-brand-lg { font-size: 2rem; }

.lc-appbar { border-bottom: 1px solid #E8E2D9; }
.lc-drawer { border-right: 1px solid #E8E2D9; }
.lc-card { border: 1px solid #E8E2D9; border-radius: 16px; box-shadow: 0 1px 2px rgba(31,42,68,.04); }
.lc-linkbtn { background: none; border: none; font: inherit; color: inherit; cursor: pointer; padding: 0; }

.lc-login { min-height: 100vh; display: grid; place-items: center; padding: 24px;
  background: radial-gradient(1200px 500px at 15% -10%, #F4DCDF 0%, transparent 60%), radial-gradient(900px 500px at 100% 110%, #E4E8F3 0%, transparent 60%), #FAF8F5; }
.lc-login-card { width: 100%; max-width: 400px; background: #fff; border: 1px solid #E8E2D9; border-radius: 20px; padding: 40px 32px; text-align: center; box-shadow: 0 10px 40px rgba(31,42,68,.08); }
.lc-login-sub { color: #5F6783; margin: 8px 0 28px; }
.lc-google { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; padding: 12px 16px; border: 1px solid #D6CEC1; border-radius: 12px; background: #fff; font: 500 .95rem 'Inter', sans-serif; color: #1F2A44; cursor: pointer; transition: box-shadow .15s, border-color .15s; }
.lc-google:hover { border-color: #B8233B; box-shadow: 0 2px 10px rgba(184,35,59,.12); }
.lc-alert { background: #FBEAEC; color: #8A1A2C; border-radius: 10px; padding: 10px 12px; margin-bottom: 16px; font-size: .9rem; }
.lc-dev { margin-top: 24px; padding-top: 16px; border-top: 1px dashed #D6CEC1; display: grid; gap: 8px; font-size: .8rem; color: #8A8FA5; }
.lc-dev input { padding: 8px 10px; border: 1px solid #D6CEC1; border-radius: 8px; }
.lc-dev button { padding: 8px; border: none; border-radius: 8px; background: #1F2A44; color: #fff; cursor: pointer; }

#blazor-error-ui { background: #FBEAEC; bottom: 0; box-shadow: 0 -1px 2px rgba(0,0,0,.2); display: none; left: 0; padding: .6rem 1.25rem; position: fixed; width: 100%; z-index: 1000; }
#blazor-error-ui .dismiss { cursor: pointer; position: absolute; right: .75rem; top: .5rem; }

/* ---------- intestazioni di pagina, tabelle ---------- */
.lc-pagehead { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.lc-sub { font-size: .8rem; color: #5F6783; }
.lc-row { cursor: pointer; }
.lc-ref { border: 1px solid #E8E2D9; border-radius: 12px; padding: 12px; margin-bottom: 12px; background: #FDFCFA; }
.lc-sentinel { height: 1px; }

/* ---------- foto candidato (scheda) ---------- */
.lc-photo { width: 180px; height: 180px; border-radius: 28px; overflow: hidden; display: grid; place-items: center;
  background: linear-gradient(135deg, #F4DCDF, #E4E8F3); color: #B8233B; font: 600 3rem 'Fraunces', serif;
  box-shadow: 0 8px 24px rgba(31,42,68,.12); }
.lc-photo img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- tile candidati ---------- */
.lc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 22px; padding-top: 6px; }

.lc-tile { position: relative; background: #fff; border: 1px solid #E8E2D9; border-radius: 22px; overflow: hidden; cursor: pointer;
  display: flex; flex-direction: column; outline: none;
  box-shadow: 0 1px 2px rgba(31,42,68,.05);
  opacity: 0; transform: translateY(18px) scale(.98);
  animation: lc-rise .55s cubic-bezier(.2,.8,.2,1) forwards; animation-delay: var(--i, 0ms);
  transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s, border-color .25s; }
.lc-tile:hover, .lc-tile:focus-visible { transform: translateY(-6px) rotate(-.4deg); border-color: #D9B8BE;
  box-shadow: 0 18px 40px rgba(31,42,68,.14), 0 4px 10px rgba(184,35,59,.08); }
@keyframes lc-rise { to { opacity: 1; transform: translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) { .lc-tile { animation: none; opacity: 1; transform: none; } }

.lc-tile-cover { height: 84px; background: var(--g, linear-gradient(120deg, #F4DCDF, #E4E8F3)); position: relative; }
.lc-tile-cover::after { content: ""; position: absolute; inset: 0;
  background: radial-gradient(120px 60px at 85% 0%, rgba(255,255,255,.55), transparent 70%); }
.lc-g0 { --g: linear-gradient(120deg, #F6D5DA, #F9E7D0); }
.lc-g1 { --g: linear-gradient(120deg, #D9E3F5, #EBD9F2); }
.lc-g2 { --g: linear-gradient(120deg, #D6EEE3, #E3EFD0); }
.lc-g3 { --g: linear-gradient(120deg, #F8E3C9, #F6D5DA); }
.lc-g4 { --g: linear-gradient(120deg, #DCE0F4, #D3EAF2); }
.lc-g5 { --g: linear-gradient(120deg, #EFD9EC, #F9E3D3); }

.lc-avatar { width: 92px; height: 92px; border-radius: 26px; margin: -46px 0 0 20px; position: relative; z-index: 1; overflow: hidden;
  border: 4px solid #fff; background: #fff; display: grid; place-items: center;
  font: 600 1.7rem 'Fraunces', serif; color: #B8233B; box-shadow: 0 6px 16px rgba(31,42,68,.14);
  background-image: var(--g); }
.lc-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }

.lc-tile-body { padding: 10px 20px 8px; flex: 1; }
.lc-tile-name { font: 600 1.15rem/1.25 'Fraunces', Georgia, serif; color: #1F2A44; margin: 6px 0 2px; }
.lc-tile-name span { font-weight: 500; color: #5F6783; }
.lc-tile-meta { font-size: .82rem; color: #5F6783; display: flex; gap: 8px; flex-wrap: wrap; }
.lc-tile-meta span + span::before { content: "·"; margin-right: 8px; }
.lc-tile-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.lc-chip { font-size: .72rem; font-weight: 500; letter-spacing: .02em; padding: 4px 10px; border-radius: 999px; background: #FBEAEC; color: #8A1A2C; }
.lc-chip-more { background: #EEF0F7; color: #1F2A44; }
.lc-tile-sectors { margin-top: 10px; font-size: .74rem; color: #8A8FA5; text-transform: uppercase; letter-spacing: .05em; }
.lc-tile-foot { display: flex; justify-content: space-between; align-items: center; padding: 10px 20px 14px; margin-top: 8px;
  border-top: 1px dashed #E8E2D9; font-size: .78rem; color: #5F6783; }
.lc-tile-foot span { display: inline-flex; gap: 6px; align-items: center; }
.lc-tile-icons { color: #8A8FA5; }
