/* =========================================================
   PN / Regionaler Nachrichtenüberblick
   Modernes UI Theme
   Max. border-radius: 4px
   ========================================================= */

:root{
  --pn-navy-950:#071A2B;
  --pn-navy-900:#0A2C4A;
  --pn-navy-800:#123E63;
  --pn-blue-600:#2479D8;
  --pn-blue-500:#2F8CFF;
  --pn-blue-100:#EAF3FF;

  --pn-bg:#F4F7FA;
  --pn-surface:#FFFFFF;
  --pn-surface-2:#F8FAFC;
  --pn-text:#16202A;
  --pn-muted:#66717E;
  --pn-border:#D8E0E8;
  --pn-border-strong:#C6D0DB;

  --pn-success:#18794E;
  --pn-warning:#9A6700;
  --pn-danger:#B42318;
  --pn-info:#1769AA;

  --pn-radius:4px;
  --pn-shadow-sm:0 1px 2px rgba(7,26,43,.05),0 1px 5px rgba(7,26,43,.04);
  --pn-shadow-md:0 8px 24px rgba(7,26,43,.08);
  --pn-focus:0 0 0 3px rgba(47,140,255,.16);
}

html{
  scroll-behavior:smooth;
  background:var(--pn-bg);
}

body{
  margin:0;
  background:var(--pn-bg);
  color:var(--pn-text);
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:16px;
  line-height:1.58;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

::selection{
  background:var(--pn-blue-100);
  color:var(--pn-navy-950);
}

a{
  color:var(--pn-info);
  text-decoration-thickness:.075em;
  text-underline-offset:.18em;
}

a:hover{
  color:var(--pn-navy-900);
}

img{
  max-width:100%;
  height:auto;
}

/* ---------- Strict 4px radius policy ---------- */

*,
*::before,
*::after{
  border-radius:min(var(--pn-radius),4px);
}

.rounded,
.rounded-1,
.rounded-2,
.rounded-3,
.rounded-4,
.rounded-5,
.rounded-pill,
.rounded-circle,
.card,
.alert,
.btn,
.form-control,
.form-select,
.input-group,
.input-group-text,
.list-group,
.list-group-item,
.dropdown-menu,
.modal-content,
.offcanvas,
.badge,
.pagination,
.page-link,
.progress,
.navbar-toggler,
.accordion-item,
.admin-card,
.ai-notice{
  border-radius:var(--pn-radius)!important;
}

/* ---------- Layout ---------- */

.container.page,
.article{
  max-width:1120px;
}

main{
  min-height:55vh;
}

section,
article{
  scroll-margin-top:90px;
}

/* ---------- Typography ---------- */

h1,h2,h3,h4,h5,h6{
  color:var(--pn-navy-950);
  font-weight:700;
  letter-spacing:-.018em;
  line-height:1.18;
}

h1{
  font-size:clamp(2rem,4vw,3.4rem);
  letter-spacing:-.035em;
}

h2{
  letter-spacing:-.025em;
}

.lead,
.article-lead{
  color:#394555;
  line-height:1.65;
}

.article-lead{
  font-size:1.18rem;
  font-weight:450;
}

.body{
  font-size:1.04rem;
  line-height:1.78;
  color:#25313D;
}

.kicker{
  display:block;
  color:var(--pn-blue-600);
  font-size:.75rem;
  font-weight:750;
  letter-spacing:.09em;
  text-transform:uppercase;
  margin-bottom:.5rem;
}

.text-secondary,
.text-muted{
  color:var(--pn-muted)!important;
}

/* ---------- Header / navigation ---------- */

header{
  background:rgba(255,255,255,.96)!important;
  border-color:var(--pn-border)!important;
  box-shadow:0 1px 0 rgba(7,26,43,.02);
}

.brand{
  color:var(--pn-navy-950);
  font-size:1.08rem;
  font-weight:800;
  text-decoration:none;
  letter-spacing:-.02em;
}

.brand:hover{
  color:var(--pn-blue-600);
}

nav .btn{
  min-height:34px;
}

/* ---------- Buttons ---------- */

.btn{
  border-width:1px;
  font-weight:650;
  letter-spacing:-.005em;
  box-shadow:none!important;
  transition:background-color .14s ease,border-color .14s ease,color .14s ease,transform .14s ease;
}

.btn:active{
  transform:translateY(1px);
}

.btn-dark{
  background:var(--pn-navy-900);
  border-color:var(--pn-navy-900);
}

.btn-dark:hover,
.btn-dark:focus{
  background:var(--pn-navy-800);
  border-color:var(--pn-navy-800);
}

.btn-outline-secondary{
  color:#45515E;
  border-color:var(--pn-border-strong);
  background:var(--pn-surface);
}

.btn-outline-secondary:hover{
  color:var(--pn-navy-950);
  background:var(--pn-surface-2);
  border-color:#AEBAC6;
}

.btn-outline-primary{
  color:var(--pn-info);
  border-color:#A8C9EA;
}

.btn-outline-primary:hover{
  color:#fff;
  background:var(--pn-info);
  border-color:var(--pn-info);
}

.btn-outline-danger{
  color:var(--pn-danger);
  border-color:#E7B6B1;
}

/* ---------- Cards / panels ---------- */

.card,
.admin-card,
.ai-notice,
.border.rounded{
  background:var(--pn-surface);
  border-color:var(--pn-border)!important;
  box-shadow:var(--pn-shadow-sm);
}

.card{
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}

a.card:hover{
  border-color:#B8C5D2!important;
  box-shadow:var(--pn-shadow-md);
  transform:translateY(-1px);
}

.ai-notice{
  border-left:3px solid var(--pn-blue-500)!important;
  background:linear-gradient(90deg,#F4F9FF 0,#FFF 44%);
}

/* ---------- Article lists ---------- */

article.border-bottom,
.list-group-item{
  border-color:var(--pn-border)!important;
}

article.border-bottom{
  padding-top:1.7rem!important;
  padding-bottom:1.7rem!important;
}

article.border-bottom h2 a{
  color:var(--pn-navy-950);
  text-decoration:none;
}

article.border-bottom h2 a:hover{
  color:var(--pn-blue-600);
}

.source-note{
  color:var(--pn-muted);
}

.sources{
  border-color:var(--pn-border)!important;
}

.sources a{
  display:inline-block;
  margin:.15rem 0;
}

/* ---------- Taxonomy: cities / categories / tags ---------- */

.badge{
  padding:.42rem .62rem;
  font-weight:600;
}

.text-bg-light{
  background:#F7F9FB!important;
  color:#44515E!important;
}

.badge.border,
.rounded-pill.border{
  border-color:var(--pn-border)!important;
}

.badge:hover,
.rounded-pill:hover{
  background:var(--pn-blue-100)!important;
  color:var(--pn-navy-900)!important;
  border-color:#BFD8F3!important;
}

.d-inline-flex.flex-wrap.gap-2 a{
  color:#52606D;
  font-size:.8rem;
}

/* ---------- Forms ---------- */

.form-control,
.form-select,
.input-group-text{
  background:var(--pn-surface);
  border-color:var(--pn-border-strong);
  color:var(--pn-text);
}

.form-control:hover,
.form-select:hover{
  border-color:#AEBAC6;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.btn:focus-visible,
.page-link:focus{
  border-color:var(--pn-blue-500);
  box-shadow:var(--pn-focus)!important;
  outline:0;
}

.form-control::placeholder{
  color:#98A2AE;
}

.form-check-input:checked{
  background-color:var(--pn-blue-600);
  border-color:var(--pn-blue-600);
}

/* ---------- Pagination ---------- */

.pagination{
  gap:.3rem;
}

.page-link{
  min-width:38px;
  text-align:center;
  color:#44515E;
  background:var(--pn-surface);
  border-color:var(--pn-border);
}

.page-link:hover{
  color:var(--pn-navy-950);
  background:#F1F5F9;
  border-color:#BBC7D2;
}

.page-item.active .page-link{
  color:#fff;
  background:var(--pn-navy-900);
  border-color:var(--pn-navy-900);
}

.page-item.disabled .page-link{
  background:#F6F8FA;
  color:#A0A9B3;
}

/* ---------- Alerts ---------- */

.alert{
  border-width:1px;
  box-shadow:none;
}

.alert-success{
  color:#145C3D;
  background:#EDF8F2;
  border-color:#B8E0CA;
}

.alert-warning{
  color:#735000;
  background:#FFF8E6;
  border-color:#EFD69A;
}

.alert-danger{
  color:#842019;
  background:#FFF1F0;
  border-color:#F0C0BC;
}

.alert-info{
  color:#154D72;
  background:#EEF7FD;
  border-color:#BEDCF1;
}

.alert-light{
  background:#FAFBFC;
  border-color:var(--pn-border);
}

/* ---------- Admin ---------- */

.admin-wrap{
  max-width:1280px!important;
}

.admin-card{
  border-radius:var(--pn-radius)!important;
}

.navbar.bg-dark{
  background:var(--pn-navy-950)!important;
}

.navbar-dark .navbar-nav .nav-link{
  color:#C9D3DD;
  border-radius:var(--pn-radius);
}

.navbar-dark .navbar-nav .nav-link:hover{
  color:#fff;
  background:rgba(255,255,255,.07);
}

.navbar-dark .navbar-nav .nav-link.active{
  color:#fff;
  background:rgba(47,140,255,.20);
}

.table{
  --bs-table-bg:transparent;
  --bs-table-border-color:var(--pn-border);
}

.table thead th{
  color:#5E6A76;
  font-size:.78rem;
  font-weight:750;
  letter-spacing:.035em;
  text-transform:uppercase;
  border-bottom-width:1px;
}

.table td{
  color:#26333F;
}

.muted-row{
  opacity:.52!important;
}

/* ---------- Progress ---------- */

.progress{
  background:#E6ECF2;
}

.progress-bar{
  background:var(--pn-blue-600);
}

/* ---------- Footer ---------- */

footer{
  background:#EDF2F6;
  border-color:var(--pn-border)!important;
}

footer a{
  color:var(--pn-navy-800);
}

/* ---------- Accessibility ---------- */

:focus-visible{
  outline:2px solid transparent;
}

@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto!important;
    transition:none!important;
    animation:none!important;
  }
}

/* ---------- Mobile ---------- */

@media (max-width:767.98px){
  body{
    font-size:15px;
  }

  h1{
    font-size:2rem;
  }

  .container.page,
  .article{
    padding-left:1rem;
    padding-right:1rem;
  }

  .btn{
    min-height:38px;
  }

  article.border-bottom{
    padding-top:1.35rem!important;
    padding-bottom:1.35rem!important;
  }

  .pagination{
    gap:.2rem;
  }

  .page-link{
    min-width:36px;
    padding:.4rem .55rem;
  }
}
