:root{--bg:#f6f3ef;--card:#fff;--text:#2a2724;--muted:#766f69;--line:#e6ddd6;--accent:#8f6955;--accent-dark:#6f4f3f;--green:#e8f5eb;--red:#f9e7e7;--amber:#fff3d8;--shadow:0 10px 30px rgba(56,40,31,.06)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.topbar{height:66px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4vw;position:sticky;top:0;z-index:5}.topbar a{text-decoration:none;color:var(--text);margin-left:24px}.topbar .brand{margin:0;font-family:Georgia,serif;font-size:19px}.container{width:min(1180px,92vw);margin:44px auto 80px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.page-head.compact{margin-bottom:8px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;color:var(--accent);font-weight:700}h1,h2{font-family:Georgia,serif;font-weight:500}h1{font-size:42px;line-height:1.1;margin:7px 0 6px}h2{font-size:23px;margin:0 0 16px}.muted{color:var(--muted)}.small-text{font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow)}.narrow{max-width:430px;margin:12vh auto}.stack{display:grid;gap:18px}.grid.two{display:grid;grid-template-columns:1.25fr .75fr;gap:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.span2{grid-column:1/-1}label{display:grid;gap:7px;font-weight:600;font-size:13px}input,select,textarea{width:100%;border:1px solid #d9d0c8;background:#fff;border-radius:10px;padding:11px 12px;font:inherit;color:var(--text)}textarea{resize:vertical}.check{display:flex;align-items:center;gap:8px;font-weight:500}.check input{width:auto}.btn{appearance:none;border:1px solid #cfc4bc;background:#fff;color:var(--text);border-radius:10px;padding:10px 14px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.btn:hover{border-color:#aa978b}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-dark)}.btn.danger{border-color:#d5aaaa;color:#8a3535}.btn.subtle{background:transparent}.btn.small{padding:7px 10px;font-size:13px}.btn.large{padding:14px 20px;font-size:16px}.actions{display:flex;gap:10px;flex-wrap:wrap}.top-gap{margin-top:20px}.break{overflow-wrap:anywhere}.flash{padding:13px 16px;border-radius:11px;margin:0 0 18px}.flash.success{background:var(--green)}.flash.error{background:var(--red)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.toolbar form{display:flex;gap:8px}.toolbar select{width:auto}.filters{display:flex;gap:8px}.pill{padding:6px 11px;border-radius:999px;text-decoration:none;color:var(--text);background:#f1ece7}.pill.active{background:var(--text);color:#fff}.table-card{padding:0;overflow:hidden}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:15px 17px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}tr:last-child td{border-bottom:0}.right{text-align:right}.priority{display:inline-flex;width:30px;height:30px;border-radius:50%;align-items:center;justify-content:center;font-weight:800}.pA{background:#e7efe8}.pB{background:#fff0cf}.pC{background:#eee9e5}.status{display:inline-block;border-radius:999px;padding:3px 8px;font-size:12px}.status.yes{background:var(--green)}.status.no{background:var(--red)}.status.pending{background:var(--amber)}.guest-list{display:grid;gap:8px}.guest-row{display:grid;grid-template-columns:1.2fr 1.2fr .7fr .65fr 1fr auto;gap:8px;align-items:center}.guest-row.new{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.inline-delete{text-align:right;margin-top:2px}.link{border:0;background:none;text-decoration:underline;cursor:pointer;font:inherit}.danger-text{color:#9b3f3f}.menu-row{display:grid;grid-template-columns:1fr 2fr 90px 90px auto;gap:10px;align-items:center;margin-bottom:8px}hr{border:0;border-top:1px solid var(--line);margin:20px 0}.guest-body{background:#f4efe9}.guest-shell{max-width:760px;margin:0 auto}.guest-hero{text-align:center;padding:40px 10px 24px}.guest-hero h1{font-size:48px}.rsvp-card{display:grid;gap:16px}.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice{display:block}.choice input{position:absolute;opacity:0;pointer-events:none}.choice span{display:block;border:1px solid #d8cdc4;padding:13px 15px;border-radius:11px;text-align:center;cursor:pointer}.choice input:checked+span{border-color:var(--accent);background:#f0e6df;color:var(--accent-dark);font-weight:800}.center{text-align:center}@media(max-width:820px){.grid.two,.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.topbar{align-items:flex-start;height:auto;padding:15px 4vw;gap:12px}.topbar nav{display:flex;gap:12px;flex-wrap:wrap}.topbar a{margin:0}.guest-row{grid-template-columns:1fr 1fr}.menu-row{grid-template-columns:1fr}.toolbar,.page-head{align-items:stretch;flex-direction:column}.table-card{overflow-x:auto}.choice-row{grid-template-columns:1fr}.guest-hero h1{font-size:38px}}
.admin-row{display:grid;grid-template-columns:1fr 1.4fr 1.5fr .65fr auto;gap:10px;align-items:center;margin-bottom:8px}.admin-row+.inline-delete{margin-top:-4px;margin-bottom:12px}@media(max-width:820px){.admin-row{grid-template-columns:1fr}.admin-row+.inline-delete{margin-top:0}}


.family-layout{align-items:start}
.person-section-head{align-items:center}
.person-list{display:grid;gap:12px}
.person-edit-row{display:grid;grid-template-columns:1fr 1fr 150px minmax(130px,.8fr) auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fcfaf8}
.person-meta{display:grid;gap:5px;align-content:end;padding-bottom:8px}
.delete-person{padding-bottom:10px}
.save-family{justify-self:start}
@media(max-width:980px){.person-edit-row{grid-template-columns:1fr 1fr}.person-meta,.delete-person,.remove-new-person{align-self:end}}
@media(max-width:650px){.person-edit-row{grid-template-columns:1fr}.person-section-head{align-items:stretch}.save-family{width:100%}}

.field-hint{display:block;min-height:18px;font-weight:500;font-size:12px}.postal-suggestions{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}.postal-suggestion{appearance:none;border:1px solid var(--line);background:#f8f4f0;color:var(--text);border-radius:999px;padding:5px 9px;font:inherit;font-size:12px;cursor:pointer}.postal-suggestion:hover{border-color:var(--accent);color:var(--accent-dark)}

.guest-toolbar{flex-wrap:wrap}.guest-search{display:flex;gap:8px;flex:1;min-width:320px}.guest-search input{min-width:240px}.settings-divider{margin-top:8px}.settings-divider code{background:#f1ece7;border-radius:6px;padding:2px 5px}.guest-intro{max-width:620px;margin:14px auto;color:var(--muted);white-space:normal}.guest-footer-text{max-width:650px;margin:0 auto}.postal-suggestions[hidden]{display:none}@media(max-width:820px){.guest-search{min-width:0;width:100%;flex-wrap:wrap}.guest-search input{min-width:0;flex:1 1 220px}}
.admin-item{padding:12px 0;border-bottom:1px solid var(--line)}.admin-item:last-of-type{border-bottom:0}.status-badge{display:inline-flex;align-items:center;min-height:38px;padding:7px 10px;border-radius:999px;background:#f1ece7;color:var(--muted);font-size:12px;font-weight:700}.admin-actions{display:flex;gap:14px;justify-content:flex-end;flex-wrap:wrap;margin:-2px 0 8px}.push-test-form{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
@media(max-width:820px){.admin-actions{justify-content:flex-start}.status-badge{justify-self:start}}
.email-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:18px}.email-preview{width:100%;min-height:420px;border:1px solid var(--line);border-radius:12px;background:#fff}.email-plain{white-space:pre-wrap;overflow-wrap:anywhere;background:#faf8f6;border:1px solid var(--line);border-radius:12px;padding:16px;margin:0;font:14px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.status-badge.sent{background:var(--green);color:#355c3c}.status-badge.failed{background:var(--red);color:#7a3030}.status-badge.pending{background:var(--amber);color:#6b5424}@media(max-width:820px){.email-meta-grid{grid-template-columns:1fr 1fr}.email-preview{min-height:360px}}@media(max-width:560px){.email-meta-grid{grid-template-columns:1fr}}
.admin-notify-options{grid-column:1/-1;display:flex;gap:20px;flex-wrap:wrap;padding:4px 0 2px}.admin-notify-options .check{font-size:13px}


/* v11 – iPhone / small-screen polish */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{padding-bottom:env(safe-area-inset-bottom)}
.topbar{padding-left:max(4vw,env(safe-area-inset-left));padding-right:max(4vw,env(safe-area-inset-right))}
.container{width:min(1180px,calc(100vw - 28px));padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
input,select,textarea,.btn{font-size:16px;min-height:44px}
input[type="checkbox"],input[type="radio"]{min-height:0}
.approval-pending{padding:11px 12px;border-radius:10px;background:var(--amber);color:#6b5424;font-size:13px}
.approval-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:16px 0}
.approval-family-list{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:8px;max-height:340px;overflow:auto;-webkit-overflow-scrolling:touch}
.approval-family-list li{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fcfaf8}
.approval-family-list small{color:var(--muted);overflow-wrap:anywhere}
.confirmation-card .btn{width:100%}

@media(max-width:700px){
  .container{width:calc(100vw - 20px);margin:20px auto 48px}
  .card{border-radius:15px;padding:17px}
  h1{font-size:32px;overflow-wrap:anywhere}
  h2{font-size:21px}
  .topbar{position:sticky;top:0;padding-top:max(10px,env(safe-area-inset-top));padding-bottom:10px;display:block;overflow:hidden}
  .topbar .brand{display:block;margin:0 0 8px;font-size:18px}
  .topbar nav{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;scrollbar-width:none}
  .topbar nav::-webkit-scrollbar{display:none}
  .topbar nav a{flex:0 0 auto;margin:0;padding:8px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13px}
  .page-head{gap:12px;margin-bottom:16px}
  .page-head>.btn,.page-head>form,.save-family{width:100%}
  .toolbar{padding:14px;gap:12px}
  .filters{width:100%;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:2px}
  .pill{flex:0 0 auto}
  .guest-search{display:grid;grid-template-columns:1fr auto;width:100%}
  .guest-search .btn.subtle{grid-column:1/-1}
  .toolbar>form:last-child{width:100%;display:grid;grid-template-columns:92px 1fr}
  .toolbar>form:last-child select,.toolbar>form:last-child .btn{width:100%}
  .actions{display:grid;grid-template-columns:1fr;width:100%}
  .actions .btn,.actions form,.actions form .btn{width:100%}
  .form-grid{gap:13px}
  .person-edit-row{padding:12px}
  .person-edit-row .link{min-height:44px;text-align:left;padding:8px 0}
  .rsvp-card{gap:13px}
  .guest-hero{padding:28px 8px 18px}
  .guest-hero h1{font-size:34px}
  .choice span{min-height:50px;display:flex;align-items:center;justify-content:center}
  .guest-shell>.stack>.btn.large{position:sticky;bottom:max(10px,env(safe-area-inset-bottom));z-index:3;box-shadow:0 8px 24px rgba(56,40,31,.18)}
  .narrow{max-width:none;margin:28px auto}
  .email-preview{min-height:300px}
  .email-meta-grid{grid-template-columns:1fr}

  /* The main guest table becomes touch-friendly cards on iPhone. */
  .table-card{background:transparent;border:0;box-shadow:none;overflow:visible;padding:0}
  .table-card table,.table-card table tbody,.table-card table tr,.table-card table td{display:block;width:100%}
  .table-card table thead{display:none}
  .table-card table tr{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:10px 14px;margin-bottom:12px;box-shadow:var(--shadow)}
  .table-card table td{border:0;padding:8px 0;text-align:left}
  .table-card table td[data-label]{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:start}
  .table-card table td[data-label]::before{content:attr(data-label);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;padding-top:3px}
  .table-card table td[data-label="Familie"]{grid-template-columns:1fr;padding-top:5px}
  .table-card table td[data-label="Familie"]::before{display:none}
  .table-card table td[data-label="Aktion"]{display:block}
  .table-card table td[data-label="Aktion"]::before{display:none}
  .table-card table td[data-label="Aktion"] .btn{width:100%;margin-top:4px}
  .table-card table td[colspan]{display:block!important}
}

@media(max-width:390px){
  .container{width:calc(100vw - 14px)}
  .card{padding:15px}
  h1{font-size:29px}
  .toolbar>form:last-child{grid-template-columns:1fr}
  .guest-search{grid-template-columns:1fr}
  .guest-search .btn{width:100%}
}

.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.log-table pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}

/* v12 – family form alignment and visual polish */
.family-card{padding:28px}
.family-card h2{margin-bottom:22px}
.family-form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:22px;row-gap:18px;align-items:start}
.family-form-grid .form-field{display:grid;grid-template-rows:auto 50px;gap:8px;min-width:0;align-content:start;margin:0}
.family-form-grid .form-field.span2{grid-column:1/-1}
.family-form-grid .field-label{display:flex;align-items:baseline;gap:7px;min-height:20px;font-size:13px;font-weight:700;line-height:1.35;color:var(--text)}
.family-form-grid .field-note{font-size:11px;line-height:1.2;font-weight:600;color:var(--muted);white-space:nowrap}
.family-form-grid input:not([type="checkbox"]),
.family-form-grid select{height:50px;min-height:50px;padding:0 14px;border-radius:11px;line-height:normal}
.family-form-grid textarea{min-height:108px;padding:12px 14px;border-radius:11px;line-height:1.5}
.family-form-grid input::placeholder,
.family-form-grid textarea::placeholder{color:#9a948f;opacity:1}
.family-form-grid input:focus,
.family-form-grid select:focus,
.family-form-grid textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(143,105,85,.12)}
.family-form-grid .postal-feedback{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-height:0;margin-top:-9px;padding:0 2px;font-size:12px;font-weight:500}
.family-form-grid .postal-feedback:empty{display:none}
.family-form-grid .postal-suggestions{margin:0;justify-content:flex-end}
.family-form-grid .postal-suggestion{min-height:32px;padding:5px 10px}
.family-form-grid .family-active{margin-top:1px;min-height:44px;padding:4px 2px}
.family-form-grid .family-active input{width:18px;height:18px;min-height:18px}

@media(max-width:820px){
  .family-card{padding:20px}
  .family-form-grid{grid-template-columns:1fr;gap:16px}
  .family-form-grid .form-field.span2,.family-form-grid .postal-feedback.span2{grid-column:auto}
  .family-form-grid .postal-feedback{display:grid;gap:8px;margin-top:-8px}
  .family-form-grid .postal-suggestions{justify-content:flex-start}
}

@media(max-width:430px){
  .family-card{padding:16px}
  .family-form-grid{gap:14px}
  .family-form-grid .field-label{font-size:13px;flex-wrap:wrap}
  .family-form-grid .field-note{font-size:10.5px}
  .family-form-grid input:not([type="checkbox"]),
  .family-form-grid select{height:48px;min-height:48px}
}

/* v13 – dashboard, workflow, seating and richer RSVP */
.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric{padding:18px;display:grid;gap:6px}.metric span{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.metric strong{font-size:30px;line-height:1}.big-number{font-size:28px}.progress{height:10px;border-radius:999px;background:#eee7e1;overflow:hidden}.progress span{display:block;height:100%;background:var(--accent);border-radius:999px}.mini-list{display:grid;gap:0}.mini-list>div{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.mini-list>div:last-child{border-bottom:0}.mini-list small{color:var(--muted)}
.traffic{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:800;white-space:nowrap}.traffic::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.traffic-grey{background:#eeeae6;color:#756e68}.traffic-blue{background:#e8f0fb;color:#315c91}.traffic-orange{background:#fff0d7;color:#9a6113}.traffic-green{background:#e5f3e8;color:#3d7147}.traffic-red{background:#f9e5e3;color:#8a3e38}.traffic-purple{background:#eee8f6;color:#654f84}
.family-status-strip{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:11px 14px;margin:-4px 0 16px;border:1px solid var(--line);border-radius:13px;background:#fff}.family-status-strip>span:not(.traffic){font-size:12px;color:var(--muted);padding-right:10px;border-right:1px solid var(--line)}
.person-v13{border:1px solid var(--line);border-radius:14px;background:#fcfaf8;padding:14px;display:grid;gap:12px}.person-v13-main{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.person-v13 details{border-top:1px solid var(--line);padding-top:10px}.person-v13 summary{cursor:pointer;font-weight:700;color:var(--accent-dark);padding:2px 0}.person-details{margin-top:12px}.person-v13-foot{display:flex;justify-content:space-between;align-items:center;gap:12px}.danger-check{color:#8b3d38}.event-checks{border:1px solid var(--line);border-radius:11px;padding:10px 12px}.event-checks legend{font-weight:700;padding:0 5px}.event-checks .check{display:inline-flex;margin:3px 14px 3px 0}
.timeline{display:grid}.timeline>div{display:grid;grid-template-columns:115px 1fr;gap:4px 12px;padding:9px 0;border-bottom:1px solid var(--line)}.timeline time{color:var(--muted);font-size:12px}.timeline small{grid-column:2;color:var(--muted)}
.table-create{display:grid;grid-template-columns:1.2fr 100px 100px 1fr auto;gap:10px;align-items:end}.seating-board{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));gap:14px;align-items:start}.seat-table{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.seat-table.over-capacity{border-color:#c35c55}.seat-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:13px 14px;border-bottom:1px solid var(--line)}.seat-head>div{display:grid}.seat-head small{color:var(--muted)}.seat-dropzone{min-height:90px;padding:10px;display:grid;gap:8px}.seat-dropzone.drag-over{background:#f0e9e3}.guest-chip{border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 10px;display:grid;gap:2px;cursor:grab}.guest-chip small{color:var(--muted);font-size:11px}.guest-chip.dragging{opacity:.45}.seat-actions{padding:10px;border-top:1px solid var(--line);display:grid;gap:8px}.inline-form{display:flex;gap:6px}.inline-form input{min-width:0}.inline-form input:first-of-type{flex:1}.inline-form input[type=number]{width:78px}.unassigned{border-style:dashed}
.guest-option-box{border-top:1px solid var(--line);padding-top:14px;display:grid;gap:10px}.guest-option-box>strong{font-size:14px}.check-grid{display:flex;gap:14px;flex-wrap:wrap}.event-rsvp-list{display:grid;gap:9px}.event-rsvp-list>div{display:grid;grid-template-columns:1fr 150px;gap:10px;align-items:center}.event-rsvp-list span{display:grid;gap:2px}.event-rsvp-list small{color:var(--muted)}.wedding-info{margin-top:22px}.wedding-info h2{margin-bottom:18px}.info-section{padding:14px 0;border-top:1px solid var(--line)}.info-section:first-of-type{border-top:0}.info-section h3{margin:0 0 8px}.event-program{display:grid;gap:10px}.event-program>div{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.event-program span,.event-program small{color:var(--muted)}
.warning{background:#fff2d9;color:#74551a}

@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(3,1fr)}.seating-board{grid-template-columns:repeat(2,minmax(250px,1fr))}.person-v13-main{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.metric-grid{grid-template-columns:repeat(2,1fr);gap:10px}.metric{padding:14px}.metric strong{font-size:26px}.seating-board{grid-template-columns:1fr}.table-create{grid-template-columns:1fr 1fr}.table-create input:first-child,.table-create input:nth-child(4),.table-create button{grid-column:1/-1}.person-v13-main{grid-template-columns:1fr}.person-v13{padding:12px}.person-v13-foot{align-items:flex-start;flex-direction:column}.event-rsvp-list>div{grid-template-columns:1fr}.family-status-strip{display:grid;grid-template-columns:1fr 1fr}.family-status-strip .traffic{grid-column:1/-1;justify-self:start}.family-status-strip>span:not(.traffic){border-right:0;padding-right:0}.timeline>div{grid-template-columns:1fr}.timeline small{grid-column:1}.inline-form{display:grid;grid-template-columns:1fr 90px}.inline-form button{grid-column:1/-1}.mini-list>div{grid-template-columns:auto 1fr}.mini-list>div small,.mini-list>div strong{grid-column:2}.check-grid{display:grid;grid-template-columns:1fr 1fr}.guest-option-box{padding-top:12px}}
.bulk-actions{display:flex;gap:8px;flex-wrap:wrap;width:100%}.bulk-actions form{display:flex;gap:8px}.bulk-actions select{min-width:72px}@media(max-width:700px){.bulk-actions{display:grid}.bulk-actions form{display:grid;grid-template-columns:90px 1fr}.bulk-actions .btn{width:100%}}

/* v15 – quality/UX release */
.test-mode-banner{position:sticky;top:0;z-index:30;background:#2f2721;color:#fff6dd;text-align:center;padding:8px 14px;font-size:12px;font-weight:800;letter-spacing:.02em;border-bottom:1px solid rgba(255,255,255,.12)}
.action-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.action-metric{text-decoration:none;color:var(--text);display:grid;gap:5px;transition:transform .15s ease,border-color .15s ease}.action-metric:hover{transform:translateY(-2px);border-color:#cbb8aa}.action-metric span{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}.action-metric strong{font-size:32px;line-height:1}.action-metric small{color:var(--accent-dark)}.warning-card{border-color:#d5a14f;background:#fffaf0}
.bulk-panel{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.bulk-panel select{width:auto;min-width:270px}.bulk-panel .muted{margin-left:auto}
.compact-people{display:grid;gap:10px}.person-compact{border:1px solid var(--line);background:#fcfaf8;border-radius:14px;padding:12px}.person-compact-main{display:grid;grid-template-columns:1fr 1fr 150px 1fr auto;gap:10px;align-items:end}.person-compact-main label{min-width:0}.person-compact-main label>span{display:block;margin-bottom:6px}.person-compact details{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.person-compact summary{cursor:pointer;font-weight:800;color:var(--accent-dark)}.person-history{border-top:1px solid var(--line);padding-top:12px}.timeline.compact>div{padding:6px 0}.timeline.compact time{font-size:11px}
.crop-preview{height:260px;border:1px solid var(--line);border-radius:14px;background:#f2ece6;overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--muted);margin-bottom:14px}.crop-preview img{width:100%;height:100%;object-fit:cover;transform-origin:center;transition:transform .12s ease;display:block}.crop-preview+label{margin-top:4px}
.preview-banner{background:#1f2937;color:#fff;padding:10px 14px;border-radius:12px;margin:12px 0 18px;text-align:center;font-weight:800;font-size:13px}.guest-hero.personalized{padding-top:22px}.rsvp-couple-photo{height:310px;border-radius:22px;overflow:hidden;margin-bottom:26px;box-shadow:var(--shadow);border:1px solid var(--line)}.rsvp-couple-photo img{width:100%;height:100%;object-fit:cover;display:block}.guest-hero-copy{max-width:650px;margin:0 auto}.personal-salutation{font-family:Georgia,serif;font-size:23px;margin:20px 0 10px}.guest-invitation-text{max-width:610px;margin:0 auto 12px;color:var(--text)}.event-line{font-weight:800;color:var(--accent-dark)}
.test-mode-card{border-color:#d9bd67;background:#fffaf0}.test-mode-card h2{color:#6d5412}

@media(max-width:1000px){.action-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.person-compact-main{grid-template-columns:1fr 1fr}.person-compact-main .status{justify-self:start}}
@media(max-width:700px){.action-metric-grid{grid-template-columns:1fr 1fr}.action-metric{padding:16px}.action-metric strong{font-size:28px}.bulk-panel{display:grid;grid-template-columns:1fr}.bulk-panel select{min-width:0;width:100%}.bulk-panel .muted{margin-left:0}.person-compact-main{grid-template-columns:1fr}.crop-preview{height:210px}.rsvp-couple-photo{height:230px;border-radius:16px}.personal-salutation{font-size:20px}.family-status-strip .btn{grid-column:1/-1;width:100%}}
@media(max-width:430px){.action-metric-grid{grid-template-columns:1fr}.rsvp-couple-photo{height:205px}}
.test-mode-banner+.topbar{top:33px}
@media(max-width:700px){.test-mode-banner+.topbar{top:49px}}

/* v16 – personal wedding guest website */
.wedding-site-hero{margin-bottom:18px}.wedding-site-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}.wedding-site-facts>div{background:rgba(255,255,255,.82);border:1px solid var(--border,#ded7d0);border-radius:16px;padding:13px 15px;display:flex;flex-direction:column;gap:3px}.wedding-site-facts span{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted,#746c66)}.wedding-site-facts strong{font-size:.98rem}.guest-site-nav{position:sticky;top:10px;z-index:20;display:flex;gap:7px;overflow-x:auto;padding:8px;margin:0 0 18px;background:rgba(250,248,245,.9);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border,#ded7d0);border-radius:999px;box-shadow:0 8px 25px rgba(43,36,31,.06);scrollbar-width:none}.guest-site-nav::-webkit-scrollbar{display:none}.guest-site-nav a{white-space:nowrap;text-decoration:none;color:inherit;padding:8px 13px;border-radius:999px;font-size:.88rem;font-weight:650}.guest-site-nav a:hover{background:#fff}.guest-site-sections{display:grid;gap:18px;scroll-margin-top:80px}.guest-site-section{scroll-margin-top:82px}.section-lead{font-size:1.04rem;line-height:1.65;max-width:760px}.website-program{display:grid;gap:0;margin-top:18px}.website-program>div{display:grid;grid-template-columns:72px 1fr;gap:18px;padding:18px 0;border-top:1px solid var(--border,#e2dcd6)}.website-program>div:first-child{border-top:0}.website-program time{font-family:Georgia,serif;font-size:1.25rem}.website-program span{display:grid;gap:4px}.website-program strong{font-size:1.08rem}.website-program small{color:var(--muted,#746c66)}.website-program p{margin:4px 0 0;line-height:1.55}.location-card{display:flex;justify-content:space-between;gap:24px;align-items:flex-end}.location-card>div:first-child{max-width:660px}.guest-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;scroll-margin-top:82px}.info-tile{min-height:180px}.info-tile .info-icon{display:inline-flex;width:35px;height:35px;border-radius:50%;align-items:center;justify-content:center;background:#f3eee9;margin-bottom:8px;font-size:1.15rem}.info-tile h3{margin:4px 0 10px}.info-tile p{line-height:1.6}.faq-list{display:grid;gap:8px;margin-top:12px}.faq-list details{border-top:1px solid var(--border,#e2dcd6);padding:14px 0}.faq-list summary{cursor:pointer;font-weight:700;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';float:right;font-weight:400}.faq-list details[open] summary:after{content:'–'}.faq-list details p{margin:10px 28px 0 0;line-height:1.6}.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.contact-grid>div{border:1px solid var(--border,#e2dcd6);border-radius:14px;padding:16px;display:grid;gap:6px}.contact-grid span{color:var(--muted,#746c66)}.guest-site-footer{text-align:center;font-family:Georgia,serif;font-size:1.2rem;padding:24px 16px 6px}.locked-info{text-align:center}
@media(max-width:760px){.wedding-site-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.guest-site-nav{top:max(8px,env(safe-area-inset-top));margin-left:-2px;margin-right:-2px}.guest-info-grid,.contact-grid{grid-template-columns:1fr}.location-card{display:grid;align-items:start}.location-card .actions{display:grid;grid-template-columns:1fr 1fr}.website-program>div{grid-template-columns:58px 1fr;gap:12px}.info-tile{min-height:0}.guest-site-section{scroll-margin-top:74px}}
/* v18 · allgemeine, passwortgeschützte Gäste-Webseite */
.copy-row{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center}.copy-row .btn{white-space:nowrap}.general-guest-login{text-align:center}.general-guest-login form{text-align:left}.general-guest-shell{padding-bottom:max(28px,env(safe-area-inset-bottom))}.general-guest-shell .guest-site-nav a:last-child{margin-left:auto}.general-guest-shell .wedding-site-facts>div:last-child strong{font-size:.9rem}.notice.info{background:#f4efe9;border:1px solid #e2d8cf;border-radius:12px;padding:13px 15px;color:#635a53}
@media(max-width:650px){.copy-row{grid-template-columns:1fr}.copy-row .btn{width:100%}.general-guest-login{margin-top:max(5vh,env(safe-area-inset-top))}.general-guest-shell .guest-site-nav a:last-child{margin-left:0}}
/* v23 */
.dns-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dns-check-item{display:grid;gap:5px;padding:14px;border:1px solid var(--line,#e7ded7);border-radius:12px;background:#fff}.dns-check-item .status{justify-self:start}.linkcheck-summary{display:flex;gap:18px;justify-content:space-between;align-items:center;margin-bottom:14px}.audit-changes{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:7px}.audit-changes li{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:start;padding:8px 10px;border-radius:9px;background:rgba(143,105,85,.06)}.audit-changes .audit-field{font-weight:700}.audit-changes .audit-old,.audit-changes .audit-new{overflow-wrap:anywhere}.guest-calendar-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:12px 0 4px}@media(max-width:700px){.dns-check-grid{grid-template-columns:1fr}.linkcheck-summary{align-items:flex-start;flex-direction:column}.audit-changes li{grid-template-columns:1fr}.audit-changes .audit-arrow{display:none}.guest-calendar-actions .btn{flex:1 1 100%}}

/* Produktrelease V 1.0: editable guest contact details */
.contact-edit-form{margin:18px 0}.contact-edit-card{gap:14px}.contact-edit-card h2{margin-bottom:0}.contact-grid-fields{align-items:start}.contact-grid-fields label{min-width:0}.contact-grid-fields .field-note{font-weight:500;color:var(--muted);font-size:12px}.contact-edit-card .postal-suggestions{min-height:20px;margin-top:-4px;color:var(--muted);font-size:13px;align-items:center}.postal-chip{appearance:none;border:1px solid var(--line);background:#f8f4f0;color:var(--text);border-radius:999px;padding:6px 10px;font:inherit;font-size:12px;cursor:pointer;margin-left:6px}.postal-chip:hover,.postal-chip:focus{border-color:var(--accent);color:var(--accent-dark);outline:none}.contact-edit-card .actions{margin-top:2px}@media(max-width:820px){.contact-edit-form{margin:14px 0}.contact-edit-card{padding:20px}.contact-grid-fields{grid-template-columns:1fr}.contact-grid-fields .span2{grid-column:auto}.contact-edit-card .btn{width:100%;min-height:48px}.postal-chip{margin:5px 5px 0 0}}


/* Produktversion 1.5 */
.app-version-footer{
  max-width:1180px;
  margin:26px auto max(14px,env(safe-area-inset-bottom));
  padding:0 18px;
  text-align:center;
  color:var(--muted,#746c66);
  font-size:11px;
  line-height:1.4;
  letter-spacing:.04em;
  opacity:.72;
}
@media(max-width:700px){.app-version-footer{margin-top:20px;padding:0 14px;font-size:10.5px}}


/* Kapazitätsübersicht nach Priorität */
.capacity-priority-list{display:grid;gap:9px;margin:18px 0}.capacity-priority-row{display:grid;grid-template-columns:38px repeat(3,minmax(0,1fr));gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line);font-size:13px}.capacity-priority-row>span:not(.priority){display:grid;gap:1px}.capacity-scenario{margin-top:14px;padding:14px 16px;border-radius:13px;background:#f4efe9;display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center}.capacity-scenario>span{font-weight:650}.capacity-scenario>strong{font-size:18px}.capacity-scenario>small{grid-column:1/-1;color:var(--muted)}.capacity-scenario>small.capacity-over{color:#9b3f3f;font-weight:700}@media(max-width:700px){.capacity-priority-row{grid-template-columns:38px 1fr;gap:6px 10px}.capacity-priority-row>span:not(.priority){grid-column:2}.capacity-scenario{grid-template-columns:1fr}.capacity-scenario>strong{font-size:22px}.capacity-scenario>small{grid-column:1}}

/* V 1.2 · Excel guest export */
.export-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.export-filter-grid fieldset,.export-field-group{border:1px solid var(--line,#e7e0d8);border-radius:14px;padding:14px 16px;margin:0;min-width:0}.export-filter-grid legend,.export-field-group legend{font-weight:700;padding:0 6px}.export-field-groups{display:grid;gap:16px}.export-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 16px}.export-check-grid .check,.export-filter-grid .check{margin:0;align-items:flex-start}@media(max-width:760px){.export-filter-grid,.export-check-grid{grid-template-columns:1fr}.export-field-group{padding:12px}.export-field-groups{gap:12px}}

/* V 1.3 · Address completeness */
.missing-fields{display:flex;gap:6px;flex-wrap:wrap}.missing-field{display:inline-flex;padding:3px 8px;border-radius:999px;background:var(--red);font-size:12px}.address-ok{background:var(--green);padding:12px 14px;border-radius:12px}.address-summary{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.address-summary strong{font-size:1.45rem}.address-table .member-list{color:var(--muted);font-size:13px}.address-table .address-preview{font-size:13px;line-height:1.45}.address-table .address-preview .empty{color:#9b3f3f;font-style:italic}
