/* "Anmeldung & Plätze" (checklist O3) — card page status block, the
   dashboard panel and the editor panel (the settings). The ap-* block is the shared look of the add-on panels
   (public/addons/lib/ap-panel.css, imported once below);
   builds on app.css tokens (--rose-*, --line, --ink…) and .btn. */
@import url("/public/addons/lib/ap-panel.css?v=8f9bd15a"); /* the ap-* panel look, ONE copy */

/* ---- card page ---- */
.reg-box { margin: 0 0 14px; display: flex; flex-direction: column; gap: 6px; }
.reg-box[hidden], .reg-standalone[hidden] { display: none; }
.reg-line { margin: 0; font-size: 15px; line-height: 1.45; border-radius: 12px; padding: 8px 12px; }
.reg-line.reg-ok { background: #eef6ee; color: #3f6b43; border: 1px solid #8fb592; }
.reg-line.reg-wait { background: #fbf4e8; color: #7a5a2c; border: 1px solid #ecd9b8; }
.reg-standalone { max-width: 560px; margin: 24px auto; padding: 18px 20px; background: #fffaf5; border: 1px solid var(--line, #eadfd8); border-radius: 18px; }
.reg-standalone .reg-title { font-family: var(--serif, serif); font-size: 24px; color: var(--rose-2, #7a3b46); margin: 0 0 10px; font-weight: 600; }


/* ---- panel specifics ---- */
a.ap-entry.has-new { font-weight: 600; }
.reg-bar { display: flex; flex-direction: column; gap: 8px; }
.reg-meter { height: 10px; border-radius: 999px; background: var(--cream, #f7efe8); border: 1px solid var(--line); overflow: hidden; }
.reg-meter > span { display: block; height: 100%; background: var(--rose-2, #7a3b46); border-radius: 999px; transition: width .3s; }
.reg-meter.over > span { background: #b0662f; }
.reg-bar-line { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; color: var(--ink-soft); }
.reg-bar-line strong { color: var(--ink); font-size: 15px; }

/* ---- the settings form on the event page (their one place, manage.js) ---- */
.reg-manage [hidden] { display: none !important; }
.reg-manage .hint-warn { color: #a3474f; }
.reg-ed-group { border: 0; padding: 0; margin: 0 0 14px; min-width: 0; }
.reg-ed-group input[type="number"] { max-width: 160px; }

/* ---- series registration (card page) ---- */
.reg-series { border: 1px solid var(--line, #eadfd8); border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; }
.reg-series-title { margin: 0; font-weight: 600; color: var(--rose-2, #7a3b46); font-size: 15px; }
.reg-series-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.reg-series-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: 14px; padding: 6px 0; border-top: 1px solid var(--line, #eadfd8); }
.reg-series-row:first-child { border-top: none; }
.reg-series-row.is-past { opacity: .6; }
.reg-series-row.is-here .reg-series-when { font-weight: 600; }
.reg-series-when { flex: 1 1 160px; min-width: 0; color: var(--ink, #3b2a2a); }
.reg-series-state { color: var(--ink-soft, #6b5d58); }
.reg-series-row.reg-st-confirmed .reg-series-state { color: #3f6b43; }
.reg-series-row.reg-st-cancelled .reg-series-state, .reg-series-row.reg-st-skipped .reg-series-state { color: #8a3a3a; }
.reg-series-all { align-self: flex-start; }
.reg-series-opt { display: flex; flex-direction: column; gap: 4px; margin: 6px 0 12px; padding: 10px 12px; border: 1px dashed var(--line, #eadfd8); border-radius: 12px; }
.reg-series-check { display: flex; gap: 8px; align-items: flex-start; font-weight: 600; cursor: pointer; }
.reg-series-check input { margin-top: 4px; flex: none; }
.reg-series-dates { margin: 0; font-size: 13px; color: var(--ink-soft, #6b5d58); line-height: 1.45; }

/* ---- the guest's pages: /anmeldung/absagen/<token>, /anmeldung/serie/<token> ---- */
.reg-page-card { max-width: 560px; }
.reg-page-text { font-size: 16px; line-height: 1.5; margin: 0 0 12px; }
.reg-page-flash { background: #eef6ee; color: #3f6b43; border: 1px solid #8fb592; border-radius: 12px; padding: 8px 12px; margin: 0 0 12px; }
.reg-page-form { display: flex; flex-direction: column; gap: 8px; margin: 12px 0 0; }
.reg-page-dates { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.reg-page-date { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 10px 0; border-top: 1px solid var(--line, #eadfd8); }
.reg-page-date:first-child { border-top: none; }
.reg-page-date.is-past { opacity: .6; }
.reg-page-when { flex: 1 1 180px; font-weight: 600; }
.reg-page-state { color: var(--ink-soft, #6b5d58); }
.reg-page-date form { margin: 0; }
