/* BBCode Toolbar Buttons: Darkmode Anpassung */
[data-theme="dark"] .bb-btn {
  background: #232b3a !important;
  color: #e5e7eb !important;
  border-color: #334155 !important;
}
[data-theme="dark"] .bb-btn.active,
[data-theme="dark"] .bb-btn:active,
[data-theme="dark"] .bb-btn:focus {
  background: #334155 !important;
  color: #fff !important;
  border-color: #60a5fa !important;
}
[data-theme="dark"] .bb-btn:hover {
  background: #2a3447 !important;
  color: #fff !important;
  border-color: #60a5fa !important;
}
/* Ensure italic button in BBCode toolbars is always visible and italic */
.bb-btn em, .copyright-token-btn em {
  font-style: italic;
  font-weight: 600;
  font-size: 1.1em;
  color: inherit;
  display: inline;
}
:root{--bg:#ffffff;--fg:#111827;--card:#f9fafb;--muted:#6b7280;--primary:#2563eb;--border:#e5e7eb;--input-bg:#ffffff;--input-fg:#111827;--input-border:#d1d5db;--input-placeholder:#6b7280;}
[data-theme="dark"]{--bg:#0b1220;--fg:#e5e7eb;--card:#111827;--muted:#9ca3af;--primary:#60a5fa;--border:#1f2937;--input-bg:#0f172a;--input-fg:#e5e7eb;--input-border:#334155;--input-placeholder:#94a3b8;}
html,body{height:100%;}
body{background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Arial;}
.container{max-width:1100px;}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;}
.btn-primary{background:var(--primary);border-color:var(--primary);}
.text-muted{color:var(--muted)!important;}
a{color:var(--primary);}
.navbar{border-bottom:1px solid var(--border);}

/* Force brand left and nav items right regardless of bootstrap quirks */
.navbar .container{justify-content:flex-start !important}
.navbar .navbar-collapse{margin-left:auto !important}
.navbar-brand{margin-right:.5rem}

/* Layout: left brand (75%), right nav (25%) */
.nav-left{flex:0 0 75%;}
.nav-right{flex:0 0 25%; display:flex; align-items:center; justify-content:flex-end}

@media (max-width: 991px) {
  /* On smaller screens let Bootstrap handle stacking */
  .nav-left,.nav-right{flex-basis:auto!important;}
  .nav-right{justify-content:flex-start}
}

.main-navbar .container, .main-navbar .container-fluid {display:grid;grid-template-columns:75% 1fr;align-items:center;gap:0}
.main-navbar .navbar-brand{margin:0}
.main-navbar .navbar-collapse{justify-self:end;width:100%;padding-right:1rem;justify-content:flex-end}
.main-navbar .navbar-nav{margin-left:0;justify-content:flex-end;gap:.5rem}
.main-navbar .nav-top-btn{height:31px;min-height:31px;box-sizing:border-box}
.main-navbar .navbar-site-name{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100vw - 140px)}

/* Ensure brand occupies first grid column and toggler/collapse sit in second column */
.main-navbar .navbar-brand{grid-column:1}
.main-navbar .navbar-toggler{grid-column:2;justify-self:start}
.main-navbar .navbar-collapse{grid-column:2}
@media (max-width:991px){
  .main-navbar .container, .main-navbar .container-fluid{display:block}
  .main-navbar .navbar-toggler{margin-left:2mm}
  .main-navbar .navbar-collapse{padding-right:0}
  .main-navbar .navbar-nav{
    justify-content:flex-start;
    align-items:flex-start !important;
    margin-top:.55rem;
    margin-left:2mm;
    margin-right:0;
    gap:1mm;
  }
  .main-navbar .navbar-nav .nav-item{
    width:100%;
    display:flex;
    justify-content:flex-start;
  }
  .main-navbar .navbar-nav .nav-item .btn,
  .main-navbar .navbar-nav .nav-item .nav-link.btn{
    margin-left:0 !important;
  }
  .main-navbar .navbar-nav .dropdown-menu-end{
    right:auto !important;
    left:0 !important;
  }
  .main-navbar .navbar-nav .nav-item:last-child{
    width:auto;
    justify-content:flex-start;
    align-self:flex-start;
    margin-top:.2rem;
    margin-left:0;
  }
}
.table{color:var(--fg);}
.table thead th{border-bottom:1px solid var(--border);}
.table td,.table th{border-top:1px solid var(--border);}
code{background:rgba(127,127,127,.15);padding:2px 6px;border-radius:6px;display:inline-block;}

/* Small language toggle buttons inside user dropdown */
.lang-btn{
  width:2.25rem;
  padding-left:.35rem;
  padding-right:.35rem;
  text-align:center;
}

/* Upload feedback */
#dropzone.bg-light{ border-color:var(--primary); background: rgba(13,110,253,0.04); }
.upload-name{ margin-top:.5rem; font-size:.95rem; color:var(--muted); display:none; }

/* --- Darkmode Fix für Eingabefelder (Bootstrap + eigene Controls) --- */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select,
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus,
[data-theme="dark"] textarea,
[data-theme="dark"] input,
[data-theme="dark"] select{
  background-color: var(--input-bg) !important;
  color: var(--input-fg) !important;
  border-color: var(--input-border) !important;
}

