:root{
  --dhb-auth-accent:#111827;
  --dhb-auth-text:#0f172a;
  --dhb-auth-border:#e5e7eb;
  --dhb-auth-card-bg:#ffffff;
  --dhb-auth-radius:12px;
  --dhb-auth-max:980px;
  --dhb-auth-shadow:0 1px 2px rgba(0,0,0,.08);
  --dhb-auth-font-title:28px;
  --dhb-auth-font-text:16px;
  --dhb-auth-font-button:15px;
  --dhb-label-color:#0f172a;
  --dhb-label-size:16px;
  --dhb-field-gap:16px;
  --dhb-input-text:#0f172a;
  --dhb-input-bg:#ffffff;
  --dhb-input-border:#e5e7eb;
  --dhb-input-radius:8px;
  --dhb-input-pad-y:12px;
  --dhb-input-pad-x:16px;
  --dhb-input-focus-border:#3b82f6;
  --dhb-input-focus-ring:rgba(59,130,246,.25);
}

/* Wrapper / Grundlayout */
.dhb-auth-wrap,.dhb-dashboard{
  max-width:var(--dhb-auth-max);
  margin:3rem auto;
  padding:0 1rem;
  color:var(--dhb-auth-text);
  font-size:var(--dhb-auth-font-text);
}

.dhb-form h2,.dhb-dash-header h2{
  font-size:var(--dhb-auth-font-title);
  line-height:1.2;
  margin:0 0 .75rem;
}

.dhb-field label,.dhb-list,.dhb-card p{
  font-size:var(--dhb-auth-font-text);
}

/* Karten / Form */
.dhb-form,.dhb-card{
  background:var(--dhb-auth-card-bg);
  border:1px solid var(--dhb-auth-border);
  border-radius:var(--dhb-auth-radius);
  box-shadow:var(--dhb-auth-shadow);
  padding:1.25rem 1.5rem;
  margin-bottom:2rem;
}
.dhb-form{padding:2rem;}

.dhb-field{margin-bottom:1rem;}
.dhb-field input{
  width:100%;
  padding:.75rem 1rem;
  color:var(--dhb-auth-text);
  border:1px solid var(--dhb-auth-border);
  background:#fff;
  border-radius:calc(var(--dhb-auth-radius) - 4px);
  font-size:var(--dhb-auth-font-text);
  outline:none;
}
.dhb-field input:focus{
  border-color:color-mix(in srgb, var(--dhb-auth-accent), #ffffff 70%);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--dhb-auth-accent), #ffffff 85%);
}

/* Buttons (Basis) */
.dhb-btn{
  display:inline-block;
  padding:.6rem 1rem;
  border-radius:var(--dhb-auth-radius);
  border:1px solid var(--dhb-auth-accent);
  color:var(--dhb-auth-accent);
  text-decoration:none;
  background:transparent;
  font-size:var(--dhb-auth-font-button);
  cursor:pointer;
}
.dhb-btn:hover{opacity:.9;}
.dhb-btn--ghost{background:transparent;}

.dhb-alert{padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;}
.dhb-alert--error{background:#fee2e2;border:1px solid #ef4444;}

.dhb-muted{opacity:.8;}
.dhb-dash-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;}
.dhb-grid{display:grid;gap:var(--dhb-dash-gap,16px);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));}
.dhb-list{list-style:none;padding:0;margin:.5rem 0 0;}
.dhb-list li{margin:.35rem 0;}

.dhb-auth-logo{display:block;margin:0 auto 1rem;max-width:240px;height:auto;}

/* =========================
   Core-Login-Form (wp_login_form)
   ========================= */
.dhb-form form#loginform{display:grid;gap:.9rem;}
.dhb-form form#loginform p{margin:0;}
.dhb-form form#loginform p label{display:block;font-weight:600;margin:0 0 .35rem;}

.dhb-form form#loginform input[type="text"],
.dhb-form form#loginform input[type="password"]{
  width:100%;
  padding:.75rem 1rem;
  color:var(--dhb-auth-text);
  border:1px solid var(--dhb-auth-border);
  background:#fff;
  border-radius:calc(var(--dhb-auth-radius) - 4px);
  font-size:var(--dhb-auth-font-text);
  outline:none;
}
.dhb-form form#loginform input[type="text"]:focus,
.dhb-form form#loginform input[type="password"]:focus{
  border-color:color-mix(in srgb, var(--dhb-auth-accent), #ffffff 70%);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--dhb-auth-accent), #ffffff 85%);
}

