:root {
  --primary: #006994;
  --primary-dark: #004f6e;
  --primary-light: #e6f1f5;
  --accent: #e87b35;
  --accent-dark: #c96420;
  --bg: #f8f9fa;
  --white: #ffffff;
  --text: #333333;
  --text-muted: #6c757d;
  --border: #e1e4e8;
  --shadow: 0 2px 8px rgba(0,0,0,0.08);
  --shadow-lg: 0 8px 24px rgba(0,0,0,0.12);
  --radius: 12px;
  --radius-sm: 8px;
}

* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; background:var(--bg); color:var(--text); line-height:1.6; }
a { color:var(--primary); text-decoration:none; }
a:hover { color:var(--accent); }
.container { max-width:1200px; margin:0 auto; padding:0 20px; }

/* HEADER */
.site-header { background:var(--white); box-shadow:var(--shadow); position:sticky; top:0; z-index:100; }
.header-inner { display:flex; align-items:center; justify-content:space-between; height:64px; }
.logo { display:flex; align-items:center; gap:8px; font-size:1.3rem; font-weight:600; color:var(--text); }
.logo strong { color:var(--primary); }
.main-nav { display:flex; gap:24px; align-items:center; }
.main-nav a { color:var(--text); font-weight:500; font-size:0.95rem; display:flex; align-items:center; gap:6px; padding:8px 4px; }
.main-nav a:hover { color:var(--primary); }
.merk-nav { position:relative; }
.badge { background:var(--accent); color:white; font-size:0.7rem; padding:2px 7px; border-radius:10px; position:absolute; top:-2px; right:-10px; }
.mobile-toggle { display:none; background:none; border:none; font-size:1.4rem; color:var(--text); cursor:pointer; }

/* HERO */
.hero { background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color:white; padding:60px 0 70px; text-align:center; }
.hero h1 { font-size:2.4rem; font-weight:800; margin-bottom:12px; }
.hero p { font-size:1.15rem; opacity:0.9; margin-bottom:32px; }
.search-box { background:white; border-radius:var(--radius); padding:20px; box-shadow:var(--shadow-lg); display:grid; grid-template-columns:2fr 1.5fr 1fr 1fr auto; gap:12px; max-width:1000px; margin:0 auto; align-items:end; }
.search-box .field { text-align:left; }
.search-box label { display:block; font-size:0.8rem; color:var(--text-muted); margin-bottom:4px; font-weight:500; }
.search-box input, .search-box select { width:100%; padding:12px 14px; border:2px solid var(--border); border-radius:var(--radius-sm); font-size:0.95rem; color:var(--text); background:var(--white); }
.search-box input:focus, .search-box select:focus { border-color:var(--primary); outline:none; }
.search-box button { background:var(--accent); color:white; border:none; padding:12px 24px; border-radius:var(--radius-sm); font-size:1rem; font-weight:600; cursor:pointer; height:46px; white-space:nowrap; }
.search-box button:hover { background:var(--accent-dark); }

/* SECTIONS */
.section { padding:48px 0; }
.section-title { font-size:1.6rem; font-weight:700; margin-bottom:24px; color:var(--text); }
.section-title a { font-size:0.9rem; font-weight:500; float:right; }

/* CATEGORIES */
.category-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:16px; }
.cat-card { background:white; border:1px solid var(--border); border-radius:var(--radius); padding:24px 16px; text-align:center; transition:all 0.2s; }
.cat-card:hover { border-color:var(--primary); box-shadow:var(--shadow); transform:translateY(-2px); }
.cat-card i { font-size:2rem; color:var(--primary); margin-bottom:12px; display:block; }
.cat-card span { display:block; font-weight:600; font-size:0.95rem; }
.cat-card .count { color:var(--text-muted); font-size:0.8rem; margin-top:4px; }