[data-theme="dark"] .form-control::placeholder,
[data-theme="dark"] textarea::placeholder,
[data-theme="dark"] input::placeholder{
  color: var(--input-placeholder) !important;
  opacity: 1;
}

[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus{
  box-shadow: 0 0 0 .25rem rgba(96,165,250,.25) !important;
}

[data-theme="dark"] .form-control:disabled,
[data-theme="dark"] .form-select:disabled,
[data-theme="dark"] input:disabled,
[data-theme="dark"] textarea:disabled{
  background-color: rgba(255,255,255,.06) !important;
  color: rgba(229,231,235,.7) !important;
}

[data-theme="dark"] .input-group-text{
  background-color: rgba(255,255,255,.06) !important;
  color: var(--input-fg) !important;
  border-color: var(--input-border) !important;
}

[data-theme="dark"] .form-check-input{
  background-color: var(--input-bg) !important;
  border-color: var(--input-border) !important;
}
[data-theme="dark"] .form-check-input:checked{
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
}

/* Mobile usability for admin user management */
@media (max-width: 991.98px){
  .admin-users-responsive{
    overflow-x:visible;
  }

  .admin-users-table thead{
    display:none !important;
  }

  .admin-users-table,
  .admin-users-table tbody,
  .admin-users-table tr,
  .admin-users-table td{
    display:block !important;
    width:100% !important;
  }

  .admin-users-table tr{
    border:1px solid var(--border);
    border-radius:10px;
    padding:.6rem .75rem;
    margin-bottom:.75rem;
    background:var(--card);
    table-layout:auto;
  }

  .admin-users-table td{
    border-top:0;
    padding:.35rem 0;
  }

  .admin-users-table td[data-label]:not(.admin-users-actions)::before{
    content:attr(data-label);
    display:block;
    margin-bottom:.15rem;
    color:var(--muted);
    font-size:.75rem;
    font-weight:600;
  }

  .admin-users-table .d-flex.gap-2.align-items-center{
    flex-direction:column;
    align-items:stretch !important;
    gap:.5rem !important;
  }

  .admin-users-table .d-flex.gap-2.align-items-center .form-control{
    min-width:0 !important;
  }

  .admin-users-actions{
    border-top:1px solid var(--border);
    margin-top:.35rem;
    padding-top:.6rem !important;
    text-align:left !important;
  }

  .admin-users-actions form{
    display:block !important;
    margin:0 0 .45rem 0;
  }

  .admin-users-actions .btn{
    width:100%;
  }

  .admin-users-table .badge{
    white-space:normal;
  }

  .admin-users-mobile,
  .admin-user-mobile-card,
  .admin-user-mobile-attrs,
  .admin-user-mobile-actions{
    width:100%;
    max-width:100%;
  }

  .admin-user-mobile-attrs > div{
    display:block;
    margin-bottom:.3rem;
    word-break:break-word;
  }

  .admin-user-mobile-actions form{
    margin:0;
  }

  .admin-user-mobile-actions .btn{
    width:100%;
  }

  .admin-user-mobile-card + .admin-user-mobile-card{
    border-top:1px solid var(--border);
    padding-top:.9rem;
    margin-top:.2rem;
  }

  .admin-files-responsive{
    overflow-x:visible;
  }

  .admin-files-table thead{
    display:none !important;
  }

  .admin-files-table,
  .admin-files-table tbody,
  .admin-files-table tr,
  .admin-files-table td{
    display:block !important;
    width:100% !important;
  }

  .admin-files-table tr{
    border:1px solid var(--border);
    border-radius:10px;
    padding:.6rem .75rem;
    margin-bottom:.75rem;
    background:var(--card);
  }

  .admin-files-table td{
    border-top:0;
    padding:.3rem 0;
    word-break:break-word;
  }

  .admin-files-table td[data-label]:not(.admin-files-actions)::before{
    content:attr(data-label);
    display:block;
    margin-bottom:.15rem;
    color:var(--muted);
    font-size:.75rem;
    font-weight:600;
  }

  .admin-files-actions{
    border-top:1px solid var(--border);
    margin-top:.35rem;
    padding-top:.55rem !important;
    text-align:left !important;
  }

  .admin-files-actions form{
    display:block !important;
    margin:0;
  }

  .admin-files-actions .btn{
    width:100%;
  }
}

.back-icon-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.5cm;
  min-width:1.5cm;
  max-width:1.5cm;
  height:.9cm;
  padding:0;
  flex:0 0 auto;
  margin-bottom:.65rem;
  font-size:1.15rem;
  font-weight:700;
  line-height:1;
  border-radius:.5rem;
  border:1px solid var(--primary);
  background:color-mix(in srgb, var(--primary) 10%, transparent);
  color:var(--primary) !important;
  box-shadow:0 1px 4px rgba(0,0,0,.12);
  text-decoration:none;
}
.back-icon-link:hover,
.back-icon-link:focus{
  background:color-mix(in srgb, var(--primary) 18%, transparent);
  border-color:var(--primary);
  color:var(--primary) !important;
}
