:root{color-scheme:light;--ink:#20362e;--muted:#67786e;--green:#206747;--darkgreen:#13452f;--pale:#f2f6f1;--border:#dce5de;--bg:#f7f9f5;--white:#fff;--red:#ab2929}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}.shell{width:min(1160px,calc(100% - 36px));margin:0 auto}.site-header{background:#fff;border-bottom:1px solid var(--border)}.header-inner{min-height:87px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand-mark{width:43px;height:43px;background:var(--green);color:#fff;border-radius:11px;display:grid;place-items:center;font-size:23px;font-weight:800}.brand strong{display:block;font-size:13px;letter-spacing:.11em}.brand small{display:block;color:var(--muted);font-size:11px}.nav-links{display:flex;align-items:center;gap:20px;font-size:13px}.nav-links a{text-decoration:none;font-weight:600}.text-button{background:none;border:0;padding:0;color:var(--muted)}.main-content{padding:46px 0 72px;min-height:calc(100vh - 165px)}h1,h2,p{margin-top:0}h1{font-size:clamp(31px,4.5vw,48px);line-height:1.13;letter-spacing:-.045em;margin-bottom:16px}h2{font-size:19px;letter-spacing:-.025em;margin-bottom:4px}.eyebrow{color:var(--green);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;margin-bottom:13px}.hero{max-width:740px;margin-bottom:31px}.hero p,.admin-title p{font-size:16px;color:var(--muted);max-width:680px}.panel{background:var(--white);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 5px 22px rgba(16,46,31,.035)}.panel-header{padding:21px 24px;display:flex;align-items:center;justify-content:space-between;gap:14px}.panel-header p{margin:0;color:var(--muted);font-size:13px}.counter,.group-count{font-size:12px;color:var(--green);font-weight:700;background:#edf7ef;padding:6px 11px;border-radius:999px;white-space:nowrap}.table-scroll{overflow-x:auto}.excel-table{width:100%;border-collapse:separate;border-spacing:0;text-align:left;table-layout:fixed}.excel-table th{background:#ebf1ec;color:#496154;padding:12px 13px;font-size:12px;letter-spacing:.02em;border-top:1px solid var(--border);border-bottom:1px solid var(--border);border-right:1px solid var(--border);font-weight:750}.excel-table th:last-child,.excel-table td:last-child{border-right:0}.excel-table td{padding:0;border-right:1px solid #e5ebe5;border-bottom:1px solid #e5ebe5;height:51px;font-size:14px}.excel-table tbody tr:last-child td{border-bottom:0}.excel-table .row-no{width:49px;text-align:center;background:#f5f8f4;color:#7b8b7c;font-size:12px;font-weight:650;padding:0}.input-table{min-width:730px}.input-table th:nth-child(2),.input-table th:nth-child(3){width:23%}.input-table th:nth-child(4){width:15%}.input-table th:nth-child(5){width:28%}.input-table .remove-col{width:49px}.input-table input,.input-table select{outline:0;border:0;border-radius:0;padding:10px 13px;width:100%;height:50px;background:transparent;min-width:0;color:var(--ink);font-size:14px}.input-table input:focus,.input-table select:focus{background:#ecf6ee;box-shadow:inset 0 0 0 2px #73b38c}.input-table input::placeholder{color:#9aa89b}.remove-row{border:0;background:transparent;width:100%;height:50px;color:#8b9c8b;font-size:24px}.remove-row:hover{color:var(--red);background:#ffeeee}.table-toolbar{display:flex;align-items:center;justify-content:space-between;padding:18px 23px;gap:12px;flex-wrap:wrap;border-top:1px solid var(--border)}.button{min-height:44px;border-radius:9px;display:inline-flex;gap:9px;align-items:center;justify-content:center;padding:10px 18px;text-decoration:none;font-size:13px;font-weight:750;border:1px solid transparent;transition:background .15s ease,color .15s ease;white-space:nowrap}.button-primary{background:var(--green);color:#fff}.button-primary:hover{background:var(--darkgreen)}.button-subtle{background:#f6faf6;color:var(--green);border-color:#d7e4d9}.button-subtle:hover{background:#e9f4eb}.button:disabled{opacity:.5;cursor:not-allowed}.muted{color:var(--muted);font-size:13px}.submit-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;flex-wrap:wrap}.submit-bar .button{min-height:52px;padding:13px 24px}.privacy-note{display:flex;align-items:flex-start;gap:11px;color:var(--muted);font-size:12px}.privacy-note strong{color:var(--ink);font-size:13px}.privacy-icon{background:#e6f4eb;border-radius:50%;color:var(--green);width:26px;height:26px;display:grid;place-items:center;font-weight:900}.site-footer{padding:22px 0 28px;color:#819183;font-size:11px;border-top:1px solid var(--border)}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.result-card,.login-card{background:#fff;border:1px solid var(--border);border-radius:20px;max-width:540px;margin:54px auto;padding:46px;text-align:center}.result-card p{color:var(--muted);margin-bottom:24px}.result-card h1{font-size:38px}.success-symbol{margin:0 auto 22px;width:65px;height:65px;display:grid;place-items:center;font-size:31px;background:#e8f5ed;color:var(--green);border-radius:100%}.login-card{text-align:left;max-width:450px}.login-card h1{font-size:35px}.login-card p{color:var(--muted);font-size:14px}.field-label{font-size:13px;font-weight:700;display:block;margin-top:26px;margin-bottom:8px}.password-field{width:100%;border:1px solid #c9d8cd;border-radius:9px;min-height:48px;padding:12px;background:#fff}.full-width{width:100%;margin-top:18px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:25px 0 22px}.stat{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 21px}.stat span{display:block;color:var(--muted);font-size:12px;font-weight:600}.stat strong{display:block;font-size:32px;line-height:1.3;letter-spacing:-.04em;margin-top:4px}.stat-warning strong{color:var(--red)}.admin-controls{padding:22px 23px;margin-bottom:26px}.controls-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.export-actions{display:flex;gap:9px;flex-wrap:wrap}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px}.filters label{font-size:12px;color:#596a60;font-weight:700}.filters select,.filters input{min-height:42px;border:1px solid #cbd8cf;border-radius:7px;padding:8px 12px;background:#fff;min-width:180px}.duplicate-legend{font-size:12px;color:var(--muted);margin:19px 0 0}.red-dot{display:inline-block;background:#da4949;width:9px;height:9px;border-radius:50%;margin-right:7px}.group-section{margin-bottom:20px}.group-header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:20px 23px}.group-header h2{display:inline-block;margin-right:11px}.button-small{min-height:35px;padding:7px 12px}.admin-table{min-width:760px}.admin-table th:nth-child(2),.admin-table th:nth-child(3){width:22%}.admin-table th:nth-child(4){width:12%}.admin-table th:nth-child(5){width:32%}.admin-table .admin-actions{width:85px}.admin-table td{padding:12px 13px}.admin-table .row-no{padding:0}.admin-table .duplicate-row td{background:#ffebeb;color:#902020}.admin-table .duplicate-row .row-no{background:#f9dcdc;color:#9b2525}.duplicate-text{font-size:12px;font-weight:750;color:var(--red)}.delete-button{border:0;background:none;color:#9b3535;text-decoration:underline;text-underline-offset:3px;font-size:12px;padding:0}.empty-state{padding:26px}.small{font-size:12px}.alert{padding:12px 18px;border-radius:9px;margin-bottom:18px;font-weight:600;font-size:13px}.alert-error{background:#fce9e9;color:#9a2323}.alert-ok{background:#e4f4e9;color:#17613a}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}
@media(max-width:650px){.shell{width:min(100% - 24px,1160px)}.main-content{padding-top:34px}.header-inner{min-height:74px}.brand-mark{width:38px;height:38px}.hero p{font-size:14px}.panel-header,.table-toolbar,.group-header{padding:17px}.stats{gap:8px}.stat{padding:13px 11px}.stat strong{font-size:27px}.stat span{font-size:11px}.submit-bar{align-items:stretch}.submit-bar .button{width:100%}.privacy-note{order:2}.login-card,.result-card{margin:22px auto;padding:26px}.admin-controls{padding:17px}.filters select,.filters input{flex:1 1 100%}.export-actions .button{flex:1}.group-header h2{font-size:17px}}

.privacy-page{padding:30px;max-width:850px;margin:auto}.privacy-page h1{font-size:34px}.privacy-page h2{margin:25px 0 7px}.privacy-page p{color:var(--muted)}

/* Optionale Größenbilder im öffentlichen Formular und Adminbereich */
.charts-panel{margin-top:26px}.sizechart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,265px),1fr));gap:20px;padding:0 24px 24px}.sizechart{margin:0;padding:14px;border:1px solid var(--border);border-radius:12px;background:#fafcf9}.sizechart figcaption{font-weight:750;margin-bottom:10px}.sizechart img{display:block;max-width:100%;height:auto;max-height:500px;object-fit:contain;margin:auto}.admin-charts{margin-top:24px}.admin-chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:18px;padding:0 23px 23px}.admin-chart-item{border:1px solid var(--border);border-radius:12px;padding:16px;min-width:0}.admin-chart-item h3{font-size:16px;margin:0 0 15px}.admin-chart-preview{width:100%;max-height:210px;object-fit:contain;margin-bottom:14px}.chart-upload-form{display:flex;flex-direction:column;gap:10px}.chart-upload-form label{font-size:13px;font-weight:650}.chart-upload-form input[type=file]{font-size:12px;max-width:100%}.chart-toggle{display:flex;align-items:center;gap:8px}.chart-toggle input{accent-color:var(--green);width:18px;height:18px}.chart-delete-form{margin-top:14px}.charts-panel .panel-header{margin-bottom:0}


/* v1.2: Formular auf Smartphones als große, gut bedienbare Personenkarten.
   Andere Tabellen (insbesondere die Adminansicht) bleiben unverändert. */
@media (max-width: 760px) {
  .hero { margin-bottom: 24px; }
  .hero h1 { font-size: clamp(29px, 8vw, 38px); }
  .table-panel { border: 0; background: transparent; box-shadow: none; overflow: visible; }
  .table-panel > .panel-header { padding: 0 1px 16px; align-items: flex-start; }
  .table-panel > .panel-header h2 { font-size: 20px; }
  .table-panel .table-scroll { overflow: visible; }
  .input-table, .input-table tbody { display: block; width: 100%; min-width: 0; }
  .input-table thead { display: none; }
  .input-table tbody tr {
    display: flex;
    flex-direction: column;
    gap: 13px;
    position: relative;
    min-width: 0;
    margin: 0 0 14px;
    padding: 57px 16px 18px;
    border: 1px solid #d5e2d8;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(16, 46, 31, .045);
  }
  .input-table tbody tr > td {
    display: block;
    width: 100%;
    min-width: 0;
    height: auto;
    padding: 0;
    border: 0;
    background: transparent;
  }
  .input-table tbody tr > td[data-label]::before {
    display: block;
    content: attr(data-label);
    margin: 0 0 6px 2px;
    color: #395446;
    font-size: 13px;
    line-height: 1.3;
    font-weight: 750;
  }
  .input-table tbody tr > .row-no {
    position: absolute;
    top: 14px;
    left: 17px;
    width: auto;
    height: 28px;
    display: flex;
    gap: 5px;
    align-items: center;
    font-weight: 800;
    font-size: 15px;
    color: var(--green);
  }
  .input-table tbody tr > .row-no::before { content: "Person"; }
  .input-table tbody tr > td:last-child {
    position: absolute;
    top: 10px;
    right: 13px;
    width: auto;
    height: 38px;
  }
  .input-table .remove-row {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: 40px;
    padding: 0 13px;
    border: 1px solid #f0d9d9;
    border-radius: 9px;
    background: #fff7f7;
    color: #982a2a;
    font-size: 0;
    font-weight: 750;
  }
  .input-table .remove-row::after { content: "Entfernen"; font-size: 12px; }
  .input-table .remove-row:focus-visible { outline: 3px solid #ba6666; outline-offset: 2px; }
  .input-table input, .input-table select {
    display: block;
    width: 100%;
    height: 53px;
    min-height: 53px;
    padding: 11px 13px;
    border: 1px solid #bccfc2;
    border-radius: 10px;
    background: #fff;
    color: var(--ink);
    font-size: 16px; /* Kein automatisches iOS-Zoomen beim Eingeben */
    line-height: 1.35;
    box-shadow: none;
    -webkit-appearance: none;
    appearance: none;
  }
  .input-table select {
    padding-right: 38px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%23206747' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 8 5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 20px 20px;
  }
  .input-table input::placeholder { color: #7b897e; opacity: 1; }
  .input-table input:focus, .input-table select:focus {
    outline: none;
    border-color: #327653;
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(45, 123, 78, .16);
  }
  .table-panel .table-toolbar {
    padding: 5px 0 0;
    border-top: 0;
    gap: 10px;
    flex-direction: column;
    align-items: stretch;
  }
  .table-toolbar #add-row {
    width: 100%;
    min-height: 54px;
    border-radius: 12px;
    font-size: 15px;
  }
  .table-toolbar .muted { text-align: center; font-size: 12px; }
  .submit-bar { margin-top: 22px; gap: 19px; }
  .submit-bar .button-primary { min-height: 56px; border-radius: 12px; font-size: 16px; }
  .submit-bar .privacy-note { line-height: 1.55; }
  .sizechart-grid { padding: 0 16px 16px; }
}

/* Besonders schmale Displays: etwas mehr nutzbare Eingabefläche. */
@media (max-width: 380px) {
  .input-table tbody tr { padding-left: 13px; padding-right: 13px; }
  .table-panel > .panel-header { flex-wrap: wrap; }
}
