/* ==========================================================================
   Rettungswachen Buchungssystem v1.1 – Stylesheet
   ========================================================================== */
*,.rwb *,.rwb *::before,.rwb *::after{box-sizing:border-box;margin:0;padding:0}

.rwb{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    font-size:14px;line-height:1.6;color:#1a1a1a;max-width:960px;
}
#rwb-admin-root.rwb{max-width:100%;padding:16px 20px}

:root{
    --g:#27AE60;--gb:#E8F8F0;--y:#E67E22;--yb:#FEF3E0;
    --r:#C0392B;--rb:#FDEDEC;--bd:#E0E0E0;--bd2:#C8C8C8;
    --bg:#F7F7F7;--bg2:#EFEFEF;--acc:#C0392B;--rad:8px;--rads:5px;
}

/* ---- Header ------------------------------------------------------------ */
.rwb-header{display:flex;align-items:flex-start;justify-content:space-between;
    padding-bottom:14px;border-bottom:1px solid var(--bd);margin-bottom:18px;flex-wrap:wrap;gap:10px}
.rwb-header__title{font-size:17px;font-weight:600;display:flex;align-items:center;gap:8px}
.rwb-badge{background:var(--acc);color:#fff;font-size:11px;padding:2px 8px;border-radius:4px;font-weight:500}
.rwb-header__sub{font-size:12px;color:#666;margin-top:2px}

/* ---- Tabs -------------------------------------------------------------- */
.rwb-tabs{display:flex;border-bottom:1px solid var(--bd);margin-bottom:18px;flex-wrap:wrap}
.rwb-tab{padding:7px 16px;background:none;border:none;border-bottom:2.5px solid transparent;
    cursor:pointer;font-size:13px;color:#555;font-family:inherit;white-space:nowrap;transition:color .15s}
.rwb-tab:hover{color:#111}
.rwb-tab.is-active{color:#111;border-bottom-color:var(--acc);font-weight:600}

/* ---- Legend ------------------------------------------------------------ */
.rwb-legend{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:12px;font-size:12px;color:#555}
.rwb-legend__item{display:flex;align-items:center;gap:5px}
.rwb-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;display:inline-block}
.rwb-dot--green{background:var(--g)}.rwb-dot--yellow{background:var(--y)}
.rwb-dot--red{background:var(--r)}.rwb-dot--grey{background:#BDBDBD}

/* ---- Filter ------------------------------------------------------------ */
.rwb-filter{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:14px;align-items:center}
.rwb-filter__label{font-size:12px;color:#555;margin-right:4px}
.rwb-filter-btn{padding:4px 11px;border:1px solid var(--bd2);border-radius:20px;background:#fff;
    cursor:pointer;font-size:12px;font-family:inherit;color:#333;transition:background .12s}
.rwb-filter-btn:hover{background:var(--bg)}
.rwb-filter-btn.is-active{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:600}

/* ---- Nav --------------------------------------------------------------- */
.rwb-nav{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.rwb-nav__btn{background:none;border:1px solid var(--bd2);border-radius:var(--rads);
    padding:4px 13px;cursor:pointer;font-size:16px;color:#333;line-height:1.4;font-family:inherit}
.rwb-nav__btn:hover{background:var(--bg)}
.rwb-nav__month{font-size:16px;font-weight:600;flex:1;text-align:center}

/* ---- Calendar ---------------------------------------------------------- */
.rwb-cal{width:100%;border-collapse:collapse;table-layout:fixed}
.rwb-cal th{padding:5px 2px;text-align:center;font-size:11px;font-weight:600;color:#666;
    border-bottom:1px solid var(--bd);text-transform:uppercase;letter-spacing:.4px}
.rwb-cal td{padding:2px;vertical-align:top}

.rwb-day{border-radius:var(--rads);padding:5px 3px;min-height:62px;cursor:pointer;
    border:1.5px solid transparent;transition:background .1s}
.rwb-day:hover{background:var(--bg)}
.rwb-day.is-selected{background:var(--bg);border-color:var(--acc)}
.rwb-day.is-we{background:#fafafa}  /* Weekend: visible but bookable */
.rwb-day.is-past{opacity:.5;pointer-events:none;cursor:default}
.rwb-day.is-disabled{opacity:.4;pointer-events:none;cursor:default}

.rwb-day__num{font-size:11px;font-weight:600;color:#666;text-align:center;margin-bottom:3px}
.rwb-day.is-we .rwb-day__num{color:#999}
.rwb-day__dots{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;padding:0 1px}
.rwb-day.is-single .rwb-day__dots{justify-content:flex-start}
.rwb-day.is-single .rwb-dot{width:13px;height:13px}

/* ---- Day Panel --------------------------------------------------------- */
.rwb-panel{border:1px solid var(--bd2);border-radius:var(--rad);padding:14px;margin-top:14px}
.rwb-panel__title{font-size:14px;font-weight:600;display:flex;justify-content:space-between;
    align-items:center;margin-bottom:12px}
.rwb-close{background:none;border:none;cursor:pointer;font-size:17px;color:#888;line-height:1;padding:0 3px}

.rwb-station-list{display:flex;flex-direction:column;gap:6px}
.rwb-station-row{display:flex;align-items:center;justify-content:space-between;padding:9px 13px;
    border-radius:var(--rads);border:1px solid var(--bd);cursor:pointer;transition:background .1s}
.rwb-station-row:hover{background:var(--bg)}
.rwb-station-row.is-full{cursor:default;opacity:.6}.rwb-station-row.is-full:hover{background:none}
.rwb-station-row.is-selected{border-color:var(--acc);background:#fff8f8}
.rwb-station-row__name{font-size:13px;font-weight:600}
.rwb-station-row__sub{font-size:11px;color:#666}
.rwb-station-row__right{display:flex;align-items:center;gap:6px}

/* ---- Ampel Tag --------------------------------------------------------- */
.rwb-tag{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:4px;
    font-size:12px;font-weight:600;white-space:nowrap}
.rwb-tag--green{background:var(--gb);color:#1E8449}
.rwb-tag--yellow{background:var(--yb);color:#9A5C00}
.rwb-tag--red{background:var(--rb);color:#922B21}

/* ---- Forms ------------------------------------------------------------- */
.rwb-form-box{border:1px solid var(--bd2);border-radius:var(--rad);padding:18px;margin-top:14px}
.rwb-form-title{font-size:14px;font-weight:600;margin-bottom:14px}
.rwb-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rwb-form-field{display:flex;flex-direction:column;gap:4px}
.rwb-form-field.is-full{grid-column:1/-1}
.rwb-form-field label{font-size:11px;color:#555;font-weight:600}
.rwb-form-field input,.rwb-form-field select,.rwb-form-field textarea{
    padding:8px 10px;border:1px solid var(--bd2);border-radius:var(--rads);
    font-size:13px;font-family:inherit;background:#fff;color:#1a1a1a;width:100%}
.rwb-form-field input:focus,.rwb-form-field select:focus,.rwb-form-field textarea:focus{
    outline:none;border-color:var(--acc);box-shadow:0 0 0 2px rgba(192,57,43,.1)}

/* ---- Code Entry -------------------------------------------------------- */
.rwb-code-wrap{max-width:420px;margin:0 auto;padding:2rem 1rem}
.rwb-code-logo{text-align:center;font-size:48px;margin-bottom:1rem}
.rwb-code-title{font-size:18px;font-weight:600;text-align:center;margin-bottom:6px}
.rwb-code-sub{font-size:13px;color:#666;text-align:center;margin-bottom:1.5rem;line-height:1.5}
.rwb-code-box{background:#fff;border:1px solid var(--bd2);border-radius:var(--rad);padding:24px}
.rwb-code-input{width:100%;padding:14px 16px;border:2px solid var(--bd2);border-radius:var(--rad);
    font-size:22px;font-family:'Courier New',monospace;font-weight:700;letter-spacing:4px;
    text-align:center;text-transform:uppercase;background:#fff;color:#1a1a1a;
    transition:border-color .15s}
.rwb-code-input:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px rgba(192,57,43,.12)}
.rwb-code-hint{font-size:11px;color:#888;text-align:center;margin-top:8px}

/* ---- Buttons ----------------------------------------------------------- */
.rwb-btn{padding:9px 18px;border-radius:var(--rads);font-size:13px;font-weight:600;
    cursor:pointer;font-family:inherit;border:1px solid transparent;transition:background .12s,opacity .12s}
.rwb-btn--primary{background:var(--acc);color:#fff;border-color:var(--acc);width:100%}
.rwb-btn--primary:hover{background:#A93226}.rwb-btn--primary:disabled{opacity:.6;cursor:not-allowed}
.rwb-btn--secondary{background:#fff;color:#333;border-color:var(--bd2)}
.rwb-btn--secondary:hover{background:var(--bg)}
.rwb-btn--ghost{background:none;border:none;color:var(--acc);font-size:12px;cursor:pointer;
    font-family:inherit;padding:4px 0;text-decoration:underline;text-underline-offset:2px}

/* ---- Onboarding Wizard ------------------------------------------------ */
.rwb-wizard{max-width:640px;margin:0 auto}
.rwb-wizard__steps{display:flex;gap:0;margin-bottom:24px;border-bottom:1px solid var(--bd);padding-bottom:0}
.rwb-wizard__step{flex:1;text-align:center;padding:8px 4px 10px;font-size:12px;
    color:#999;border-bottom:2.5px solid transparent;cursor:default}
.rwb-wizard__step.is-active{color:#1a1a1a;font-weight:600;border-bottom-color:var(--acc)}
.rwb-wizard__step.is-done{color:var(--g)}
.rwb-step-num{display:inline-block;width:22px;height:22px;border-radius:50%;background:var(--bg);
    font-size:11px;font-weight:700;line-height:22px;margin-bottom:3px}
.rwb-wizard__step.is-active .rwb-step-num{background:var(--acc);color:#fff}
.rwb-wizard__step.is-done .rwb-step-num{background:var(--g);color:#fff}
.rwb-wizard__step-label{display:block;font-size:11px}

/* Instruction cards */
.rwb-instr-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.rwb-instr-card{border:1px solid var(--bd);border-radius:var(--rad);padding:14px;transition:border-color .15s}
.rwb-instr-card.is-confirmed{border-color:var(--g);background:var(--gb)}
.rwb-instr-card__header{display:flex;align-items:flex-start;gap:10px}
.rwb-instr-card__icon{width:20px;height:20px;border-radius:50%;background:var(--gb);
    color:var(--g);font-size:12px;font-weight:700;display:flex;align-items:center;
    justify-content:center;flex-shrink:0;margin-top:1px}
.rwb-instr-card.is-confirmed .rwb-instr-card__icon{background:var(--g);color:#fff}
.rwb-instr-card__title{font-weight:600;font-size:13px;margin-bottom:4px}
.rwb-instr-card__text{font-size:13px;color:#444;line-height:1.6}
.rwb-instr-check{margin-top:10px;display:flex;align-items:center;gap:7px;cursor:pointer;
    font-size:12px;color:#555}
.rwb-instr-check input{cursor:pointer;width:15px;height:15px;flex-shrink:0;accent-color:var(--g)}

/* Contract */
.rwb-contract{border:1px solid var(--bd);border-radius:var(--rad);padding:16px;
    max-height:280px;overflow-y:auto;background:#fafafa;font-size:12px;line-height:1.7;
    color:#333;white-space:pre-wrap;margin-bottom:14px}
.rwb-sig-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.rwb-sig-confirm{display:flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:12px;
    color:#333;padding:10px;border:1px solid var(--bd);border-radius:var(--rads)}
.rwb-sig-confirm input{cursor:pointer;width:15px;height:15px;flex-shrink:0;margin-top:1px;accent-color:var(--acc)}
.rwb-sig-version{font-size:11px;color:#888;margin-top:8px;text-align:right}

/* Welcome back / summary */
.rwb-welcome{background:var(--gb);border:1px solid #A9DFBF;border-radius:var(--rad);
    padding:14px 18px;margin-bottom:16px;display:flex;align-items:flex-start;gap:12px}
.rwb-welcome__icon{font-size:24px;flex-shrink:0;margin-top:2px}
.rwb-welcome__name{font-weight:600;font-size:15px;margin-bottom:2px}
.rwb-welcome__sub{font-size:12px;color:#1E8449}

/* Validity notice */
.rwb-validity{font-size:12px;background:var(--yb);border:1px solid #FAD7A0;
    border-radius:var(--rads);padding:7px 11px;margin-bottom:12px;color:#9A5C00}

/* ---- Weekly toggle ----------------------------------------------------- */
.rwb-weekly-toggle{display:flex;align-items:center;gap:7px;font-size:13px;cursor:pointer;
    margin-bottom:10px;color:#333}
.rwb-weekly-toggle input[type=checkbox]{cursor:pointer;width:15px;height:15px}
.rwb-weekly-info{font-size:12px;color:var(--g);background:var(--gb);border:1px solid #A9DFBF;
    padding:6px 10px;border-radius:var(--rads);margin-top:6px}

/* ---- Feedback ---------------------------------------------------------- */
.rwb-error{color:var(--r);font-size:12px;margin-top:8px}
.rwb-success{background:var(--gb);color:#1E8449;padding:12px 14px;border-radius:var(--rads);
    font-size:13px;margin-top:12px;border:1px solid #A9DFBF}
.rwb-spinner{display:inline-block;width:13px;height:13px;border:2px solid #ccc;
    border-top-color:var(--acc);border-radius:50%;animation:rwb-spin .6s linear infinite;
    vertical-align:middle;margin-right:5px}
@keyframes rwb-spin{to{transform:rotate(360deg)}}
.rwb-note{background:var(--bg);border-left:3px solid var(--bd2);padding:9px 12px;
    border-radius:0 var(--rads) var(--rads) 0;font-size:12px;color:#555}

/* ---- Admin tables ------------------------------------------------------ */
.rwb-overflow{overflow-x:auto}
.rwb-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}
.rwb-table th{padding:5px 8px;text-align:center;background:var(--bg);
    border:1px solid var(--bd);font-weight:600;font-size:11px}
.rwb-table th.is-sticky,.rwb-table td.is-sticky{position:sticky;left:0;background:#fff;z-index:1}
.rwb-table th.is-sticky{background:var(--bg)}
.rwb-table td{padding:4px 6px;border:1px solid var(--bd);text-align:center;vertical-align:middle}
.rwb-table td.is-date{text-align:left;font-weight:600;font-size:11px}
.rwb-cell-btn{background:none;border:none;cursor:pointer;padding:0;font-family:inherit;width:100%}

.rwb-blist{width:100%;border-collapse:collapse;font-size:12px}
.rwb-blist th{padding:5px 8px;text-align:left;background:var(--bg);border:1px solid var(--bd);font-weight:600;font-size:11px}
.rwb-blist td{padding:5px 8px;border:1px solid var(--bd);vertical-align:middle}
.rwb-blist tr:hover td{background:var(--bg)}
.rwb-del-btn{background:none;border:none;cursor:pointer;color:var(--r);font-size:14px;padding:0 2px;line-height:1}
.rwb-count{font-size:12px;color:#666;margin-top:7px}

/* Status badges */
.rwb-status{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}
.rwb-status--active{background:var(--gb);color:#1E8449}
.rwb-status--inactive{background:var(--bg);color:#666;border:1px solid var(--bd)}
.rwb-status--expired{background:var(--rb);color:#922B21}
.rwb-status--pending{background:var(--yb);color:#9A5C00}

/* Ob progress */
.rwb-ob-steps{display:flex;gap:3px}
.rwb-ob-step{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--bd);
    display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#bbb}
.rwb-ob-step.done{background:var(--g);border-color:var(--g);color:#fff}
.rwb-ob-step.active{background:var(--yb);border-color:var(--y);color:var(--y)}

/* Settings */
.rwb-settings-card{border:1px solid var(--bd2);border-radius:var(--rad);padding:16px;margin-bottom:14px}
.rwb-settings-card__title{font-size:14px;font-weight:600;margin-bottom:12px}
.rwb-slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.rwb-slot-item{display:flex;flex-direction:column;gap:4px}
.rwb-slot-item label{font-size:11px;color:#555;font-weight:600}
.rwb-slot-item select,.rwb-slot-item input{
    padding:6px 8px;border:1px solid var(--bd2);border-radius:var(--rads);
    font-size:13px;background:#fff;color:#1a1a1a;font-family:inherit}

/* Access code list */
.rwb-codes-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.rwb-code-row{border:1px solid var(--bd);border-radius:var(--rad);padding:12px 14px;
    display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}
.rwb-code-row:hover{background:var(--bg)}
.rwb-code-val{font-family:'Courier New',monospace;font-size:16px;font-weight:700;
    letter-spacing:2px;color:#1a1a1a;background:var(--bg);padding:4px 8px;border-radius:4px}
.rwb-code-meta{font-size:12px;color:#555;line-height:1.6}
.rwb-code-actions{display:flex;gap:6px;align-items:center}

/* Instruction editor */
.rwb-instr-editor{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.rwb-instr-item{border:1px solid var(--bd);border-radius:var(--rad);padding:12px;background:#fff}
.rwb-instr-item__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.rwb-instr-item__num{font-size:11px;font-weight:700;color:#666;background:var(--bg);
    padding:2px 8px;border-radius:4px}
.rwb-add-btn{border:1.5px dashed var(--bd2);border-radius:var(--rad);padding:10px;
    text-align:center;cursor:pointer;color:#666;font-size:12px;background:none;
    font-family:inherit;width:100%;margin-top:4px;transition:background .1s}
.rwb-add-btn:hover{background:var(--bg)}

/* Modal overlay (inline block, no fixed positioning) */
.rwb-modal-bg{background:rgba(0,0,0,.45);border-radius:var(--rad);
    display:flex;align-items:center;justify-content:center;padding:20px;min-height:400px}
.rwb-modal{background:#fff;border-radius:var(--rad);padding:20px;width:100%;max-width:520px}
.rwb-modal__title{font-size:15px;font-weight:600;margin-bottom:16px;
    display:flex;justify-content:space-between;align-items:center}

@media(max-width:600px){
    .rwb-form-grid,.rwb-sig-row{grid-template-columns:1fr}
    .rwb-form-field.is-full{grid-column:auto}
    .rwb-code-row{grid-template-columns:1fr;gap:8px}
}