.dhb-form form#loginform .login-remember{
  display:flex;align-items:center;gap:.5rem;margin-top:.25rem;
}
.dhb-form form#loginform .login-remember label{margin:0;font-weight:500;}
.dhb-form form#loginform .submit{margin-top:.25rem;}

.dhb-form form#loginform #wp-submit{
  width:100%;
  padding:.75rem 1rem;
  border-radius:var(--dhb-auth-radius);
  border:1px solid var(--dhb-auth-accent);
  background:var(--dhb-auth-accent);
  color:#fff;
  font-size:var(--dhb-auth-font-button);
  font-weight:600;
  cursor:pointer;
}
.dhb-form form#loginform #wp-submit:hover{filter:brightness(.96);}

.dhb-form .dhb-muted{text-align:center;margin-top:.75rem;}

/* Kleinere Screens */
@media (max-width:480px){
  .dhb-auth-wrap,.dhb-dashboard{margin:2rem auto;}
  .dhb-form{padding:1.25rem;}
  .dhb-form h2{font-size:calc(var(--dhb-auth-font-title) - 4px);}
}

/* Floating-Button (optional) */
.dhb-fab{
  position:fixed;right:var(--dhb-fab-offset,20px);bottom:var(--dhb-fab-offset,20px);
  width:var(--dhb-fab-size,46px);height:var(--dhb-fab-size,46px);
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;background:var(--dhb-auth-accent);color:#fff;
  text-decoration:none;box-shadow:var(--dhb-auth-shadow);
}

/* ================================
   DERHALLER – Button Normalizer (scoped)
   ================================ */
