/* Favoritter — custom styles on top of Pico CSS */ /* Visually hidden, accessible to screen readers */ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } /* Skip navigation link for accessibility */ .skip-link { position: absolute; top: -100%; left: 0; padding: 0.5rem 1rem; background: var(--pico-primary-background); color: var(--pico-primary-inverse); z-index: 1000; text-decoration: none; } .skip-link:focus { top: 0; } /* Inline forms (e.g. logout button in nav) */ .inline-form { display: inline; margin: 0; padding: 0; } .nav-button { margin: 0; padding: 0.25rem 0.75rem; font-size: 0.875rem; } /* Flash messages */ .flash { padding: 1rem; border-radius: var(--pico-border-radius); margin-bottom: 1rem; } .flash-success { background: color-mix(in srgb, var(--pico-ins-color) 15%, transparent); border: 1px solid var(--pico-ins-color); } .flash-error { background: color-mix(in srgb, var(--pico-del-color) 15%, transparent); border: 1px solid var(--pico-del-color); } .flash-info { background: color-mix(in srgb, var(--pico-primary) 10%, transparent); border: 1px solid var(--pico-primary); } /* Fave card grid */ .fave-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; list-style: none; padding: 0; } .fave-card { margin: 0; } .fave-card img { width: 100%; height: 200px; object-fit: cover; border-radius: var(--pico-border-radius) var(--pico-border-radius) 0 0; } .fave-card header { padding: 0.5rem 1rem 0; } .fave-card footer { padding: 0 1rem 0.5rem; } /* Privacy badge */ .badge-private { background: var(--pico-muted-border-color); padding: 0.1rem 0.4rem; border-radius: var(--pico-border-radius); font-size: 0.75rem; vertical-align: middle; } /* Profile header */ .profile-header { display: flex; align-items: center; gap: 1.5rem; margin-bottom: 1rem; } /* Avatar */ .avatar-large { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; flex-shrink: 0; } /* Tag chips */ .tag-chip { display: inline-block; background: var(--pico-primary-focus); color: var(--pico-primary); padding: 0.15rem 0.5rem; border-radius: 1rem; font-size: 0.8rem; text-decoration: none; margin: 0.1rem; } .tag-chip:hover { background: var(--pico-primary); color: var(--pico-primary-inverse); } /* Tag autocomplete suggestions */ .tag-suggestions { list-style: none; padding: 0; margin: 0; border: 1px solid var(--pico-muted-border-color); border-radius: var(--pico-border-radius); max-height: 200px; overflow-y: auto; } .tag-suggestions:empty { display: none; } .tag-suggestion { padding: 0.5rem 0.75rem; cursor: pointer; } .tag-suggestion:hover, .tag-suggestion:focus-visible { background: var(--pico-primary-focus); outline: 2px solid var(--pico-primary); outline-offset: -2px; } .tag-suggestion[aria-selected="true"] { background: var(--pico-primary-focus); } /* Fave detail actions */ .fave-actions { display: flex; gap: 0.5rem; margin-top: 0.5rem; } .fave-actions a, .fave-actions button { margin: 0; } /* Current image preview in edit form */ .current-image { margin-bottom: 1rem; } .current-image img { border-radius: var(--pico-border-radius); } /* Admin */ .stat { font-size: 2rem; font-weight: bold; margin: 0; } .disabled-row { color: var(--pico-muted-color); } .disabled-row td:first-child { text-decoration: line-through; } .inline-input { display: inline-block; width: auto; margin: 0; padding: 0.25rem 0.5rem; font-size: 0.875rem; } /* Responsive admin tables */ .table-responsive { overflow-x: auto; } /* Respect reduced motion preference */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } }