.abm-portal {
  --abm-black: #111;
  --abm-ink: #1d1d1b;
  --abm-gold: #c79632;
  --abm-gold-dark: #8a6419;
  --abm-paper: #f7f6f2;
  --abm-white: #fff;
  --abm-muted: #686761;
  --abm-line: #d8d3c8;
  width: min(100%, 1280px);
  margin: 0 auto;
  color: var(--abm-ink);
  background: var(--abm-white);
  font-family: Roboto, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
}

body.abm-app-page { margin: 0; background: #e9e9e7; }
body.abm-app-page .abm-portal { width: 100%; max-width: none; min-height: 100vh; }

.abm-portal *, .abm-portal *::before, .abm-portal *::after { box-sizing: border-box; }
/* Preserve authored German spelling throughout the portal and handbook.
   The repeated scope also wins against theme-level heading/button rules. */
html body .abm-portal.abm-portal,
html body .abm-portal.abm-portal * {
  text-transform: none !important;
}
html body .abm-portal.abm-portal input::placeholder,
html body .abm-portal.abm-portal textarea::placeholder,
html body .abm-portal.abm-portal input::file-selector-button {
  text-transform: none !important;
}
.abm-portal fieldset { min-inline-size: 0; max-width: 100%; }
.abm-portal .abm-form, .abm-portal .abm-field-grid, .abm-portal .abm-inline-form { min-width: 0; }
.abm-portal h1, .abm-portal h2, .abm-portal h3, .abm-portal p { letter-spacing: 0; }
.abm-portal h1 { margin: 0; font-size: 48px; line-height: 1.08; }
.abm-portal h2 { margin: 0; font-size: 36px; line-height: 1.14; }
.abm-portal a { color: var(--abm-gold-dark); }
.abm-portal-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: calc(22px + env(safe-area-inset-top)) max(clamp(18px, 4vw, 48px), env(safe-area-inset-right)) 22px max(clamp(18px, 4vw, 48px), env(safe-area-inset-left)); border-bottom: 1px solid var(--abm-line); background: #ececea; }
.abm-portal-header p { margin: 2px 0 0; color: var(--abm-muted); font-size: 13px; }
.abm-wordmark { display: inline-flex; text-decoration: none; font-size: 23px; line-height: 1; }
.abm-brand-abraka { color: var(--abm-gold); font-weight: 500; }
.abm-brand-booking { color: #747474; font-weight: 300; }
.abm-user-menu { display: flex; align-items: center; gap: 18px; }
.abm-user-menu span { font-weight: 500; }
.abm-user-menu a { color: #4d4d4d; }
.abm-portal-nav { position: sticky; top: 0; z-index: 10; display: flex; gap: 3px; overflow-x: auto; padding: 9px clamp(18px, 4vw, 48px); color: #fff; background: var(--abm-black); scrollbar-width: thin; }
.abm-portal-nav a { flex: 0 0 auto; padding: 9px 12px; color: #fff; text-decoration: none; font-size: 14px; }
.abm-portal-nav a:hover, .abm-portal-nav a:focus { color: #f0d99f; }
.abm-management-nav { position: static; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); overflow: visible; align-items: start; gap: 8px; }
.abm-management-nav details { min-width: 0; }
.abm-management-nav summary { padding: 9px 12px; font-size: 14px; cursor: pointer; overflow-wrap: anywhere; }
.abm-management-nav summary:focus-visible { outline: 2px solid #f0d99f; outline-offset: -2px; }
.abm-management-nav details[open] > summary { color: #f0d99f; }
.abm-management-nav details > div { border-left: 1px solid #8a713d; margin: 0 0 8px 12px; }
.abm-management-nav details a { display: block; min-height: 44px; box-sizing: border-box; overflow-wrap: anywhere; }
@media(max-width:420px){.abm-management-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.abm-management-nav>a,.abm-management-nav summary{min-height:44px;box-sizing:border-box;padding:9px 8px;overflow-wrap:anywhere}}
.abm-portal-notice { margin: 22px clamp(18px, 4vw, 48px) 0; padding: 14px 16px; border-left: 4px solid var(--abm-gold); background: #f7efd9; }
.abm-portal-section { scroll-margin-top: 72px; padding: clamp(42px, 7vw, 78px) clamp(18px, 4vw, 48px); border-bottom: 1px solid var(--abm-line); }
.abm-portal-section:nth-of-type(even) { background: var(--abm-paper); }
.abm-overview { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); gap: clamp(28px, 6vw, 74px); align-items: start; }
.abm-overview > div > p:last-child { max-width: 720px; color: var(--abm-muted); font-size: 18px; }
.abm-overview-stats { display: grid; border-top: 1px solid var(--abm-line); }
.abm-overview-stats span { display: grid; grid-template-columns: 64px 1fr; align-items: baseline; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--abm-line); color: var(--abm-muted); }
.abm-overview-stats strong { color: var(--abm-gold-dark); font-size: 22px; }
.abm-pending-note { grid-column: 1 / -1; margin: 0; padding: 14px 16px; border-left: 4px solid #2877a8; background: #eaf3f8; }
.abm-eyebrow { margin: 0 0 8px; color: var(--abm-gold-dark); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.abm-section-heading { margin-bottom: 30px; }
.abm-form { display: grid; gap: 28px; }
.abm-form-group { margin: 0; padding: 24px 0 0; border: 0; border-top: 2px solid var(--abm-gold); }
.abm-form-group legend { padding: 0 12px 0 0; color: #5c430f; font-size: 18px; font-weight: 500; }
.abm-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 22px; }
.abm-field, .abm-inline-form label, .abm-file-field { display: grid; align-content: start; gap: 7px; color: #333; font-size: 14px; font-weight: 500; }
.abm-field-wide { grid-column: 1 / -1; }
.abm-portal input, .abm-portal select, .abm-portal textarea { width: 100%; min-width: 0; min-height: 46px; padding: 11px 12px; border: 1px solid #bdb9b0; border-radius: 4px; color: #171717; background: #fff; font: inherit; }
.abm-portal textarea { resize: vertical; }
.abm-portal input:focus, .abm-portal select:focus, .abm-portal textarea:focus { outline: 3px solid rgba(199,150,50,.25); border-color: var(--abm-gold-dark); }
.abm-file-field { padding: 18px; border: 1px dashed #a99b7f; background: #fff; }
.abm-file-field small { color: var(--abm-muted); font-weight: 400; }
.abm-button { width: fit-content; min-height: 46px; display: inline-flex; align-items: center; justify-content: center; padding: 11px 18px; border: 1px solid transparent; border-radius: 4px; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; }
.abm-button-primary { color: #0d0d0d !important; border-color: var(--abm-gold); background: #d8ac50; }
.abm-button-primary:hover { background: #e8c26d; }
.abm-button-secondary { color: #fff !important; border-color: #111; background: #242424; }
.abm-button-secondary:hover { background: #3a3a3a; }
.abm-inline-form { display: flex; align-items: end; flex-wrap: wrap; gap: 14px; margin-top: 26px; }
.abm-inline-form label { flex: 1 1 220px; }
.abm-date-form .abm-field-grow { flex-grow: 2; }
.abm-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 15px; }
.abm-photo-grid figure { margin: 0; border: 1px solid var(--abm-line); background: #fff; }
.abm-photo-grid img { width: 100%; aspect-ratio: 4 / 5; display: block; object-fit: cover; }
.abm-photo-grid figcaption { padding: 9px 11px; color: var(--abm-muted); font-size: 12px; }
.abm-sedcard-ready { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 30px; align-items: center; padding: clamp(22px, 4vw, 34px); border-left: 4px solid var(--abm-gold); background: #fff; }
.abm-sedcard-ready strong, .abm-sedcard-waiting strong { display: block; margin-bottom: 6px; font-size: 19px; }
.abm-sedcard-ready p, .abm-sedcard-waiting p { margin: 0 0 7px; color: var(--abm-muted); }
.abm-sedcard-ready small { color: var(--abm-muted); }
.abm-sedcard-waiting { padding: clamp(22px, 4vw, 34px); border: 1px dashed #aaa398; background: #fff; }
.abm-table-wrap { position: relative; margin-top: 30px; overflow-x: auto; }
.abm-portal .screen-reader-text { position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap; }
.abm-table { width: 100%; min-width: 680px; border-collapse: collapse; }
.abm-booking-info { min-width: 180px; max-width: 420px; overflow-wrap: anywhere; }
.abm-table th, .abm-table td { padding: 13px 12px; border-bottom: 1px solid var(--abm-line); text-align: left; vertical-align: middle; }
.abm-table th { color: #4d4a43; background: #eeece6; font-size: 13px; }
.abm-icon-button { width: 38px; height: 38px; display: grid; place-items: center; padding: 0; border: 1px solid #aaa; border-radius: 50%; color: #333; background: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
.abm-status { display: inline-block; padding: 4px 7px; border-radius: 3px; color: #494949; background: #e5e5e5; font-size: 12px; font-weight: 600; }
.abm-status-approved, .abm-status-paid { color: #155a2d; background: #dceddf; }
.abm-status-question { color: #754f00; background: #f8e9bd; }
.abm-status-rejected { color: #821f1f; background: #f5dada; }
.abm-login-screen { min-height: min(720px, 90vh); display: grid; place-items: center; padding: 30px 18px; background: #ededeb; }
.abm-login-panel { width: min(100%, 470px); padding: clamp(26px, 5vw, 44px); border-top: 4px solid var(--abm-gold); background: #fff; box-shadow: 0 20px 65px rgba(0,0,0,.12); }
.abm-login-panel h1 { margin-bottom: 24px; font-size: 36px; }
.abm-login-panel form { display: grid; gap: 14px; }
.abm-login-panel form p { margin: 0; }
.abm-login-panel form label { display: grid; gap: 7px; }
.abm-login-panel .login-remember label { display: flex; align-items: center; gap: 8px; }
.abm-login-panel .login-remember input { width: auto; min-height: 0; }
.abm-login-panel .button-primary { width: 100%; min-height: 46px; border: 1px solid var(--abm-gold); border-radius: 4px; color: #0d0d0d; background: #d8ac50; font: inherit; font-weight: 600; cursor: pointer; }
.abm-password-link { display: inline-block; margin-top: 16px; }
.abm-management-overview { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(280px,.8fr); gap: clamp(32px,7vw,86px); align-items: start; background: #f7f6f2; }
.abm-management-overview > div:first-child > p:not(.abm-eyebrow) { max-width: 690px; color: var(--abm-muted); font-size: 18px; }
.abm-management-overview .abm-button { margin-top: 14px; }
.abm-management-links { display: grid; border-top: 1px solid var(--abm-line); }
.abm-management-links > a {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0,1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 19px 4px;
  border-bottom: 1px solid var(--abm-line);
  color: var(--abm-ink);
  text-decoration: none;
}
.abm-management-links > a:hover, .abm-management-links > a:focus-visible { color: #6b4b0c; background: #faf7ef; outline: 0; }
.abm-management-links .dashicons { width: 42px; height: 42px; display: grid; place-items: center; color: #8a6419; font-size: 28px; }
.abm-management-links span:not(.dashicons) { min-width: 0; display: grid; gap: 3px; }
.abm-management-links strong { font-size: 17px; }
.abm-management-links small { color: var(--abm-muted); font-size: 13px; line-height: 1.45; }
.abm-management-links b { min-width: 36px; color: #8a6419; font-size: 22px; text-align: right; }
.abm-management-secondary { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 36px; align-items: center; color: #fff; background: #1d1d1b !important; }
.abm-management-secondary h2 { color: #fff; }
.abm-management-secondary p:not(.abm-eyebrow) { max-width: 720px; color: rgba(255,255,255,.7); }

@media (max-width: 760px) {
  #buchungen .abm-table, #buchungen .abm-table tbody, #buchungen .abm-table tr, #buchungen .abm-table td { display: block; min-width: 0; width: 100%; max-width: none; }
  #buchungen .abm-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  #buchungen .abm-table tr { padding: 14px 0; border-bottom: 1px solid var(--abm-line); }
  #buchungen .abm-table td { padding: 9px 0; border: 0; overflow-wrap: anywhere; }
  #buchungen .abm-table td[data-label]::before { content: attr(data-label); display: block; color: #555; font-size: 13px; font-weight: 700; margin-bottom: 4px; }
  .abm-portal h1 { font-size: 34px; }
  .abm-portal h2 { font-size: 28px; }
  .abm-login-panel h1 { font-size: 30px; }
  .abm-portal-header { align-items: flex-start; }
  .abm-user-menu { display: grid; justify-items: end; gap: 3px; }
  .abm-overview { grid-template-columns: 1fr; }
  .abm-management-overview { grid-template-columns: 1fr; }
  .abm-management-secondary { grid-template-columns: 1fr; }
  .abm-sedcard-ready { grid-template-columns: 1fr; }
  .abm-field-grid { grid-template-columns: 1fr; }
  .abm-field-wide, .abm-pending-note { grid-column: auto; }
  .abm-inline-form { display: grid; align-items: stretch; }
  .abm-inline-form label { width: 100%; }
  .abm-button { width: 100%; }
}

@media (max-width: 430px) {
  .abm-portal-header { display: grid; }
  .abm-user-menu { justify-items: start; }
  .abm-portal-nav { padding-inline: 10px; }
  .abm-portal-section { padding-inline: 15px; }
  .abm-overview-stats span { grid-template-columns: 58px 1fr; }
  .abm-management-links > a { grid-template-columns: 36px minmax(0,1fr) auto; gap: 11px; padding-block: 17px; }
  .abm-management-links .dashicons { width: 36px; height: 36px; font-size: 24px; }
}