.dhb-scope{
  --dhb-btn-pad-y:.6rem;
  --dhb-btn-pad-x:1rem;
  --dhb-btn-radius:var(--dhb-auth-radius,12px);
  --dhb-btn-fz:var(--dhb-auth-font-button,15px);
  --dhb-btn-accent:var(--dhb-auth-accent,#111827);
  --dhb-btn-text:var(--dhb-auth-text,#0f172a);
}

.dhb-scope .dhb-btn,
.dhb-scope :is(button,
               input[type="submit"],
               a.button,
               .button,
               .wp-element-button,
               .wp-block-button__link,
               .ast-button,
               .ast-custom-button){
  -webkit-appearance:none;appearance:none;
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:var(--dhb-btn-pad-y) var(--dhb-btn-pad-x);
  border-radius:var(--dhb-btn-radius);
  border:1px solid var(--dhb-btn-accent) !important;
  background:transparent !important;
  color:var(--dhb-btn-accent) !important;
  font-size:var(--dhb-btn-fz);font-weight:600;text-decoration:none !important;line-height:1.2;cursor:pointer;
}
.dhb-scope :is(button,
               input[type="submit"],
               a.button,
               .button,
               .wp-element-button,
               .wp-block-button__link,
               .ast-button,
               .ast-custom-button,
               .dhb-btn):hover{opacity:.9;}
.dhb-scope :is(button,
               input[type="submit"],
               a.button,
               .button,
               .wp-element-button,
               .wp-block-button__link,
               .ast-button,
               .ast-custom-button,
               .dhb-btn):focus{
  outline:none;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--dhb-btn-accent), #ffffff 85%);
}
.dhb-scope .dhb-btn--primary{background:var(--dhb-btn-accent) !important;color:#fff !important;}
.dhb-scope #loginform #wp-submit{background:var(--dhb-btn-accent) !important;color:#fff !important;}
.dhb-scope .dhb-btn--ghost{border-color:transparent !important;background:transparent !important;color:var(--dhb-btn-accent) !important;}
.dhb-scope .wp-block-button__link{box-shadow:none !important;}
.dhb-scope a.dhb-link{text-decoration:none;}

/* ===== Kundenverwaltung (ClientsManager) ===== */
.dhb-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.dhb-form-grid .full{grid-column:1/-1}
.dhb-help{opacity:.75;font-size:.9em;margin-top:.25rem}
.dhb-table{width:100%;border-collapse:collapse;margin-top:.75rem}
.dhb-table th,.dhb-table td{padding:.5rem;border-bottom:1px solid var(--dhb-clients-border,#e5e7eb);text-align:left}
.dhb-table.striped tbody tr:nth-child(odd){background:rgba(0,0,0,.015)}
.dhb-actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}

/* Mobile: Formular einspaltig */
@media (max-width:640px){
  .dhb-form-grid{grid-template-columns:1fr}
}

/* Mobile: Tabelle als Cards */
@media (max-width:640px){
  .dhb-table thead{display:none}
  .dhb-table,.dhb-table tbody,.dhb-table tr,.dhb-table td{display:block;width:100%}
  .dhb-table tr{
    border:1px solid var(--dhb-clients-border,#e5e7eb);
    border-radius:var(--dhb-auth-radius,12px);
    padding:.75rem .9rem;
    margin:.75rem 0;
    background:var(--dhb-auth-card-bg,#fff);
    box-shadow:var(--dhb-auth-shadow);
  }
  .dhb-table td{border:none !important;padding:.35rem 0;}
  .dhb-table td::before{
    content:attr(data-label);
    display:block;font-size:.78em;opacity:.65;margin-bottom:.15rem;
  }
  .dhb-actions{justify-content:flex-start;gap:.5rem;margin-top:.25rem;}
  .dhb-table td .dhb-btn{margin-right:.4rem;margin-bottom:.35rem;}
}

/* ===== Projekte (ClientProjects) ===== */
.dhb-projects-list{list-style:none;margin:.5rem 0 0;padding:0}
.dhb-projects-list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--dhb-auth-border,#e5e7eb)}
.dhb-projects-list a.dhb-link{text-decoration:none;color:var(--dhb-auth-accent,#111827)}

/* Mobile: Liste in Cards */
@media (max-width:640px){
  .dhb-projects-list li{
    flex-direction:column;align-items:stretch;gap:.6rem;padding:.75rem .9rem;
    border:1px solid var(--dhb-auth-border,#e5e7eb);
    border-radius:var(--dhb-auth-radius,12px);
    background:var(--dhb-auth-card-bg,#fff);
  }
  .dhb-projects-list li > span:last-child{display:flex;flex-wrap:wrap;gap:.5rem}
  .dhb-projects-list .dhb-btn{flex:1 1 auto;text-align:center}
}

/* ===== Modal (beide Module) ===== */
.dhb-modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;z-index:99999}
.dhb-modal.is-open{display:block}
.dhb-modal__inner{position:absolute;inset:auto 2vw 2vw 2vw;top:5vh;background:#fff;border-radius:12px;box-shadow:0 12px 24px rgba(0,0,0,.2);overflow:hidden;max-height:90vh}
.dhb-modal__bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;background:#111827;color:#fff}
.dhb-modal__title{font-size:14px;margin:0}
.dhb-modal__close{background:transparent;border:none;color:#fff;font-size:20px;cursor:pointer;line-height:1}
.dhb-modal__frame{width:100%;height:var(--dhb-modal-height,70vh);border:0;display:block}

/* Mobile: Modal fast Vollbild */
@media (max-width:640px){
  .dhb-modal__inner{inset:4vh 0 0 0;top:auto;border-radius:12px 12px 0 0}
  .dhb-modal__frame{height:calc(100vh - 56px)}
}

/* =====================================
   Accessibility: Reduced Motion Support
   ===================================== */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  /* Fokus-Schatten etwas dezenter */
  .dhb-scope :is(button,
                 input[type="submit"],
                 a.button,
                 .button,
                 .wp-element-button,
                 .wp-block-button__link,
                 .ast-button,
                 .ast-custom-button,
                 .dhb-btn):focus {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--dhb-btn-accent), #ffffff 85%);
  }
}

/* Kundenverwaltung: Tabelle komplett rahmenlos */
.dhb-table,
.dhb-table th,
.dhb-table td {
  border: none !important;
  border-bottom: none !important;
  background: transparent; /* optional: falls Zebrastripe bleibt */
}




