/* Public pages only: the admin keeps its existing stylesheet and components. */
.public-app{
  --public-panel-padding:clamp(1rem,3vw,2rem);
}
.public-app > main{padding:3rem 2rem}
.public-app > header{background:var(--surface)}
.public-app .nav-btn{font-weight:600;padding:.45rem .8rem}
.public-app .panel{
  padding:var(--public-panel-padding);
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
}
.public-app .page-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:nowrap;
  gap:1rem;
  margin-bottom:1.25rem;
}
.public-app .page-title{
  min-width:0;
  margin:0;
  font-size:clamp(1.25rem,2.5vw,1.5rem);
  font-weight:800;
  line-height:1.3;
  letter-spacing:-.02em;
  overflow-wrap:anywhere;
}
.public-app .page-header-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}
.public-app .section-title{font-size:1rem;font-weight:700;line-height:1.4}
.public-app .hint{font-size:.875rem;line-height:1.5;color:var(--muted)}
.public-app .home-title{font-weight:800;line-height:1.2;letter-spacing:-.025em}
.public-app .home-subtitle2{color:var(--muted);font-size:1rem;line-height:1.6}
.public-app .sr-list{gap:.75rem}
.public-app .liste-filters{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}
.public-app .liste-filters .search-wrap{flex:1 1 22rem;min-width:0;margin-bottom:0;min-height:48px}
.public-app .liste-grade-filter{display:flex;flex:0 1 15rem;flex-direction:column;gap:.35rem;min-width:0}
.public-app .liste-grade-filter label{font-size:.8rem;font-weight:700;color:var(--muted)}
.public-app #liste-grade-filter{min-height:48px;font-size:.9rem;font-weight:500}
@media(max-width:600px){.public-app .liste-grade-filter{flex-basis:100%}}
.public-app .last-review-badge{
  display:inline-block;
  max-width:100%;
  margin-left:.5rem;
  padding:.2rem .55rem;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--bg);
  color:var(--text);
  font-size:.8rem;
  font-weight:600;
  line-height:1.5;
  vertical-align:middle;
  overflow-wrap:anywhere;
}

/* Ankimie keeps its single-card focus and colour-coded grading controls. */
.public-app .ank-topbar{margin-bottom:1rem}
.public-app .ank-count{white-space:nowrap}
.public-app .ank-card{
  padding:clamp(1rem,3vw,1.75rem);
  background:var(--surface);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
}
.public-app .rate-interval{font-size:.75rem;opacity:.85}
html[data-theme=dark] .public-app .ank-answer-label,
html[data-theme=dark] .public-app .ank-answer-text{color:#6ee7b7}

@media (max-width:600px){
  .public-app > main{padding:1.5rem 1rem}
  .public-app .page-header{gap:.75rem;margin-bottom:1rem}
}
