/**
 * INRV Marktplatz – Frontend-Styles.
 * Gescoped über .inrv-scope, um Theme-Konflikte zu vermeiden.
 * WCAG 2.1 AA: Kontrast >= 4.5:1, sichtbare Focus-Indikatoren, reduced-motion.
 */

.inrv-scope {
	--inrv-fg: #1a1a1a;
	--inrv-muted: #555555;
	--inrv-bg: #ffffff;
	--inrv-border: #d0d0d0;
	--inrv-primary: #1d4ed8;      /* Kontrast auf Weiß > 4.5:1 */
	--inrv-primary-fg: #ffffff;
	--inrv-danger: #b91c1c;
	--inrv-badge-bg: #e8effc;
	--inrv-radius: 8px;
	color: var(--inrv-fg);
	font-size: 1rem;
	line-height: 1.5;
}

.inrv-scope *:focus-visible {
	outline: 3px solid var(--inrv-primary);
	outline-offset: 2px;
}

/* --- Formular --- */
.inrv-form-wrap .inrv-form p { margin: 0 0 1rem; }
.inrv-form label { display: block; font-weight: 600; margin-bottom: .25rem; }
.inrv-form input[type="text"],
.inrv-form input[type="email"],
.inrv-form input[type="search"],
.inrv-form input[type="date"],
.inrv-form textarea,
.inrv-filter select,
.inrv-filter input[type="search"] {
	width: 100%;
	max-width: 480px;
	padding: .6rem .7rem;
	border: 1px solid var(--inrv-border);
	border-radius: var(--inrv-radius);
	font-size: 1rem;
	background: var(--inrv-bg);
	color: var(--inrv-fg);
}

.inrv-fieldset {
	border: 1px solid var(--inrv-border);
	border-radius: var(--inrv-radius);
	padding: .75rem 1rem;
	margin: 0 0 1rem;
}
.inrv-fieldset legend { font-weight: 700; padding: 0 .4rem; }
.inrv-choice { display: inline-flex; align-items: center; gap: .35rem; margin: .25rem 1rem .25rem 0; font-weight: 400; }

/* --- Buttons --- */
.inrv-btn {
	display: inline-block;
	padding: .6rem 1.1rem;
	border: 1px solid var(--inrv-border);
	border-radius: var(--inrv-radius);
	background: #f3f4f6;
	color: var(--inrv-fg);
	font-size: 1rem;
	cursor: pointer;
	text-decoration: none;
	line-height: 1.2;
}
.inrv-btn-small { padding: .35rem .7rem; font-size: .9rem; }
.inrv-btn-primary { background: var(--inrv-primary); color: var(--inrv-primary-fg); border-color: var(--inrv-primary); }
.inrv-btn-danger { background: #fff; color: var(--inrv-danger); border-color: var(--inrv-danger); }
.inrv-btn:hover { filter: brightness(0.96); }

/* --- Karten/Übersicht --- */
.inrv-cards { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.inrv-card { border: 1px solid var(--inrv-border); border-radius: var(--inrv-radius); padding: 1rem; background: var(--inrv-bg); }
.inrv-card-title { margin: .4rem 0; font-size: 1.15rem; }
.inrv-card-meta, .inrv-card-region { color: var(--inrv-muted); font-size: .9rem; margin: .25rem 0; }
.inrv-badge { display: inline-block; background: var(--inrv-badge-bg); color: #143a86; padding: .15rem .6rem; border-radius: 999px; font-size: .8rem; font-weight: 600; }

/* --- Filter --- */
.inrv-filter { display: flex; flex-wrap: wrap; gap: 1rem; align-items: end; background: #f8fafc; border: 1px solid var(--inrv-border); border-radius: var(--inrv-radius); padding: 1rem; }
.inrv-filter-row { display: flex; flex-direction: column; gap: .25rem; }
.inrv-filter label { font-weight: 600; }

/* --- Tabellen (Meine Anzeigen / Moderation) --- */
.inrv-table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.inrv-table th, .inrv-table td { text-align: left; padding: .6rem .5rem; border-bottom: 1px solid var(--inrv-border); vertical-align: middle; }
.inrv-table th { background: #f3f4f6; }
.inrv-inline-form { display: inline; }

/* --- Kennzahlen --- */
.inrv-stats { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); margin: 1rem 0; }
.inrv-stat { border: 1px solid var(--inrv-border); border-radius: var(--inrv-radius); padding: 1rem; text-align: center; background: var(--inrv-bg); }
.inrv-stat-value { display: block; font-size: 2rem; font-weight: 700; color: var(--inrv-primary); }
.inrv-stat-label { display: block; color: var(--inrv-muted); font-size: .9rem; }

/* --- Hinweise --- */
.inrv-notice { padding: .75rem 1rem; border-radius: var(--inrv-radius); border: 1px solid var(--inrv-border); background: #f8fafc; margin: 1rem 0; }
.inrv-notice-error { border-color: var(--inrv-danger); background: #fef2f2; color: #7f1d1d; }
.inrv-notice-success { border-color: #15803d; background: #f0fdf4; color: #14532d; }

/* --- Pagination --- */
.inrv-pagination ul { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: 1.5rem 0; }
.inrv-pagination a, .inrv-pagination span { display: inline-block; padding: .4rem .7rem; border: 1px solid var(--inrv-border); border-radius: var(--inrv-radius); text-decoration: none; }
.inrv-pagination .current { background: var(--inrv-primary); color: var(--inrv-primary-fg); border-color: var(--inrv-primary); }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0); border: 0;
}

@media (prefers-reduced-motion: reduce) {
	.inrv-btn { transition: none; }
}
