:root{
  --blue:#0b6fba;--blue2:#095c9d;--navy:#12304a;--bg:#f4f8fb;--card:#fff;--line:#dbe7f0;--text:#183244;--muted:#6d7d88;--danger:#c73535;--ok:#16845b;--warn:#b87800
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--blue);text-decoration:none}
.topbar{min-height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:22px;padding:0 28px;position:sticky;top:0;z-index:2;box-shadow:0 4px 18px rgba(21,59,89,.04)}
.brand{display:flex;align-items:center;gap:10px;color:var(--navy);font-weight:850}.brand img{width:120px;height:auto}.brand span{font-size:13px;background:#eef6fc;border:1px solid var(--line);padding:5px 8px;border-radius:999px}
.mainnav{display:flex;gap:8px;flex:1}.mainnav a{padding:10px 12px;border-radius:12px;color:#27465a;font-weight:700}.mainnav a:hover,.mainnav a.active{background:#eef6fc;color:var(--blue)}
.ghost{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 14px;color:var(--text);font-weight:750;cursor:pointer}.ghost:hover{background:#f7fbfe}.shell{max-width:1180px;margin:0 auto;padding:26px}.no-print{}
.auth-wrap{min-height:calc(100vh - 130px);display:grid;place-items:center}.auth-card,.panel,.hero-card,.tile{background:var(--card);border:1px solid var(--line);box-shadow:0 12px 34px rgba(21,59,89,.08);border-radius:26px}.auth-card{width:min(520px,100%);padding:34px}.auth-card.wide{width:min(880px,100%)}
h1{margin:6px 0 10px;font-size:clamp(27px,3vw,42px);line-height:1.04;color:var(--navy)}h2{margin:0 0 14px;color:var(--navy)}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--blue);font-size:12px;font-weight:850;margin:0 0 6px}.muted{color:var(--muted);line-height:1.55}.small{font-size:13px}.grid-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.stack-form{display:flex;flex-direction:column;gap:14px}.full{grid-column:1/-1}
label{font-size:13px;font-weight:750;color:#345161}input,select{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:14px;padding:13px 14px;font-size:15px;background:#fff;color:var(--text)}input:focus,select:focus{outline:3px solid rgba(11,111,186,.16);border-color:var(--blue)}
.primary{background:linear-gradient(135deg,var(--blue),var(--blue2));border:0;color:#fff;border-radius:16px;padding:14px 18px;font-weight:850;cursor:pointer;text-align:center}.primary:hover{filter:brightness(.98)}.linkbtn{display:inline-block}.button-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.module-select{display:flex;gap:14px;flex-wrap:wrap;background:#f7fbfe;border:1px solid var(--line);border-radius:18px;padding:16px}.module-select.vertical{flex-direction:column}.module-select label,.checkline{display:flex;align-items:center;gap:8px}.module-select input,.checkline input{width:auto;margin:0}.module-select hr{width:100%;border:0;border-top:1px solid var(--line);margin:4px 0}
.msg{margin-top:14px;font-weight:750;min-height:20px}.msg.ok{color:var(--ok)}.msg.bad{color:var(--danger)}
.hero-card{padding:28px 32px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.hero-card.compact{padding:22px 28px}.card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.tile{display:flex;flex-direction:column;gap:8px;padding:22px;color:var(--text)}.tile:hover{transform:translateY(-1px);border-color:#b7d7ee}.tile span{color:var(--muted);font-size:14px;line-height:1.45}.split{display:grid;grid-template-columns:360px 1fr;gap:18px}.panel{padding:22px}.list{display:grid;gap:10px}.empty{border:1px dashed var(--line);border-radius:16px;padding:18px;color:var(--muted);background:#f9fcff}
.row{border:1px solid var(--line);border-radius:16px;background:#f9fcff;padding:13px 15px;display:flex;justify-content:space-between;gap:12px}.row span{display:block;color:var(--muted);font-size:13px;margin-top:3px}.admin-row{align-items:center}.row-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.mini{border:1px solid var(--line);background:#fff;color:var(--text);font-weight:800;border-radius:11px;padding:8px 10px;cursor:pointer}.mini:hover{background:#eef6fc}.mini.danger{border-color:#f0c9c9;color:var(--danger)}.is-disabled{opacity:.62}
.tokenbox{margin-top:14px;background:#fff8e6;border:1px solid #f1d48b;border-radius:16px;padding:14px;display:grid;gap:8px}.tokenbox:empty{display:none}.tokenbox code{display:block;word-break:break-all;background:#fff;border-radius:10px;padding:10px;color:#614800}
.a5-print{background:#fff;width:148mm;min-height:210mm;margin:0 auto;padding:11mm 12mm;border:1px solid var(--line);border-radius:20px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5mm}.a5-head{display:flex;flex-direction:column;gap:4mm;align-items:center}.a5-head img{width:44mm;max-width:180px}.a5-head strong{font-size:14pt;color:var(--navy)}.a5-print h2{font-size:22pt;line-height:1.05;margin:0;color:var(--navy)}.a5-print p{font-size:11pt;line-height:1.35;margin:0;max-width:105mm}.qr-box{width:76mm;height:76mm;display:grid;place-items:center;border:1px solid #e5edf4;border-radius:8mm;background:#fff}.qr-box img{width:70mm;height:70mm;display:block}.qr-placeholder{width:70mm;height:70mm;border:6px solid var(--navy);display:grid;place-items:center;font-size:34pt;font-weight:900;color:var(--navy)}.qr-code-text{font-size:10pt!important}.qr-code-text strong{letter-spacing:.05em}
@media(max-width:900px){.grid-form,.split,.card-grid{grid-template-columns:1fr}.topbar{height:auto;align-items:flex-start;flex-wrap:wrap;padding:14px}.mainnav{flex-wrap:wrap}.shell{padding:16px}.hero-card{align-items:flex-start;flex-direction:column}.auth-card{padding:24px}}
@media print{ @page{size:A5 portrait;margin:0}.topbar,.no-print,.hero-card button{display:none!important}body{background:#fff}.shell{padding:0;margin:0;max-width:none}.a5-print{border:0;border-radius:0;width:148mm;min-height:210mm;margin:0;padding:11mm 12mm;box-shadow:none}.msg{display:none}}

/* Arztiva DOC v0.4 - SweetAlert und Token-/Admin-Feinschliff */
.swal2-popup.az-swal-toastlike {
  border-radius: 24px !important;
  padding: 1.25rem 1.35rem !important;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .22) !important;
}
.swal2-popup.az-swal-toastlike .swal2-title {
  color: #0f172a !important;
  font-size: 1.18rem !important;
  font-weight: 850 !important;
  line-height: 1.25 !important;
}
.swal2-popup.az-swal-toastlike .swal2-html-container {
  color: #334155 !important;
  font-size: .94rem !important;
  line-height: 1.45 !important;
}
.swal2-popup.az-swal-toastlike .swal2-timer-progress-bar {
  background: linear-gradient(90deg, #0b5f8a, #1aa6d9) !important;
}
.swal2-popup.az-swal-toastlike .swal2-confirm {
  border-radius: 14px !important;
  background: #0b5f8a !important;
  color: #fff !important;
  font-weight: 800 !important;
  min-height: 42px !important;
  padding: 10px 18px !important;
}
.swal2-popup.az-swal-toastlike .swal2-cancel {
  border-radius: 14px !important;
  background: #eef2f7 !important;
  color: #0f172a !important;
  font-weight: 800 !important;
  min-height: 42px !important;
  padding: 10px 18px !important;
}

.tokenbox {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding: 14px;
  border: 1px solid rgba(14, 95, 138, .22);
  border-radius: 18px;
  background: rgba(14, 95, 138, .06);
}
.tokenbox code {
  display: block;
  width: 100%;
  padding: 12px;
  border-radius: 14px;
  background: #0f172a;
  color: #e0f2fe;
  font-size: .85rem;
  font-weight: 800;
  line-height: 1.45;
  overflow-wrap: anywhere;
  user-select: all;
}
.row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}
.row-actions .mini,
.tokenbox .mini {
  min-height: 34px;
  padding: 7px 12px;
  border-radius: 11px;
  border: 1px solid rgba(15,23,42,.14);
  background: #fff;
  color: #0f172a;
  font-weight: 800;
  cursor: pointer;
}
.row-actions .mini.danger,
button.mini.danger {
  border-color: rgba(220,38,38,.24);
  background: rgba(220,38,38,.08);
  color: #991b1b;
}
.admin-row.is-disabled {
  opacity: .74;
}
.module-select.vertical label {
  cursor: pointer;
}
.module-select.vertical input[type="checkbox"] {
  transform: translateY(1px);
  margin-right: 8px;
}
@media (prefers-color-scheme: dark) {
  .swal2-popup.az-swal-toastlike {
    background: #111827 !important;
    color: #f8fafc !important;
  }
  .swal2-popup.az-swal-toastlike .swal2-title { color: #f8fafc !important; }
  .swal2-popup.az-swal-toastlike .swal2-html-container { color: #cbd5e1 !important; }
  .swal2-popup.az-swal-toastlike .swal2-cancel { background: #1f2937 !important; color: #f8fafc !important; }
}

/* Arztiva DOC v0.5 - mobile Webfrontend und QR-Aushang */
.nav-toggle{display:none;border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 13px;color:var(--navy);font-weight:900;font-size:20px;line-height:1;cursor:pointer}
@media(max-width:760px){
  .topbar{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 12px;min-height:64px;position:sticky;top:0;z-index:20}
  .brand img{width:96px}.brand span{font-size:11px;padding:4px 7px}.nav-toggle{display:inline-flex;align-items:center;justify-content:center}
  .mainnav{display:none;grid-column:1/-1;width:100%;padding:8px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 14px 40px rgba(15,48,74,.10)}
  body.nav-open .mainnav{display:grid;grid-template-columns:1fr;gap:4px}
  .mainnav a{display:block;width:100%;padding:13px 14px;border-radius:14px;font-weight:850}
  #btnLogout{grid-column:3;white-space:nowrap;padding:9px 10px;font-size:13px}.shell{padding:14px;max-width:100%;overflow-x:hidden}
  .auth-card,.panel,.hero-card,.tile{border-radius:22px}.hero-card.compact{padding:18px}.panel{padding:16px}
  .split,.grid-form,.card-grid{grid-template-columns:1fr!important}.button-row{width:100%}.button-row .primary,.button-row .ghost,.button-row button{flex:1 1 100%;justify-content:center}
  .row.admin-row{display:grid;grid-template-columns:1fr;gap:10px}.row-actions{justify-content:stretch}.row-actions .mini{flex:1 1 auto;min-height:40px}
  .module-select{border-radius:18px;padding:14px;gap:12px}.module-select.vertical label{font-size:14px;line-height:1.35;align-items:flex-start}.module-select.vertical input[type="checkbox"]{margin-top:2px;min-width:18px;min-height:18px}
  input,select{min-height:48px;font-size:16px}.primary,.ghost{min-height:46px}
}
@media(max-width:760px){
  .a5-print{width:100%;min-height:auto;margin:0;padding:18px 14px;border-radius:22px;gap:14px;overflow:hidden}.a5-head img{width:min(160px,70vw);max-width:100%}.a5-print h2{font-size:clamp(25px,8vw,34px)}.a5-print p{max-width:100%;font-size:15px}.qr-box{width:min(72vw,290px);height:min(72vw,290px);border-radius:24px}.qr-box img{width:min(64vw,250px);height:min(64vw,250px)}.qr-placeholder{width:min(64vw,250px);height:min(64vw,250px);font-size:44px}.qr-code-text{font-size:13px!important;overflow-wrap:anywhere}.no-print .button-row{width:100%}.no-print .button-row button{width:100%}
}

/* v0.9 Mobile- und QR-Fix */
@media (max-width: 760px) {
  .shell { padding-left: 12px !important; padding-right: 12px !important; }
  .topbar { gap: 8px !important; }
  .brand img { max-width: 132px !important; height: auto !important; }
  .mainnav { max-height: calc(100vh - 72px); overflow-y: auto; }
  .split { grid-template-columns: 1fr !important; }
  .panel, .hero-card { max-width: 100% !important; overflow: hidden !important; }
  .qr-print, .qr-page, .qr-card, .qr-wrap { width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; overflow: hidden !important; }
  .qr-print img, .qr-page img, .qr-card img, .qr-wrap img, img[src*="h_func_otp_qr"] { max-width: min(100%, 320px) !important; height: auto !important; }
  .row.admin-row { grid-template-columns: 1fr !important; gap: 10px !important; }
  .row-actions { justify-content: stretch !important; flex-wrap: wrap !important; }
  .row-actions .mini { flex: 1 1 auto !important; }
}
