/* Kundenkonto (SPEC Abschnitt 13/58) */
.acc { padding: 32px 16px 56px; min-height: 60vh; }
.acc-card { max-width: 420px; margin: 0 auto; background: #fff; border-radius: 16px; padding: 28px 24px; box-shadow: 0 4px 24px rgba(0,0,0,.08); }
.acc-card h1, .acc-wide h1 { margin: 0 0 16px; }
.acc-wide { max-width: 860px; margin: 0 auto; }
.acc-error { background: #fdecea; color: #8a1c13; padding: 10px 12px; border-radius: 8px; margin: 0 0 16px; }
.acc-alt { margin: 16px 0 0; font-size: .9rem; text-align: center; }
.acc-titlebar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.acc-titlebar h1 { margin: 0; }
.acc-back { margin: 0 0 8px; font-size: .9rem; }
.acc-back a, .acc-back a:hover, .acc-back a:focus, .acc-back a:active, .acc-back a:visited {
    background: none; color: #555; text-decoration: none; font-weight: 600; outline: none; box-shadow: none;
    -webkit-tap-highlight-color: transparent;
}
.acc-back a:hover { color: var(--fa-accent, #e8590c); }
.acc-meta { margin: 6px 0 20px; color: #555; }
.acc-events { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 10px; }
.acc-events li { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fff; border-radius: 12px; padding: 14px 16px; box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.acc-events a { text-decoration: none; color: inherit; display: grid; }
.acc-events a span { color: #666; font-size: .9rem; }
.acc-badge { font-size: .8rem; font-weight: 600; padding: 4px 10px; border-radius: 999px; background: #fff3cd; color: #7a5b00; white-space: nowrap; }
.acc-badge--active { background: #d9f2e1; color: #17632f; }
.acc-tabs { display: flex; gap: 4px; flex-wrap: wrap; border-bottom: 2px solid #e6e6e6; }
.acc-tab { padding: 10px 16px; text-decoration: none; color: #444; font-weight: 600; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.acc-tab.is-active { color: var(--fa-accent, #e8590c); border-bottom-color: var(--fa-accent, #e8590c); }
.acc-tab.is-locked { color: #999; }
.acc-panel { background: #fff; border-radius: 0 0 16px 16px; padding: 24px; box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.acc-panel h2 { margin-top: 0; }
.acc-notice { background: #fff3cd; color: #7a5b00; padding: 12px 14px; border-radius: 8px; }
.acc-upsell { display: flex; align-items: center; gap: 12px 16px; flex-wrap: wrap; margin-top: 24px; padding: 14px 16px; border-radius: 12px; background: #fff7ed; border: 1px solid #fed7aa; }
.acc-upsell span { flex: 1 1 200px; }
.acc-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin: 20px 0; align-items: start; }
.acc-plan { background: #fff; border-radius: 16px; padding: 20px; box-shadow: 0 2px 10px rgba(0,0,0,.06); text-align: center; }
.acc-plan h2 { margin: 0 0 8px; }
.acc-plan__price { font-size: 1.6rem; font-weight: 700; margin: 0 0 6px; }
.acc-plan__features { list-style: none; margin: 16px 0; padding: 14px 0 0; border-top: 1px solid #eee; text-align: left; }
.acc-plan__features li { position: relative; padding: 4px 0 4px 26px; font-size: .92rem; }
.acc-plan__features li::before { content: "\2713"; position: absolute; left: 4px; color: #17632f; font-weight: 700; }
.acc-check label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: .9rem; }
.acc-check input { width: auto; margin-top: 3px; }
.fa-hint-inline { font-weight: 400; color: #777; }
.site-nav__user { display: inline-flex; align-items: center; gap: 14px; }
.site-nav__user form { margin: 0; display: flex; }
.site-nav__link-btn { background: none; border: 0; padding: 4px; font: inherit; color: var(--fa-dark, #222); cursor: pointer; display: inline-flex; align-items: center; }
.site-nav__link-btn:hover { color: var(--fa-accent, #e8590c); }

/* Eigene Aufgaben (Konto-Tab) */
.acc-taskform { display: flex; gap: 8px; margin: 16px 0; flex-wrap: wrap; }
.acc-taskform input { flex: 1 1 240px; padding: 10px 12px; border: 1px solid #ccc; border-radius: 8px; font: inherit; }
.acc-tasklist { list-style: none; margin: 0; padding: 0; }
.acc-tasklist li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid #eee; }
.acc-tasklist form { margin: 0; }
.acc-tasklist__del { background: none; border: 0; font-size: 1.4rem; line-height: 1; color: #999; cursor: pointer; }
.acc-tasklist__del:hover { color: #c00; }
.acc-muted { color: #777; }

/* Anlass-Badge + Modal */
.acc-typebadge { font: inherit; font-size: .85rem; font-weight: 600; padding: 3px 10px; border-radius: 999px; border: 1px solid #ddd; background: #f6f6f6; color: var(--fa-dark, #222); cursor: pointer; }
.acc-typebadge:hover { border-color: var(--fa-accent, #e8590c); color: var(--fa-accent, #e8590c); }
.acc-typelist { display: grid; gap: 4px; margin: 12px 0; }
.acc-typelist label { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; cursor: pointer; }
.acc-typelist label:hover { background: #f6f6f6; }
.acc-typelist input { width: auto; }
.acc-typebadge span { display: inline-block; transform: scaleX(-1); }

/* Design-Tab */
.acc-design h3 { margin: 24px 0 4px; }
.acc-field { margin: 14px 0; display: grid; gap: 6px; }
.acc-field input[type=text] { padding: 10px 12px; border: 1px solid #ccc; border-radius: 8px; font: inherit; max-width: 420px; }
.acc-banner-preview { width: 300px; max-width: 100%; height: auto; aspect-ratio: 3 / 1; border-radius: 8px; border: 1px solid #ddd; background: #f6f6f6; }
.acc-switch { display: inline-flex; align-items: center; gap: 12px; cursor: pointer; font-weight: 600; }
.acc-switch input { position: absolute; opacity: 0; }
.acc-switch__track { position: relative; width: 48px; height: 28px; border-radius: 999px; background: #ccc; transition: background .2s; flex: none; }
.acc-switch__track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; transition: transform .2s; box-shadow: 0 1px 3px rgba(0,0,0,.3); }
.acc-switch input:checked + .acc-switch__track { background: #222; }
.acc-switch input:checked + .acc-switch__track::after { transform: translateX(20px); }
.acc-switch input:focus-visible + .acc-switch__track { outline: 2px solid var(--fa-accent, #e8590c); outline-offset: 2px; }

/* Design-Tab: Auswahl Kartenkopf + Upload */
.acc-modes { display: grid; gap: 10px; margin: 12px 0; }
.acc-mode { border: 1px solid #ddd; border-radius: 12px; padding: 12px 14px; }
.acc-mode:has(input[type=radio]:checked) { border-color: var(--fa-accent, #e8590c); background: #fffaf6; }
.acc-mode__head { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.acc-mode__head input { width: auto; accent-color: var(--fa-accent, #e8590c); }
.acc-mode__body { margin: 10px 0 0 28px; display: grid; gap: 8px; }
.acc-mode__body p { margin: 0; font-size: .9rem; }
.acc-mode__body input[type=text] { padding: 10px 12px; border: 1px solid #ccc; border-radius: 8px; font: inherit; max-width: 360px; }
.acc-drop { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 110px; padding: 14px; border: 2px dashed #ccc; border-radius: 12px; background: #fafafa; color: #666; text-align: center; cursor: pointer; transition: border-color .15s, background .15s; max-width: 360px; }
.acc-drop:hover, .acc-drop.is-over { border-color: var(--fa-accent, #e8590c); background: #fff4ec; }
.acc-drop input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.acc-drop__img { max-width: 100%; max-height: 120px; border-radius: 6px; }
.acc-drop__hint { font-size: .9rem; }
.acc-drop:not(.has-image) .acc-drop__hint::before { content: "\2B06\FE0F  "; }
.acc-premiumopt { margin: 16px 0; }
.acc-premiumopt--locked { color: #777; }
.acc-premiumopt--locked a { margin-left: 8px; font-size: .9rem; }
.acc-switch.acc-premiumopt { display: flex; }
.acc-premiumopt--locked { cursor: default; font-weight: 600; }
.acc-premiumopt--locked .acc-switch__track { opacity: .45; }

/* Galerie im Konto (Freigabe, Link, Fotos) */
.acc-galshare { margin: 8px 0 14px; }
.acc-galurl { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 6px; }
.acc-galurl input { flex: 1 1 220px; min-width: 0; padding: 10px 12px; border: 1px solid #ccc; border-radius: 8px; font: inherit; background: #f7f7f7; }
.acc-galbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin: 16px 0; }
.gal-icbtn { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: none; border: 0; padding: 0; color: var(--fa-dark); cursor: pointer; text-decoration: none; }
.gal-icbtn:hover { background: #eee; }
.gal-icbtn--del { color: #a33; }
.acc-modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 16px; }

.acc-retention { background: #fff4d6; border: 1px solid #f0c75e; border-left: 5px solid #e8a400; color: #5c4400; padding: 14px 16px; border-radius: 10px; margin: 16px 0; font-size: 1.05rem; }
.acc-retention a { font-weight: 700; margin-left: 6px; }
.acc-galcount { margin: 16px 0 8px; color: #666; }
.acc-galzip { text-align: center; margin: 28px 0 8px; }
.acc-tablewrap { overflow-x: auto; }
.acc-table { width: 100%; border-collapse: collapse; }
.acc-table th, .acc-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid #e5e5e5; }
.acc-table th { font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; color: #666; }
.acc-muted { color: #888; }

.acc-badge-soon { display: inline-flex; align-items: center; gap: 5px; font-size: .78rem; color: #6b7280; background: #f1f3f5; border-radius: 999px; padding: 3px 10px; white-space: nowrap; }