/* JOB CARDS */
.job-list { display:flex; flex-direction:column; gap:16px; }
.job-card { background:white; border:1px solid var(--border); border-radius:var(--radius); padding:20px 24px; transition:all 0.2s; display:flex; gap:20px; align-items:flex-start; }
.job-card:hover { box-shadow:var(--shadow); border-color:var(--primary-light); }
.job-card .job-logo { width:60px; height:60px; border-radius:var(--radius-sm); background:var(--primary-light); display:flex; align-items:center; justify-content:center; font-size:1.5rem; color:var(--primary); flex-shrink:0; font-weight:700; }
.job-card .job-body { flex:1; }
.job-card h3 { font-size:1.15rem; margin-bottom:4px; }
.job-card h3 a { color:var(--text); }
.job-card h3 a:hover { color:var(--primary); }
.job-card .job-meta { display:flex; flex-wrap:wrap; gap:8px 16px; font-size:0.88rem; color:var(--text-muted); margin-bottom:8px; }
.job-card .job-meta span { display:flex; align-items:center; gap:5px; }
.job-card .job-tags { display:flex; gap:8px; flex-wrap:wrap; }
.tag { padding:3px 10px; border-radius:20px; font-size:0.75rem; font-weight:500; }
.tag-jobart { background:var(--primary-light); color:var(--primary-dark); }
.tag-branche { background:#fff3e9; color:var(--accent-dark); }
.job-card .job-merk { background:none; border:1px solid var(--border); border-radius:50%; width:36px; height:36px; cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--text-muted); flex-shrink:0; }
.job-card .job-merk:hover, .job-card .job-merk.active { background:var(--accent); color:white; border-color:var(--accent); }

/* FILTER SIDEBAR */
.layout-with-sidebar { display:grid; grid-template-columns:260px 1fr; gap:32px; }
.sidebar { background:white; border:1px solid var(--border); border-radius:var(--radius); padding:20px; height:fit-content; position:sticky; top:84px; }
.sidebar h3 { font-size:1rem; margin-bottom:16px; padding-bottom:12px; border-bottom:1px solid var(--border); }
.filter-group { margin-bottom:20px; }
.filter-group h4 { font-size:0.85rem; color:var(--text-muted); margin-bottom:8px; text-transform:uppercase; letter-spacing:0.5px; }
.filter-group a { display:block; padding:6px 8px; border-radius:6px; font-size:0.9rem; color:var(--text); }
.filter-group a:hover, .filter-group a.active { background:var(--primary-light); color:var(--primary-dark); font-weight:500; }

/* JOB DETAIL */
.job-detail-header { background:white; border:1px solid var(--border); border-radius:var(--radius); padding:32px; margin-bottom:24px; }
.job-detail-header h1 { font-size:1.8rem; margin-bottom:8px; }
.job-detail-header .company { font-size:1.1rem; color:var(--primary); font-weight:600; }
.job-detail-header .meta { display:flex; flex-wrap:wrap; gap:16px; margin-top:16px; color:var(--text-muted); font-size:0.95rem; }
.job-detail-header .meta span { display:flex; align-items:center; gap:6px; }
.detail-grid { display:grid; grid-template-columns:1fr 320px; gap:24px; }
.detail-main { background:white; border:1px solid var(--border); border-radius:var(--radius); padding:32px; }
.detail-side > div { background:white; border:1px solid var(--border); border-radius:var(--radius); padding:24px; margin-bottom:20px; }
.detail-side h3 { font-size:1.05rem; margin-bottom:14px; }
.btn-apply { display:block; width:100%; background:var(--accent); color:white; text-align:center; padding:14px; border-radius:var(--radius-sm); font-weight:600; font-size:1.05rem; margin-bottom:10px; }
.btn-apply:hover { background:var(--accent-dark); color:white; }
.btn-merk { display:block; width:100%; background:white; border:2px solid var(--border); color:var(--text); text-align:center; padding:12px; border-radius:var(--radius-sm); font-weight:500; }
.btn-merk:hover { border-color:var(--accent); color:var(--accent); }
.btn-merk.active { background:var(--accent); color:white; border-color:var(--accent); }
.job-description { line-height:1.8; }
.job-description h2 { font-size:1.25rem; margin:24px 0 12px; }
.job-description p { margin-bottom:14px; }
.job-description ul, .job-description ol { margin:0 0 14px 24px; }

