:root{
  --blue:#0878d8;--blue2:#13b5f2;--green:#37c96b;--yellow:#ffd43b;--orange:#ff922b;--red:#dc3545;
  --dark:#102033;--muted:#667085;--bg:#f2f8ff;--card:#fff;--border:#d6e3ef;--soft:#eef7ff;
  --shadow:0 18px 50px rgba(16,32,51,.12);--radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:linear-gradient(180deg,#edf8ff 0,#fff 42%,#f6fbff 100%);color:var(--dark);line-height:1.45}
a{color:inherit}
.app-header{height:70px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:10px 24px;position:sticky;top:0;z-index:50}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--dark);font-weight:900}
.brand-icon{width:38px;height:38px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;box-shadow:0 8px 22px rgba(8,120,216,.25)}
.brand span:last-child{display:flex;flex-direction:column;line-height:1.05}.brand small{font-size:12px;color:var(--muted);font-weight:800}
.main-nav{display:flex;gap:8px;align-items:center}.main-nav a{text-decoration:none;padding:11px 14px;border-radius:14px;font-weight:900;color:#142238}.main-nav a.active,.main-nav a:hover{background:#e8f4ff;color:var(--blue)}
.app-shell{max-width:1010px;margin:22px auto 70px;padding:0 14px}
.hero{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;border-radius:28px;padding:28px 30px;margin-bottom:16px;box-shadow:0 24px 60px rgba(8,120,216,.23);display:flex;justify-content:space-between;gap:18px;align-items:flex-end}
.hero h1{font-size:clamp(34px,7vw,52px);line-height:1;margin:0}.hero p{margin:10px 0 0;color:rgba(255,255,255,.95);font-weight:700}.eyebrow{display:inline-flex;border-radius:999px;padding:7px 12px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.32);font-weight:950;margin-bottom:10px}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:16px}
.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.quick-grid a{background:#fff;border:1px solid var(--border);border-radius:16px;padding:14px;text-align:center;text-decoration:none;font-weight:950;box-shadow:0 8px 22px rgba(16,32,51,.06)}
.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:14px;padding:12px 16px;font-size:15px;font-weight:950;text-decoration:none;cursor:pointer;background:var(--blue);color:#fff}.btn.green,button.green{background:var(--green);color:#072511}.btn.blue,button.blue{background:var(--blue);color:#fff}.btn.yellow,button.yellow{background:var(--yellow);color:#111827}.btn.gray,button.gray{background:#eef2f6;color:#111827}.btn.orange,button.orange{background:var(--orange);color:#251300}.btn.red,button.red{background:var(--red);color:#fff}.btn.light{background:rgba(255,255,255,.20);border:1px solid rgba(255,255,255,.35);color:#fff}
.actions{display:flex;gap:8px;flex-wrap:wrap}.big-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.big-actions .btn,.big-actions button{width:100%;padding:15px}
label{display:block;font-size:13px;font-weight:950;margin:12px 0 6px}input,select,textarea{width:100%;padding:13px;border:1px solid #c9d8e8;border-radius:14px;font-size:16px;background:#fff;color:var(--dark)}textarea{min-height:105px;resize:vertical}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.form-grid.three{grid-template-columns:repeat(3,1fr)}
.notice{background:#fff8db;border:1px solid #ffe08a;border-radius:16px;padding:14px;margin:10px 0}.notice.success{background:#eafff3;border-color:#b2f2bb}.notice.danger{background:#fff0f0;border-color:#ffb3b3}
.rental-list{display:grid;gap:14px}.rental-card{position:relative;background:#fff;border:1px solid var(--border);border-left:5px solid #fab005;border-radius:22px;padding:18px 18px 16px;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr auto;gap:14px}.rental-card.status-signed{border-left-color:#228be6}.rental-card.status-picked{border-left-color:#7950f2}.rental-card.status-returned,.rental-card.status-completed{border-left-color:#12b886}.rental-card.status-cancelled{border-left-color:#868e96}
.rental-card h2{margin:8px 0 5px;font-size:22px}.rental-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0;color:#475467;font-weight:700}.rental-date{background:#f4faff;border:1px solid #d4eafd;border-radius:16px;min-width:90px;padding:12px;text-align:center;font-weight:950}.rental-date strong{display:block;font-size:15px}.rental-date span{display:block;margin-top:5px;color:#667085}
.badge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:950;border:1px solid transparent}.badge.ok{background:#eafff3;color:#087f5b;border-color:#b2f2bb}.badge.bad{background:#ffe3e3;color:#c92a2a;border-color:#ffb3b3}.badge.warn{background:#fff8db;color:#a66a00;border-color:#ffe08a}.badge.blue{background:#e8f4ff;color:var(--blue);border-color:#ccecff}
.statusline{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}.workflow-status{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.pill{display:inline-flex;border-radius:999px;padding:6px 10px;font-weight:950;font-size:13px;background:#eef7ff;color:var(--blue);border:1px solid #ccecff}.pill.ok{background:#eafff3;color:#087f5b;border-color:#b2f2bb}.pill.warn{background:#fff8db;color:#a66a00;border-color:#ffe08a}
.step-card{background:#fff;border:1px solid var(--border);border-radius:24px;padding:18px;margin-bottom:14px;box-shadow:var(--shadow)}.step-title{display:flex;gap:10px;align-items:center;margin-bottom:12px}.step-no{display:inline-flex;width:36px;height:36px;border-radius:999px;background:var(--blue);color:#fff;align-items:center;justify-content:center;font-weight:950}.step-title h2{margin:0;font-size:22px}
.checkline{display:flex;gap:10px;align-items:flex-start;background:#f8fbff;border:1px solid var(--border);border-radius:16px;padding:13px;margin:12px 0}.checkline input{width:auto;margin-top:4px}.camera-box{background:#f8fbff;border:1px dashed #9ab0c9;border-radius:18px;padding:14px}.return-fee-box{background:#fff8db;border:1px solid #ffe08a;border-radius:18px;padding:14px;margin:12px 0;font-weight:800}
.calendar-card{background:#fff;border:1px solid var(--border);border-radius:24px;padding:16px;box-shadow:var(--shadow);overflow:auto}.calendar-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:14px}.calendar-title{font-size:28px;font-weight:950}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));gap:8px}.weekday{text-align:center;background:#eef7ff;border-radius:12px;padding:10px;font-weight:950;color:#667085}.day{min-height:128px;border:1px solid var(--border);border-radius:16px;background:#fbfdff;padding:10px}.day.busy{background:#fff8f8;border-color:#ffc9c9}.day.today{outline:3px solid #9bd8ff;outline-offset:-3px}.daynum{font-weight:950;font-size:20px}.free-link{display:flex;align-items:center;justify-content:center;margin-top:8px;border:1px dashed #b2f2bb;background:#eafff3;color:#087f5b;border-radius:12px;padding:10px;text-decoration:none;font-weight:950}.event{background:#fff8db;border-left:5px solid #fab005;border-radius:14px;padding:8px;margin-top:8px;box-shadow:0 6px 16px rgba(16,32,51,.08)}.event.status-signed{background:#e7f5ff;border-left-color:#228be6}.event.status-picked{background:#f3f0ff;border-left-color:#7950f2}.event.status-completed,.event.status-returned{background:#e6fcf5;border-left-color:#12b886}.event strong,.event small{display:block}.event small{color:#667085}
table{width:100%;border-collapse:collapse}th,td{padding:12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{background:#f1f8ff}
@media(max-width:860px){.app-header{height:auto;align-items:flex-start;padding:10px 12px}.main-nav{overflow-x:auto;max-width:calc(100vw - 80px);padding-bottom:4px}.main-nav a{white-space:nowrap;padding:10px 12px}.app-shell{margin-top:14px}.hero{display:block;border-radius:24px;padding:24px}.quick-grid{grid-template-columns:1fr}.form-grid,.form-grid.three{grid-template-columns:1fr}.big-actions{grid-template-columns:1fr}.rental-card{display:block}.rental-date{display:inline-block;margin-top:10px}.rental-meta{grid-template-columns:1fr}.actions .btn,.actions button{flex:1 1 140px}.calendar-grid{min-width:860px}table,tr,td,th{display:block;width:100%}tr{border-bottom:2px solid var(--border);padding:10px 0}th{display:none}td{border:0;padding:7px 0}}
@media print{.app-header,.no-print,.actions,.btn,button{display:none!important}body{background:#fff}.app-shell{max-width:none;margin:0;padding:0}.card{box-shadow:none;border:0}}


/* Medienverwaltung Infozettel */
.media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.media-card{background:#fff;border:1px solid var(--border);border-radius:22px;padding:14px;box-shadow:var(--shadow);display:grid;grid-template-columns:170px 1fr;gap:14px;align-items:start}
.media-card img{width:100%;height:120px;object-fit:cover;border-radius:16px;border:1px solid var(--border);background:#eef8ff}
.media-card h2{font-size:18px;margin:0 0 8px}
.media-card form{margin:8px 0}
.media-card input[type=file]{font-size:14px;padding:10px}
.media-card button{margin-top:8px;width:100%}
@media(max-width:820px){
  .media-grid{grid-template-columns:1fr}
  .media-card{grid-template-columns:1fr}
  .media-card img{height:190px}
}


/* Mobile-Optimierung v3 für Admin, Listen, Formulare und Unterschrift */
@media(max-width:760px){
  html,body{
    overflow-x:hidden;
  }

  body{
    background:linear-gradient(180deg,#edf8ff 0,#ffffff 48%,#f7fbff 100%);
  }

  .app-header{
    position:sticky;
    top:0;
    z-index:100;
    height:auto;
    padding:10px;
    gap:8px;
    align-items:flex-start;
    flex-direction:column;
  }

  .brand{
    width:100%;
    justify-content:flex-start;
  }

  .main-nav{
    width:100%;
    max-width:100%!important;
    overflow-x:auto;
    display:flex;
    gap:7px;
    padding:2px 0 6px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }

  .main-nav::-webkit-scrollbar{
    display:none;
  }

  .main-nav a{
    flex:0 0 auto;
    white-space:nowrap;
    padding:10px 12px;
    border-radius:13px;
    background:#f4faff;
    border:1px solid #d6e3ef;
    font-size:14px;
  }

  .app-shell{
    width:100%;
    max-width:100%;
    margin:12px auto 44px;
    padding:0 10px;
  }

  .hero{
    display:block;
    border-radius:24px;
    padding:22px 18px;
    margin-bottom:12px;
  }

  .hero h1{
    font-size:clamp(30px,9vw,42px);
    line-height:1.04;
  }

  .hero p{
    font-size:15px;
    line-height:1.45;
  }

  .eyebrow{
    font-size:12px;
    padding:6px 10px;
  }

  .card,
  .step-card{
    border-radius:20px;
    padding:15px;
    margin-bottom:12px;
    box-shadow:0 10px 30px rgba(16,32,51,.09);
  }

  .quick-grid,
  .form-grid,
  .form-grid.three,
  .big-actions{
    grid-template-columns:1fr!important;
    gap:10px;
  }

  label{
    font-size:13px;
    margin:12px 0 6px;
  }

  input,select,textarea{
    min-height:46px;
    border-radius:14px;
    font-size:16px;
    padding:12px;
  }

  .btn,button{
    width:100%;
    min-height:44px;
    border-radius:14px;
    font-size:15px;
    padding:11px 13px;
  }

  .actions,
  .big-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px;
  }

  .actions .btn,
  .actions button,
  .big-actions .btn,
  .big-actions button{
    flex:none!important;
    width:100%!important;
  }

  .rental-list{
    gap:12px;
  }

  .rental-card{
    display:block!important;
    border-radius:21px;
    padding:15px;
  }

  .rental-card h2{
    font-size:21px;
    line-height:1.15;
  }

  .rental-meta{
    grid-template-columns:1fr!important;
    gap:7px;
    margin:10px 0;
  }

  .rental-meta>div{
    background:#f6fbff;
    border:1px solid #d6e3ef;
    border-radius:13px;
    padding:9px 10px;
  }

  .rental-date{
    display:block!important;
    width:100%;
    margin:10px 0 0;
    border-radius:15px;
  }

  .statusline,
  .workflow-status{
    gap:7px;
  }

  .pill,
  .badge{
    font-size:12px;
    padding:6px 9px;
  }

  table,tr,td,th{
    display:block;
    width:100%;
  }

  table{
    border:0;
  }

  tr{
    background:#fff;
    border:1px solid var(--border);
    border-radius:16px;
    padding:10px;
    margin-bottom:10px;
    box-shadow:0 6px 18px rgba(16,32,51,.06);
  }

  th{
    display:none;
  }

  td{
    border:0!important;
    padding:6px 0!important;
  }

  .signature-box,
  canvas.signature-box,
  #sig{
    height:260px!important;
    min-height:260px!important;
    border-radius:20px!important;
    border:2px dashed #9ab0c9!important;
    background:#fff!important;
  }

  .notice{
    border-radius:16px;
    padding:13px;
    font-size:14px;
    line-height:1.45;
  }

  .media-grid{
    grid-template-columns:1fr!important;
  }

  .media-card{
    grid-template-columns:1fr!important;
    border-radius:20px;
  }

  .media-card img{
    height:190px;
  }
}

@media(max-width:390px){
  .app-shell{
    padding:0 8px;
  }
  .hero{
    padding:20px 15px;
  }
  .card,.step-card,.rental-card{
    padding:13px;
    border-radius:18px;
  }
  .hero h1{
    font-size:28px;
  }
}


/* Bewertungsportal */
.review-public-body{
  min-height:100vh;
  background:linear-gradient(180deg,#eaf8ff 0,#ffffff 52%,#f7fbff 100%);
}
.review-public-wrap{
  width:min(940px,100%);
  margin:0 auto;
  padding:22px 14px 50px;
}
.review-hero-card,
.review-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:28px;
  box-shadow:var(--shadow);
  padding:24px;
  margin-bottom:14px;
}
.review-hero-card{
  background:linear-gradient(135deg,#0678d8,#0055bd);
  color:#fff;
  overflow:hidden;
  position:relative;
}
.review-hero-card:after{
  content:"";
  position:absolute;
  right:-70px;
  top:-80px;
  width:220px;
  height:220px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
}
.review-kicker{
  display:inline-flex;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  font-weight:950;
  margin-bottom:10px;
}
.review-hero-card h1{
  margin:0;
  font-size:clamp(36px,7vw,60px);
  line-height:1;
  letter-spacing:-1px;
}
.review-hero-card p{
  max-width:720px;
  margin:12px 0 0;
  font-size:17px;
  line-height:1.45;
  font-weight:750;
}
.review-bonus-line{
  display:inline-flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:14px;
  padding:10px 12px;
  border-radius:16px;
  background:#fff;
  color:#102033;
  font-weight:950;
}
.review-rental-box,
.review-rental-admin{
  background:#f4faff;
  border:1px solid #d6e3ef;
  border-radius:18px;
  padding:12px 14px;
  margin-bottom:12px;
  font-weight:900;
}
.review-rental-box span{display:block;color:#667085;margin-top:4px;font-weight:750}
.star-input{
  display:inline-flex;
  flex-direction:row-reverse;
  gap:4px;
  padding:8px 10px;
  border-radius:16px;
  background:#f8fbff;
  border:1px solid var(--border);
}
.star-input input{display:none}
.star-input label{
  margin:0;
  cursor:pointer;
  font-size:38px;
  line-height:1;
  color:#c9d8e8;
  transition:.15s ease;
}
.star-input input:checked ~ label,
.star-input label:hover,
.star-input label:hover ~ label{color:#fab005;transform:translateY(-1px)}
.review-consent span{font-weight:800;line-height:1.35}
.success-card h2{font-size:32px;margin-top:0;color:#087f5b}
.review-discount-box{
  margin:14px 0;
  padding:16px;
  border-radius:20px;
  background:#eafff3;
  border:1px solid #b2f2bb;
  text-align:center;
}
.review-discount-box span,.review-discount-box small{display:block;color:#087f5b;font-weight:850}
.review-discount-box strong{display:block;font-size:38px;color:#087f5b;letter-spacing:1px;margin:4px 0;font-weight:950}
.review-admin-list{display:grid;gap:14px}
.review-admin-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  gap:14px;
  background:#fff;
  border:1px solid var(--border);
  border-left:6px solid #fab005;
  border-radius:26px;
  padding:16px;
  box-shadow:var(--shadow);
}
.review-admin-card.review-status-approved{border-left-color:#12b886}
.review-admin-card.review-status-rejected{border-left-color:#e03131}
.review-admin-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.review-admin-head h2{margin:8px 0 4px;font-size:24px}
.review-admin-head p{margin:0;color:#fab005;font-size:18px;font-weight:950}
.review-code{background:#eef7ff;border:1px solid #ccecff;border-radius:16px;padding:10px 12px;text-align:center;font-weight:900;min-width:96px}
.review-code b{font-size:18px;color:var(--blue)}
.review-admin-card blockquote{margin:12px 0;padding:14px;border-left:5px solid #ccecff;background:#f8fbff;border-radius:14px;font-size:16px;line-height:1.45;font-weight:700}
.review-contact-row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.review-contact-row span{display:inline-flex;padding:7px 10px;background:#f8fbff;border:1px solid var(--border);border-radius:999px;font-weight:800}
.review-actions-form textarea{min-height:70px}.review-actions-form .actions{margin-top:8px}
.review-admin-photo img{width:100%;height:220px;object-fit:cover;border-radius:18px;border:1px solid var(--border);background:#f4faff}.no-review-photo{height:220px;border-radius:18px;border:1px dashed #c9d8e8;background:#f8fbff;color:#667085;display:flex;align-items:center;justify-content:center;font-weight:950}
@media(max-width:820px){
  .review-public-wrap{padding:12px 10px 38px}
  .review-hero-card,.review-card{border-radius:22px;padding:17px}
  .review-hero-card h1{font-size:38px}
  .review-hero-card p{font-size:15px}
  .star-input{width:100%;justify-content:center}.star-input label{font-size:34px}
  .review-admin-card{grid-template-columns:1fr;border-radius:22px;padding:14px}.review-admin-photo{order:-1}.review-admin-photo img,.no-review-photo{height:210px}.review-admin-head{display:block}.review-code{display:inline-block;margin-top:10px}.review-actions-form .actions{display:grid!important;grid-template-columns:1fr!important}.review-actions-form .actions button{width:100%}
}


/* Kundenregistrierung / Kundenlink */
.customer-link-card h2{margin:0 0 4px;font-size:28px}
.customer-link-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}
.customer-link-head p{margin:0;color:#667085;font-weight:800}
.copy-row{display:grid;grid-template-columns:1fr 180px;gap:10px;align-items:center}.copy-row input{font-weight:800;background:#f8fbff}
.customer-link-actions{grid-template-columns:repeat(4,1fr)}
.register-public-body{min-height:100vh;background:linear-gradient(180deg,#eaf8ff 0,#ffffff 54%,#f7fbff 100%)}
.register-public-wrap{width:min(900px,100%);margin:0 auto;padding:22px 14px 54px}.register-hero-card,.register-card{background:#fff;border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow);padding:24px;margin-bottom:14px}.register-hero-card{background:linear-gradient(135deg,#0878d8,#13b5f2);color:#fff;position:relative;overflow:hidden}.register-hero-card:after{content:"";position:absolute;right:-72px;top:-82px;width:220px;height:220px;border-radius:999px;background:rgba(255,255,255,.16)}.register-hero-card.error{background:linear-gradient(135deg,#dc3545,#ff8787)}.register-hero-card.success{background:linear-gradient(135deg,#087f5b,#37c96b)}.register-kicker{display:inline-flex;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);font-weight:950;margin-bottom:10px}.register-hero-card h1{margin:0;font-size:clamp(36px,7vw,58px);line-height:1;letter-spacing:-1px}.register-hero-card p{max-width:720px;margin:12px 0 0;font-size:17px;line-height:1.45;font-weight:750}.register-bonus-line{display:inline-flex;flex-wrap:wrap;gap:6px;margin-top:14px;padding:10px 12px;border-radius:16px;background:#fff;color:#102033;font-weight:950}.register-rental-box{background:#f4faff;border:1px solid #d6e3ef;border-radius:18px;padding:14px 16px;margin-bottom:14px;font-weight:900}.register-rental-box span{display:block;color:#667085;margin-top:4px;font-weight:750}.register-consent span{font-weight:800;line-height:1.35}.register-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}.register-actions .btn,.register-actions button{width:100%}.hidden-field{position:absolute!important;left:-9999px!important;opacity:0!important;height:1px!important;width:1px!important}.success-card h2{font-size:32px;margin-top:0;color:#087f5b}
@media(max-width:820px){.customer-link-head{display:block}.copy-row{grid-template-columns:1fr}.customer-link-actions{grid-template-columns:1fr!important}.register-public-wrap{padding:12px 10px 38px}.register-hero-card,.register-card{border-radius:22px;padding:17px}.register-hero-card h1{font-size:38px}.register-hero-card p{font-size:15px}.register-actions{grid-template-columns:1fr}.register-rental-box{border-radius:16px;padding:12px}.register-consent{align-items:flex-start}.register-consent input{width:auto;min-height:auto;margin-top:5px}}

/* ==========================================================
   Mobile-First v4 – 15.08.2026
   Basis = Smartphone. Groessere Layouts werden nur per min-width erweitert.
   ========================================================== */
html{font-size:16px;-webkit-text-size-adjust:100%}
body{min-width:0;overflow-x:hidden}
img,svg,video,canvas{max-width:100%;height:auto}
button,.btn,input,select,textarea{touch-action:manipulation}

/* Navigation: Smartphone zuerst */
.app-header{
  height:auto!important;
  min-height:64px;
  padding:9px 10px!important;
  gap:8px;
  align-items:center!important;
  flex-wrap:wrap;
}
.brand{min-width:0;flex:0 0 auto}
.brand-icon{width:36px;height:36px;border-radius:12px}
.brand strong{font-size:15px}.brand small{font-size:11px}
.main-nav{
  order:2;
  width:100%!important;
  max-width:100%!important;
  display:flex!important;
  gap:7px!important;
  overflow-x:auto!important;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:2px 0 5px;
}
.main-nav::-webkit-scrollbar{display:none}
.main-nav a{
  flex:0 0 auto;
  min-height:42px;
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  padding:9px 11px!important;
  border:1px solid var(--border);
  background:#f7fbff;
  border-radius:13px!important;
  font-size:13px;
}

/* Seitenrahmen */
.app-shell{
  width:100%!important;
  max-width:100%!important;
  margin:10px auto 42px!important;
  padding:0 10px!important;
}
.hero{
  display:block!important;
  border-radius:20px!important;
  padding:19px 15px!important;
  margin-bottom:12px!important;
}
.hero h1{font-size:clamp(28px,9vw,38px)!important;line-height:1.04!important}
.hero p{font-size:14px;line-height:1.45}
.eyebrow{font-size:11px;padding:6px 9px}
.card,.step-card{
  padding:14px!important;
  border-radius:18px!important;
  margin-bottom:11px!important;
  box-shadow:0 8px 24px rgba(16,32,51,.08)!important;
}

/* Formulare und Touch-Ziele */
label{font-size:13px;margin:11px 0 6px}
input,select,textarea{
  min-height:48px;
  padding:12px 12px!important;
  border-radius:13px!important;
  font-size:16px!important;
  line-height:1.25;
}
textarea{min-height:110px}
.btn,button{
  min-height:46px;
  width:100%;
  padding:11px 13px!important;
  border-radius:13px!important;
  font-size:15px!important;
}
.actions,.big-actions{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
  width:100%;
}
.actions .btn,.actions button,.big-actions .btn,.big-actions button{width:100%!important;flex:none!important}
.quick-grid,.form-grid,.form-grid.three,.media-grid{
  grid-template-columns:1fr!important;
  gap:10px!important;
}

/* Listen / Vermietungen */
.rental-list{gap:11px}
.rental-card{
  display:block!important;
  padding:14px!important;
  border-radius:18px!important;
}
.rental-card h2{font-size:20px!important;line-height:1.15}
.rental-meta{grid-template-columns:1fr!important;gap:7px!important;margin:10px 0!important}
.rental-meta>div{background:#f7fbff;border:1px solid var(--border);border-radius:12px;padding:9px 10px}
.rental-date{display:block!important;width:100%;min-width:0!important;margin:10px 0 0!important}
.statusline,.workflow-status{gap:6px}.pill,.badge{font-size:11px;padding:5px 8px}

/* Tabellen werden mobil als Karten dargestellt */
table{display:block;width:100%;border:0}
thead{display:none}
tbody{display:block;width:100%}
tr{display:block;width:100%;background:#fff;border:1px solid var(--border);border-radius:15px;padding:10px;margin-bottom:9px;box-shadow:0 5px 16px rgba(16,32,51,.05)}
td{display:block;width:100%;border:0!important;padding:6px 0!important;overflow-wrap:anywhere}
th{display:none}

/* Medien */
.media-card{grid-template-columns:1fr!important;border-radius:18px!important;padding:13px!important}
.media-card img{height:auto!important;max-height:240px;object-fit:cover}

/* Signatur / Kamera */
.signature-box,canvas.signature-box,#sig{width:100%!important;height:240px!important;min-height:240px!important;touch-action:none!important}
.camera-box{padding:12px!important;border-radius:15px!important}

/* Kalender: Mobil keine breite 7-Spalten-Tabelle erzwingen */
.calendar-card{padding:10px!important;border-radius:18px!important;overflow:hidden!important}
.calendar-head{display:block!important}.calendar-title{font-size:22px!important;margin-bottom:8px}
.calendar-grid{display:block!important;min-width:0!important}
.weekday{display:none!important}
.day{min-height:0!important;margin-bottom:8px;border-radius:14px!important;padding:10px!important}

/* Kundenportal: harte mobile Basis auch gegen alte Inline-Layouts */
.shop-wrap,.wrap,.docs-shell,.public-reviews-wrap,.review-public-wrap,.register-public-wrap,.precheck-wrap{
  width:100%!important;max-width:100%!important;margin:0 auto!important;padding:10px 10px 38px!important;
}
.shop-hero,.hero2,.docs-hero,.public-reviews-hero,.review-hero-card,.register-hero-card,.one-hero{
  border-radius:20px!important;padding:20px 16px!important;
}
.shop-actions,.public-reviews-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
.shop-actions a,.public-reviews-actions .btn{width:100%;text-align:center;min-height:46px;display:flex;align-items:center;justify-content:center}
.shop-grid,.public-review-grid,.public-reviews-summary,.docs-meta,.docs-actions,.register-actions,.wizard-progress{
  grid-template-columns:1fr!important;
}
.product{border-radius:19px!important}.product-body{padding:15px!important}.product-media{aspect-ratio:16/10}
.lookup{padding:14px!important;border-radius:18px!important}.lookup form{grid-template-columns:1fr!important}
.kv{grid-template-columns:1fr!important}
.public-review-card,.review-admin-card{grid-template-columns:1fr!important}
.public-review-photo,.review-admin-photo{order:-1}
.copy-row,.customer-link-actions{grid-template-columns:1fr!important}
.doc-frame{min-height:420px!important;height:58vh!important}

/* Admin Spezialbereiche */
.admin-cal-mini,.stats-kpis,.stats-grid,.stats-months,.return-total-box,.return-fee-row{grid-template-columns:1fr!important}
.admin-cal-grid,.admin-cal-weekdays{display:none!important}.admin-cal-list{display:block!important}
.stats-toolbar form{display:grid!important;grid-template-columns:1fr!important}
.stats-toolbar .field,.stats-toolbar .field.item,.media-modebar select{min-width:0!important;width:100%!important}
.return-fee-head{display:none!important}

/* Kleine Smartphones */
@media (max-width:380px){
  .app-shell,.shop-wrap,.wrap,.docs-shell,.public-reviews-wrap,.review-public-wrap,.register-public-wrap,.precheck-wrap{padding-left:8px!important;padding-right:8px!important}
  .hero,.shop-hero,.hero2,.docs-hero,.public-reviews-hero,.review-hero-card,.register-hero-card,.one-hero{padding:17px 13px!important;border-radius:18px!important}
  .card,.step-card,.rental-card{padding:12px!important}
}

/* Tablet ab 700 px */
@media (min-width:700px){
  .app-header{padding:10px 16px!important;flex-wrap:nowrap}
  .main-nav{order:initial;width:auto!important;max-width:calc(100vw - 220px)!important}
  .app-shell{max-width:1010px!important;padding:0 14px!important;margin:18px auto 60px!important}
  .hero{padding:26px 24px!important;border-radius:25px!important}
  .hero h1{font-size:clamp(34px,6vw,48px)!important}
  .card,.step-card{padding:18px!important;border-radius:21px!important}
  .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .big-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .actions{display:flex!important;flex-wrap:wrap!important;width:auto}
  .actions .btn,.actions button{width:auto!important;flex:0 1 auto!important}
  .rental-card{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;padding:17px!important}
  .rental-meta{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .rental-date{width:auto!important;min-width:90px!important;margin:0!important}
  .media-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .media-card{grid-template-columns:150px minmax(0,1fr)!important}
  .media-card img{height:115px!important}
  .shop-wrap{max-width:1180px!important;padding:18px 14px 50px!important}
  .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .lookup form{grid-template-columns:1fr auto!important}.lookup button{width:auto}
  .docs-meta,.docs-actions,.register-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .public-reviews-summary{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .public-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .wizard-progress{grid-template-columns:repeat(5,minmax(0,1fr))!important}
  .stats-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .return-total-box{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .return-fee-row{grid-template-columns:minmax(0,1.5fr) 150px 130px!important}
  .return-fee-head{display:grid!important;grid-template-columns:minmax(0,1.5fr) 150px 130px!important}
}

/* Desktop ab 980 px */
@media (min-width:980px){
  .app-header{padding:10px 24px!important}
  .main-nav{width:auto!important;max-width:none!important;overflow:visible!important}
  .main-nav a{background:transparent;border-color:transparent;font-size:14px}
  .main-nav a.active,.main-nav a:hover{background:#e8f4ff;border-color:#d6e8f7}
  .hero{display:flex!important;padding:28px 30px!important;border-radius:28px!important}
  .big-actions{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .shop-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .stats-kpis{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .stats-months{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .admin-cal-grid{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important}
  .admin-cal-list{display:none!important}
}