/* FB POST BOX */
.fb-post-box { background:#f0f2f5; border-radius:var(--radius-sm); padding:16px; font-family:inherit; white-space:pre-wrap; font-size:0.9rem; line-height:1.6; color:var(--text); max-height:400px; overflow-y:auto; }
.fb-post-actions { display:flex; gap:10px; margin-top:12px; }
.btn-copy { background:var(--primary); color:white; border:none; padding:10px 20px; border-radius:var(--radius-sm); cursor:pointer; font-weight:500; }
.btn-copy:hover { background:var(--primary-dark); }
.btn-fb { background:#1877f2; color:white; border:none; padding:10px 20px; border-radius:var(--radius-sm); cursor:pointer; font-weight:500; }

/* FORMS */
.form-container { max-width:700px; margin:0 auto; }
.form-card { background:white; border:1px solid var(--border); border-radius:var(--radius); padding:32px; }
.form-group { margin-bottom:20px; }
.form-group label { display:block; font-weight:600; margin-bottom:6px; font-size:0.95rem; }
.form-group .hint { font-size:0.82rem; color:var(--text-muted); font-weight:400; }
.form-group input, .form-group select, .form-group textarea { width:100%; padding:10px 14px; border:2px solid var(--border); border-radius:var(--radius-sm); font-size:0.95rem; font-family:inherit; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--primary); outline:none; }
.form-group textarea { min-height:120px; resize:vertical; }
.form-group input[type="checkbox"], .form-group input[type="radio"] { width:auto !important; margin:0; }
.consent-checkbox { width:20px !important; height:20px; flex-shrink:0; margin-top:2px !important; cursor:pointer; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.btn-submit { background:var(--accent); color:white; border:none; padding:14px 32px; border-radius:var(--radius-sm); font-size:1.05rem; font-weight:600; cursor:pointer; }
.btn-submit:hover { background:var(--accent-dark); }
.btn-secondary { background:white; color:var(--text); border:2px solid var(--border); padding:14px 32px; border-radius:var(--radius-sm); font-size:1.05rem; font-weight:500; cursor:pointer; }

/* ALERTS */
.alert { padding:14px 18px; border-radius:var(--radius-sm); margin-bottom:20px; }
.alert-success { background:#d4edda; color:#155724; border:1px solid #c3e6cb; }
.alert-error { background:#f8d7da; color:#721c24; border:1px solid #f5c6cb; }
.alert-info { background:var(--primary-light); color:var(--primary-dark); }

/* PREVIEW */
.preview-box { background:var(--bg); border:2px dashed var(--border); border-radius:var(--radius); padding:24px; margin-top:20px; }
.preview-box h3 { margin-bottom:16px; color:var(--text-muted); font-size:0.9rem; text-transform:uppercase; }

/* ADMIN */
.admin-header { background:var(--primary-dark); color:white; padding:16px 0; }
.admin-header .header-inner { justify-content:space-between; }
.admin-header .logo { color:white; }
.admin-header .logo strong { color:#ffcc66; }
.admin-nav { display:flex; gap:20px; }
.admin-nav a { color:white; font-size:0.9rem; opacity:0.85; }
.admin-nav a:hover, .admin-nav a.active { opacity:1; color:#ffcc66; }
.admin-content { padding:32px 0; }
.admin-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:20px; margin-bottom:32px; }
.stat-card { background:white; border:1px solid var(--border); border-radius:var(--radius); padding:24px; text-align:center; }
.stat-card .stat-icon { font-size:1.8rem; color:var(--primary); margin-bottom:10px; }
.stat-card .stat-value { font-size:2rem; font-weight:800; color:var(--text); }
.stat-card .stat-label { color:var(--text-muted); font-size:0.88rem; }
.admin-table { width:100%; background:white; border:1px solid var(--border); border-radius:var(--radius); border-collapse:collapse; }
.admin-table th { background:var(--bg); padding:12px 16px; text-align:left; font-size:0.85rem; text-transform:uppercase; letter-spacing:0.5px; color:var(--text-muted); border-bottom:1px solid var(--border); }
.admin-table td { padding:12px 16px; border-bottom:1px solid var(--border); font-size:0.92rem; }
.admin-table tr:hover { background:var(--bg); }
.status-badge { padding:3px 10px; border-radius:20px; font-size:0.78rem; font-weight:500; }
.status-pending { background:#fff3cd; color:#856404; }
.status-aktiv { background:#d4edda; color:#155724; }
.status-abgelaufen { background:#e2e3e5; color:#383d41; }
.btn-action { padding:5px 12px; border-radius:6px; font-size:0.82rem; border:1px solid var(--border); background:white; cursor:pointer; margin-right:4px; text-decoration:none; display:inline-block; }
.btn-approve { background:#28a745; color:white; border-color:#28a745; }
.btn-delete { background:#dc3545; color:white; border-color:#dc3545; }
.btn-edit { background:var(--primary); color:white; border-color:var(--primary); }

/* PAGINATION */
.pagination { display:flex; justify-content:center; gap:8px; margin-top:32px; }
.pagination a, .pagination span { padding:8px 14px; border:1px solid var(--border); border-radius:6px; background:white; font-size:0.9rem; }
.pagination .current { background:var(--primary); color:white; border-color:var(--primary); }

/* CONTENT PAGE */
.content-page { background:white; border:1px solid var(--border); border-radius:var(--radius); padding:48px; max-width:800px; margin:0 auto; }
.content-page h1 { font-size:1.8rem; margin-bottom:24px; color:var(--primary); }
.content-page h2 { font-size:1.3rem; margin:24px 0 12px; }
.content-page p { margin-bottom:16px; }
.todo { background:#fff3cd; padding:4px 8px; border-radius:4px; font-family:monospace; }

/* EMPTY STATE */
.empty-state { text-align:center; padding:60px 20px; color:var(--text-muted); }
.empty-state i { font-size:3rem; margin-bottom:16px; color:var(--border); }
.empty-state h3 { font-size:1.2rem; color:var(--text); margin-bottom:8px; }

/* LOGIN */
.login-box { max-width:400px; margin:80px auto; background:white; border:1px solid var(--border); border-radius:var(--radius); padding:40px; }
.login-box h1 { text-align:center; margin-bottom:24px; color:var(--primary); }

/* RESPONSIVE */
@media (max-width:900px) {
  .search-box { grid-template-columns:1fr 1fr; }
  .search-box button { grid-column:1/-1; }
  .layout-with-sidebar { grid-template-columns:1fr; }
  .sidebar { position:static; }
  .detail-grid { grid-template-columns:1fr; }
  .main-nav { display:none; position:absolute; top:64px; left:0; right:0; background:white; flex-direction:column; padding:16px; box-shadow:var(--shadow-lg); }
  body.nav-open .main-nav { display:flex; }
  .mobile-toggle { display:block; }
}
@media (max-width:600px) {
  .hero h1 { font-size:1.8rem; }
  .hero p { font-size:1rem; }
  .search-box { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
  .job-card { flex-direction:column; }
  .content-page { padding:24px; }
}

/* FOOTER */
.site-footer { background:var(--text); color:#adb5bd; padding:56px 0 0; margin-top:0; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; }
.footer-col h4 { color:#fff; font-size:1rem; font-weight:600; margin-bottom:16px; text-transform:uppercase; letter-spacing:0.5px; font-size:0.85rem; }
.footer-col p { font-size:0.9rem; line-height:1.7; color:#adb5bd; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:10px; }
.footer-col ul li a { color:#adb5bd; font-size:0.9rem; transition:color 0.2s; }
.footer-col ul li a:hover { color:var(--accent); }
.footer-col ul li a i { margin-right:6px; }
.footer-bottom { border-top:1px solid #444; padding:20px 0; text-align:center; }
.footer-bottom p { font-size:0.85rem; color:#888; margin:0; }

@media (max-width:900px) {
  .footer-grid { grid-template-columns:1fr 1fr; gap:28px; }
}
@media (max-width:600px) {
  .footer-grid { grid-template-columns:1fr; gap:24px; }
}