
:root{--navy:#071b50;--blue:#4d73f5;--ink:#172033;--muted:#667085;--bg:#f2f5fb;--line:#dfe5ef;--white:#fff}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit}
.topbar{height:78px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 34px}.topbar strong{font-size:20px}.topbar span{opacity:.65;margin-left:12px}.topbar nav{display:flex;gap:22px}.topbar nav a{text-decoration:none}
.shell{max-width:1450px;margin:0 auto;padding:30px}.hero{background:var(--navy);color:#fff;border-radius:22px;padding:32px 36px;display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.hero h1{font-size:38px;margin:0}.hero p{margin:6px 0 0;opacity:.8}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;padding:11px 16px;text-decoration:none;background:#fff;color:var(--ink);cursor:pointer;font-weight:650}.btn.primary{background:var(--blue);border-color:var(--blue);color:white}.btn.secondary{background:#fff}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:22px}.stats>div{background:white;border:1px solid var(--line);border-radius:18px;padding:22px}.stats span{color:var(--muted)}.stats strong{display:block;font-size:30px}
.panel{background:white;border:1px solid var(--line);border-radius:18px;padding:24px}.panel-head{display:flex;justify-content:space-between;align-items:center}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px}.project-card{border:1px solid var(--line);border-radius:16px;padding:18px}.project-card h3{margin:5px 0}.project-card p{font-size:12px;color:var(--muted);word-break:break-all}.type{color:var(--blue);font-size:12px;font-weight:700}.row{display:flex;gap:8px}.mini-qr{width:110px;margin:14px 0}
.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:24px}.editor h1,.preview h2{margin-top:0}.preview{position:sticky;top:24px;height:max-content;text-align:center}.preview #qrPreview{display:inline-block;padding:22px;background:#fff;border-radius:18px;border:1px solid var(--line);margin:20px auto}
label{display:block;font-weight:600;margin:14px 0}input,select,textarea{width:100%;margin-top:7px;padding:12px 13px;border:1px solid #cfd7e5;border-radius:9px;font:inherit;background:white}input[type=color]{height:48px;padding:4px}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.typebox{padding:18px;background:#f8f9fe;border:1px solid var(--line);border-radius:14px;margin:18px 0}.typebox h2{margin-top:0}.repeat-row{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:8px;margin:8px 0}.hint{color:var(--muted);font-size:14px}
.login-card,.setup-card{max-width:650px;margin:60px auto;background:#fff;border-radius:20px;padding:32px;border:1px solid var(--line)}.grid-form h2{margin-top:26px}.alert{padding:13px;border-radius:10px;margin:12px 0}.alert.error{background:#fee2e2}.alert.success{background:#dcfce7}.empty{padding:35px;text-align:center;color:var(--muted)}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px;border-bottom:1px solid var(--line);vertical-align:top}
@media(max-width:900px){.editor-layout{grid-template-columns:1fr}.preview{position:static}.topbar nav{display:none}.shell{padding:16px}.hero{align-items:flex-start;gap:18px;flex-direction:column}.repeat-row,.two{grid-template-columns:1fr}}

.hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.category-groups{display:grid;gap:26px}
.qr-category{border:1px solid var(--line);border-radius:16px;padding:18px;background:#fafbfe}
.category-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}
.category-head h3{margin:0;font-size:21px}.category-head span{color:var(--muted);font-size:14px}
.category-add{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-bottom:25px}.category-add label{margin:0}
.category-list{display:grid;gap:10px}.category-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px}
.category-rename{display:grid;grid-template-columns:1fr auto;gap:8px}.category-rename input{margin:0}
.category-count{color:var(--muted);white-space:nowrap}.btn.danger{background:#fff;color:#b42318;border-color:#f1b5b0}
@media(max-width:760px){.category-row{grid-template-columns:1fr}.category-rename{grid-template-columns:1fr}.category-add{grid-template-columns:1fr}}

.bulk-category-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:14px;background:#f6f8fc;border:1px solid var(--line);border-radius:12px;margin:16px 0 22px}
.bulk-category-bar select{width:auto;min-width:220px;margin:0}
.check-all{margin:0;display:flex;align-items:center;gap:8px}
.check-all input{width:auto;margin:0}
.project-select{display:flex;align-items:center;gap:7px;margin:0 0 8px;color:var(--muted);font-size:13px}
.project-select input{width:auto;margin:0}
.direct-category{display:grid;grid-template-columns:auto minmax(140px,1fr) auto;gap:8px;align-items:center;margin:12px 0}
.direct-category span{font-size:13px;color:var(--muted)}
.direct-category select{margin:0;padding:9px}
@media(max-width:560px){
  .direct-category{grid-template-columns:1fr}
  .bulk-category-bar{align-items:stretch;flex-direction:column}
  .bulk-category-bar select{width:100%}
}

.qr-search-panel{margin-bottom:22px}
.qr-search{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px}
.qr-search input{margin:0}
.folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:15px;margin-top:20px}
.folder-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:18px;border:1px solid var(--line);border-radius:15px;background:#fff;text-decoration:none;transition:.15s ease}
.folder-card:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(7,27,80,.08);border-color:#c9d4e8}
.folder-icon{font-size:30px;color:var(--blue)}
.folder-copy{display:flex;flex-direction:column;gap:3px}.folder-copy strong{font-size:18px}.folder-copy span{font-size:13px;color:var(--muted)}
.folder-card>b{font-size:26px;color:#98a2b3}.folder-card.uncategorized{background:#fafbfe}
.category-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.category-toolbar h2{margin:6px 0 2px}.back-link{text-decoration:none;color:var(--blue);font-weight:650}
@media(max-width:700px){.qr-search{grid-template-columns:1fr}.category-toolbar{flex-direction:column}}

.folder-card-wrap{min-width:0}.folder-card-wrap.dragging{opacity:.45}
.folder-card-wrap .folder-card{height:100%}.folder-drag{font-size:20px;color:#98a2b3;cursor:grab;letter-spacing:-3px}
.category-order-save{margin-top:14px;text-align:right}.project-actions{flex-wrap:wrap}.btn.danger{background:#fff;color:#b42318;border-color:#efb0aa}

.current-logo{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8f9fc;margin-top:8px}
.current-logo img{width:64px;height:64px;object-fit:contain;border:1px solid var(--line);border-radius:10px;background:#fff}
.inline-check{display:flex;align-items:center;gap:8px;margin:0}.inline-check input{width:auto;margin:0}

.stats-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.stats-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.stats-meta>div{background:#f8f9fc;border:1px solid var(--line);border-radius:12px;padding:14px}
.stats-meta span{display:block;color:var(--muted);font-size:13px}.stats-meta strong{display:block;margin-top:4px}
.status-on{color:#16803a}.status-off{color:#b42318}
.url-box{margin-top:16px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f8f9fc;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
.bar-chart{height:220px;display:flex;align-items:flex-end;gap:5px;padding:20px 4px 0;overflow-x:auto}
.bar-col{min-width:20px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.bar{width:70%;min-width:8px;max-width:24px;background:var(--blue);border-radius:5px 5px 0 0}
.bar-value{font-size:10px;color:var(--muted);min-height:16px}.bar-col span{font-size:9px;color:var(--muted);margin-top:6px;white-space:nowrap}
.project-card.is-inactive{opacity:.62}.inactive-badge{display:inline-block;margin-left:5px;padding:2px 6px;border-radius:999px;background:#fee4e2;color:#b42318;font-size:9px}
@media(max-width:850px){.stats-meta{grid-template-columns:1fr 1fr}.stats-3{grid-template-columns:1fr}}

.current-logo img{object-fit:cover}

.form-field-row{display:grid;grid-template-columns:1.15fr .8fr 1.2fr auto auto;gap:8px;align-items:center;margin:9px 0;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}
.form-field-row input,.form-field-row select{margin:0}.form-field-row .inline-check{white-space:nowrap}
.submission-filter{max-width:420px;margin-bottom:20px}.submission-filter label{margin:0}
.submission-list{display:grid;gap:14px}.submission-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fbfcfe}
.submission-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.submission-head span{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.submission-answers{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.submission-answers>div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px}
.submission-answers span{display:block;color:var(--muted);font-size:12px}.submission-answers strong{display:block;margin-top:3px;font-size:14px;word-break:break-word}
@media(max-width:900px){.form-field-row{grid-template-columns:1fr}}

.pdf-current{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:13px;background:#f8f9fc;padding:13px;margin:12px 0}
.pdf-icon{width:52px;height:52px;border-radius:10px;background:#fee2e2;color:#b42318;display:grid;place-items:center;font-size:13px;font-weight:800}
.pdf-current-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.pdf-current-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-current-copy span{color:var(--muted);font-size:13px}
.pdf-current-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:700px){.pdf-current{grid-template-columns:1fr}.pdf-current-actions{flex-direction:column}}

.typebox[data-type="wifi"] .inline-check{margin-top:8px}

.type-picker-wrap{margin:0 0 22px}
.type-picker-title{font-weight:800;margin-bottom:10px}
.type-picker{display:flex;flex-wrap:wrap;gap:9px}
.type-pill{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 14px;border-radius:999px;font-weight:750;cursor:pointer}
.type-pill:hover{border-color:#aab6ce;background:#f8faff}
.type-pill.active{background:var(--blue);border-color:var(--blue);color:#fff}
.type-pill.disabled{opacity:.38;cursor:default}
.active-type-heading{margin:0 0 10px;color:var(--muted);font-size:14px}
.active-type-heading strong{color:var(--ink)}
.typebox{margin-top:18px}

.color-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:22px}
.color-grid label{margin:0}.color-grid input[type=color]{height:52px}

.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:14px;margin-top:20px}
.preset-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:13px;align-items:center;border:1px solid var(--line);border-radius:15px;padding:17px;text-decoration:none;background:#fff;transition:.15s ease}
.preset-card:hover{border-color:#b8c5df;box-shadow:0 8px 24px rgba(7,27,80,.08);transform:translateY(-1px)}
.preset-icon{width:44px;height:44px;border-radius:12px;background:#eef2ff;color:var(--blue);display:grid;place-items:center;font-size:12px;font-weight:900}
.preset-card strong{display:block;font-size:17px}.preset-card span{display:block;color:var(--muted);font-size:13px;margin-top:3px}.preset-card b{font-size:25px;color:#98a2b3}

.trash-list{display:grid;gap:12px}.trash-card{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--line);border-radius:14px;padding:16px;background:#fbfcfe}
.trash-card h3{margin:4px 0}.trash-card p{margin:0;color:var(--muted);font-size:13px}.trash-actions{display:flex;gap:8px;flex-wrap:wrap}
.trash-actions form{margin:0}
@media(max-width:700px){.trash-card{align-items:stretch;flex-direction:column}.trash-actions{flex-direction:column}.trash-actions .btn{width:100%}}

.dynamic-note{padding:10px 12px;border-radius:10px;background:#ecfdf3;color:#166534;border:1px solid #bbf7d0}
.static-note{padding:10px 12px;border-radius:10px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}


/* 2.4.1 – schönere Kategorien-Ansicht */
.panel-head-stack{align-items:flex-start;gap:12px;flex-wrap:wrap}
.reorder-note{background:#f7f9fd;border:1px solid var(--line);border-radius:999px;padding:8px 12px}

.category-overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;margin-top:20px}
.folder-card-wrap{min-width:0}
.folder-card-wrap.dragging{opacity:.45}

.category-folder-card{
  display:flex;
  flex-direction:column;
  gap:14px;
  height:100%;
  min-height:190px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%);
  text-decoration:none;
  transition:.15s ease;
  box-shadow:0 3px 10px rgba(7,27,80,.03);
}
.category-folder-card:hover{
  transform:translateY(-2px);
  border-color:#c7d3ea;
  box-shadow:0 12px 28px rgba(7,27,80,.08);
}
.category-folder-card-muted{
  background:linear-gradient(180deg,#fbfcff 0%,#f5f7fb 100%);
}
.category-folder-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.category-folder-icon{
  width:52px;
  height:52px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:#eef2ff;
  color:var(--blue);
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
}
.category-folder-icon-muted{
  background:#eef2f7;
  color:#667085;
}
.category-folder-drag{
  color:#98a2b3;
  font-size:22px;
  letter-spacing:-3px;
  cursor:grab;
  user-select:none;
}
.category-folder-body{
  display:flex;
  flex-direction:column;
  gap:5px;
}
.category-folder-body strong{
  font-size:24px;
  line-height:1.2;
  color:var(--ink);
  word-break:break-word;
}
.category-folder-body span{
  color:var(--muted);
  font-size:14px;
}
.category-folder-footer{
  margin-top:auto;
  display:flex;
  justify-content:flex-start;
}
.category-open-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 14px;
  border-radius:999px;
  background:#f1f5ff;
  color:var(--blue);
  font-size:14px;
  font-weight:800;
  border:1px solid #d7e1ff;
}
.category-order-save{margin-top:16px;text-align:right}
@media(max-width:700px){
  .category-overview-grid{grid-template-columns:1fr}
  .category-folder-card{min-height:auto}
}


/* 2.4.2 – saubere Kategorienkarten */
.category-panel{padding:30px}
.category-panel-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:24px;
}
.category-panel-header h2{
  margin:0 0 7px;
  font-size:30px;
  line-height:1.15;
}
.category-panel-header p{
  margin:0;
  color:var(--muted);
  font-size:16px;
}
.category-sort-hint{
  flex:0 0 auto;
  padding:8px 12px;
  border-radius:999px;
  background:#f5f7fb;
  border:1px solid var(--line);
  color:var(--muted);
  font-size:13px;
}

.clean-category-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(285px,1fr));
  gap:18px;
}
.clean-category-wrap{
  min-width:0;
}
.clean-category-wrap.dragging{
  opacity:.42;
}
.clean-category-card{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:170px;
  padding:22px;
  border:1px solid #dbe3f0;
  border-radius:18px;
  background:#fff;
  color:var(--ink);
  text-decoration:none !important;
  box-shadow:0 4px 14px rgba(17,32,51,.035);
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
.clean-category-card:hover{
  transform:translateY(-2px);
  border-color:#bfcde3;
  box-shadow:0 14px 32px rgba(17,32,51,.08);
}
.clean-category-card *{
  text-decoration:none !important;
}
.clean-category-card-muted{
  background:#f8fafc;
}

.clean-category-main{
  display:flex;
  align-items:center;
  gap:16px;
}
.clean-folder-mark{
  position:relative;
  flex:0 0 auto;
  width:58px;
  height:46px;
  border-radius:10px;
  background:#eaf0ff;
  border:1px solid #d5e0ff;
}
.clean-folder-mark::before{
  content:"";
  position:absolute;
  left:7px;
  top:-9px;
  width:26px;
  height:12px;
  border-radius:7px 7px 0 0;
  background:#dce6ff;
  border:1px solid #d5e0ff;
  border-bottom:0;
}
.clean-folder-mark-muted{
  background:#eef1f5;
  border-color:#dde2e9;
}
.clean-folder-mark-muted::before{
  background:#e6eaf0;
  border-color:#dde2e9;
}

.clean-category-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.clean-category-copy strong{
  display:block;
  font-size:22px;
  line-height:1.2;
  color:var(--ink);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.clean-category-copy span{
  color:var(--muted);
  font-size:14px;
}

.clean-category-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:24px;
  padding-top:15px;
  border-top:1px solid #edf1f6;
}
.clean-open{
  color:var(--blue);
  font-size:14px;
  font-weight:800;
}
.clean-drag{
  color:#98a2b3;
  font-size:12px;
  cursor:grab;
}
.category-order-save{
  margin-top:20px;
  text-align:right;
}

@media(max-width:760px){
  .category-panel{padding:20px}
  .category-panel-header{flex-direction:column}
  .clean-category-grid{grid-template-columns:1fr}
  .clean-category-copy strong{white-space:normal}
}


/* 2.4.3 – schönere Kategorienverwaltung */
.category-admin-panel{padding:30px}
.category-create-box{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,520px);
  gap:28px;
  align-items:end;
  padding:22px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#f8faff;
  margin-bottom:30px;
}
.category-create-box h2{margin:0 0 5px}
.category-create-box p{margin:0;color:var(--muted)}
.category-create-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
}
.category-create-form input{margin:0}

.category-admin-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:16px;
}
.category-admin-header h2{margin:0}
.category-admin-header p{margin:3px 0 0;color:var(--muted)}

.category-admin-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(330px,1fr));
  gap:18px;
}
.category-admin-card{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:20px;
  box-shadow:0 4px 14px rgba(17,32,51,.035);
}
.category-admin-card-top{
  display:flex;
  align-items:center;
  gap:15px;
  margin-bottom:16px;
}
.category-admin-card-title{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.category-admin-card-title strong{
  font-size:21px;
  line-height:1.2;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.category-admin-card-title span{
  color:var(--muted);
  font-size:14px;
}

.category-admin-rename{
  padding:14px;
  background:#f8f9fc;
  border:1px solid #e7ebf2;
  border-radius:13px;
}
.category-admin-rename label{margin:0}
.category-admin-rename input{margin-bottom:10px}
.category-admin-rename .btn{width:100%}

.category-admin-card-bottom{
  display:flex;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-top:15px;
  padding-top:15px;
  border-top:1px solid #edf1f6;
}
.category-admin-card-bottom form{margin:0}

@media(max-width:800px){
  .category-create-box{grid-template-columns:1fr}
  .category-create-form{grid-template-columns:1fr}
  .category-admin-grid{grid-template-columns:1fr}
  .category-admin-card-bottom{flex-direction:column}
  .category-admin-card-bottom .btn{width:100%}
}


/* 2.4.4 – kompakte, ruhige QR-Projektkarten */
.project-card-clean{
  display:flex;
  flex-direction:column;
  gap:16px;
  padding:18px;
  border:1px solid #dce4f0;
  border-radius:18px;
  background:#fff;
  box-shadow:0 4px 14px rgba(17,32,51,.035);
}
.project-card-clean:hover{
  border-color:#c3d0e5;
  box-shadow:0 12px 28px rgba(17,32,51,.07);
}
.project-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.project-select-clean{
  margin:0;
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-size:13px;
  font-weight:650;
}
.project-select-clean input{
  width:auto;
  margin:0;
}
.project-status{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.type-chip{
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  border-radius:999px;
  background:#eef2ff;
  color:var(--blue);
  font-size:11px;
  font-weight:850;
}
.project-card-main{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:16px;
  align-items:center;
}
.project-qr-side{
  display:flex;
  align-items:center;
  justify-content:center;
}
.project-card-clean .mini-qr{
  margin:0;
  width:110px;
  min-height:110px;
}
.project-info-side{
  min-width:0;
}
.project-info-side h3{
  margin:0 0 7px;
  font-size:22px;
  line-height:1.2;
}
.project-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:10px;
}
.project-meta span{
  display:inline-flex;
  padding:5px 9px;
  border-radius:999px;
  background:#f5f7fb;
  color:var(--muted);
  font-size:12px;
}
.project-url{
  color:var(--muted);
  font-size:12px;
  word-break:break-all;
  line-height:1.35;
}
.project-primary-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.project-more{
  border-top:1px solid #edf1f6;
  padding-top:12px;
}
.project-more summary{
  cursor:pointer;
  color:var(--blue);
  font-weight:750;
  font-size:14px;
  list-style:none;
}
.project-more summary::-webkit-details-marker{display:none}
.project-more summary::after{
  content:" +";
  color:#98a2b3;
}
.project-more[open] summary::after{
  content:" –";
}
.project-more-content{
  display:grid;
  gap:14px;
  margin-top:14px;
}
.project-category-move{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:9px;
  align-items:end;
  padding:12px;
  border-radius:12px;
  background:#f8f9fc;
  border:1px solid #e7ebf2;
}
.project-category-move label{
  margin:0;
}
.project-category-move select{
  margin-top:6px;
}
.project-secondary-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
@media(max-width:620px){
  .project-card-main{grid-template-columns:1fr}
  .project-qr-side{justify-content:flex-start}
  .project-primary-actions,
  .project-secondary-actions{flex-direction:column}
  .project-primary-actions .btn,
  .project-secondary-actions .btn{width:100%}
  .project-category-move{grid-template-columns:1fr}
}


/* 2.4.5 – Bedienung */
.bulk-category-bar-clean{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:13px 15px;
}
.bulk-left,.bulk-right{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.selected-counter{
  display:inline-flex;
  align-items:center;
  padding:6px 9px;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--line);
  color:var(--muted);
  font-size:12px;
  font-weight:750;
}
.bulk-category-bar-clean select{
  min-width:220px;
}
.bulk-category-bar-clean .btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}
@media(max-width:760px){
  .bulk-category-bar-clean,
  .bulk-left,
  .bulk-right{
    align-items:stretch;
    flex-direction:column;
  }
  .bulk-category-bar-clean select,
  .bulk-category-bar-clean .btn{
    width:100%;
  }
}


/* 2.4.6 – Kategorie-Kontext im Arbeitsablauf */
.category-toolbar-actions{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
}
.context-banner{
  margin-bottom:18px;
  padding:12px 15px;
  border:1px solid #d7e1ff;
  border-radius:12px;
  background:#f5f8ff;
  color:#42526b;
  font-size:14px;
}
.context-banner strong{color:var(--ink)}
@media(max-width:700px){
  .category-toolbar-actions{
    width:100%;
    flex-direction:column;
  }
  .category-toolbar-actions .btn{width:100%}
}


/* 2.4.7 – Mehrfachaktionen innerhalb einer Kategorie */
.bulk-category-bar-clean{
  position:sticky;
  top:12px;
  z-index:20;
  box-shadow:0 8px 24px rgba(17,32,51,.07);
}
.bulk-category-bar-clean .bulk-right{
  justify-content:flex-end;
}
.bulk-category-bar-clean .btn.danger:disabled{
  opacity:.4;
  cursor:not-allowed;
}
.project-card-clean .project-select-clean{
  cursor:pointer;
}
@media(max-width:760px){
  .bulk-category-bar-clean{
    position:static;
    box-shadow:none;
  }
}


/* 2.5.0 – Gesamtstatistik */
.stats-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.analytics-chart{min-height:235px}
.analytics-top-list{display:grid;gap:10px}
.analytics-top-card{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 90px 90px auto;
  gap:14px;
  align-items:center;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.analytics-rank{
  width:36px;height:36px;border-radius:10px;
  display:grid;place-items:center;
  background:#eef2ff;color:var(--blue);
  font-weight:900;
}
.analytics-top-copy{min-width:0}
.analytics-top-copy strong{display:block;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.analytics-top-copy span{display:block;margin-top:3px;color:var(--muted);font-size:12px}
.analytics-numbers{text-align:right}
.analytics-numbers strong{display:block;font-size:18px}
.analytics-numbers span{display:block;color:var(--muted);font-size:11px}
.analytics-recent{display:grid}
.analytics-recent-row{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:12px 4px;border-bottom:1px solid #edf1f6;text-decoration:none;color:var(--ink)
}
.analytics-recent-row:last-child{border-bottom:0}
.analytics-recent-row strong{display:block}
.analytics-recent-row span{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.analytics-recent-row time{white-space:nowrap;color:var(--muted);font-size:13px}
@media(max-width:900px){
  .stats-5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .analytics-top-card{grid-template-columns:42px minmax(0,1fr) 70px auto}
  .analytics-top-card .analytics-numbers:nth-of-type(2){display:none}
}
@media(max-width:620px){
  .stats-5{grid-template-columns:1fr}
  .analytics-top-card{grid-template-columns:42px minmax(0,1fr)}
  .analytics-top-card .analytics-numbers,.analytics-top-card .btn{grid-column:2}
  .analytics-top-card .analytics-numbers{text-align:left}
  .analytics-recent-row{align-items:flex-start;flex-direction:column}
}


/* 2.5.1 – Formular-Komfort */
.submission-transfer-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 14px;
  margin:16px 0;
  border:1px solid var(--line);
  border-radius:13px;
  background:#f8f9fc;
}
.submission-transfer-left,.submission-transfer-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.submission-transfer-left>span{
  color:var(--muted);
  font-size:13px;
}
.submission-title-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
}
.submission-check-label{
  margin:0;
  padding-top:2px;
}
.submission-check-label input{
  width:auto;
  margin:0;
}
.copy-submission{
  flex:0 0 auto;
}
@media(max-width:700px){
  .submission-transfer-bar{
    align-items:stretch;
    flex-direction:column;
  }
  .submission-transfer-actions .btn{
    width:100%;
  }
  .submission-head{
    align-items:flex-start;
    flex-direction:column;
  }
}

.vcard-only-layout{display:grid!important;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start}
.vcard-editor-column{min-width:0}
.vcard-media-box{padding:16px;border:1px solid var(--line);border-radius:14px;background:#f8f9fc;margin-bottom:18px}
.current-header-image{display:grid;gap:8px;margin:8px 0 15px}
.current-header-image img{display:block;width:100%;max-height:170px;object-fit:cover;border-radius:10px}
.vcard-existing-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px;margin-top:12px}
.vcard-existing-thumb{margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.vcard-existing-thumb img{display:block;width:100%;height:78px;object-fit:cover}
.vcard-existing-thumb span{display:flex;align-items:center;gap:5px;padding:6px;font-size:11px}
.vcard-existing-thumb input{width:auto;margin:0}
.vcard-phone-preview-wrap{position:sticky;top:18px}
.vcard-phone-label{font-weight:850;margin-bottom:10px}
.vcard-phone{width:330px;height:660px;padding:11px;border-radius:38px;background:#111827;box-shadow:0 18px 42px rgba(17,24,39,.22)}
.vcard-phone iframe{width:100%;height:100%;border:0;border-radius:28px;background:#fff}
@media(max-width:1050px){.vcard-only-layout{grid-template-columns:1fr}.vcard-phone-preview-wrap{position:static}.vcard-phone{width:min(100%,360px);margin:auto}}

/* 2.7.0 – Text-/Gestaltungsleiste nur für digitale Visitenkarte */
.vcard-text-toolbar{
  position:sticky;top:10px;z-index:25;
  margin:0 0 18px;padding:14px;
  border:1px solid var(--line);border-radius:15px;
  background:rgba(255,255,255,.97);
  box-shadow:0 10px 28px rgba(17,32,51,.08);
  backdrop-filter:blur(10px);
}
.toolbar-topline{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:12px}
.toolbar-heading{display:flex;flex-direction:column;gap:4px}
.autosave-state{color:var(--muted);font-size:12px;font-weight:650}
.toolbar-target{min-width:245px;margin:0}
.toolbar-controls{display:grid;grid-template-columns:minmax(230px,1.6fr) minmax(150px,1fr) 86px 90px auto;gap:10px;align-items:end}
.toolbar-controls label{margin:0}
.toolbar-controls input,.toolbar-controls select{margin-top:5px}
.toolbar-buttons{display:flex;align-items:center;gap:6px;padding-bottom:1px}
.format-btn{min-width:38px;height:38px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);cursor:pointer;font:700 15px system-ui}
.format-btn:hover,.format-btn.active{background:#eef2ff;border-color:#c9d5ff;color:var(--blue)}
.vc-card-section{margin:22px 0}
.vc-section-subtitle{margin:0 0 14px;line-height:1.35}
@media(max-width:1100px){
  .toolbar-controls{grid-template-columns:1fr 1fr 88px 90px}
  .toolbar-buttons{grid-column:1/-1}
}
@media(max-width:700px){
  .vcard-text-toolbar{position:static}
  .toolbar-topline{align-items:stretch;flex-direction:column}
  .toolbar-target{min-width:0}
  .toolbar-controls{grid-template-columns:1fr 1fr}
  .toolbar-text{grid-column:1/-1}
}


/* 2.7.1 – Layoutfix: Textwerkzeuge bleiben vollständig links */
.vcard-only-layout{
  grid-template-columns:minmax(0,1fr) 360px;
  column-gap:28px;
}

.vcard-editor-column{
  min-width:0;
  overflow:hidden;
}

.vcard-text-toolbar{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  overflow:hidden;
}

.toolbar-controls{
  grid-template-columns:minmax(180px,1.45fr) minmax(130px,.9fr) 82px 86px;
  align-items:end;
}

.toolbar-buttons{
  grid-column:1 / -1;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding-top:2px;
  padding-bottom:0;
  max-width:100%;
}

.format-btn{
  flex:0 0 38px;
}

.toolbar-controls input,
.toolbar-controls select{
  max-width:100%;
  box-sizing:border-box;
}

.vcard-phone-preview-wrap{
  min-width:0;
  width:360px;
}

.vcard-phone{
  width:330px;
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
}

@media(max-width:1200px){
  .vcard-only-layout{
    grid-template-columns:minmax(0,1fr) 340px;
  }

  .vcard-phone-preview-wrap{
    width:340px;
  }

  .vcard-phone{
    width:312px;
  }

  .toolbar-controls{
    grid-template-columns:minmax(170px,1.3fr) minmax(120px,.8fr) 78px 82px;
  }
}

@media(max-width:1050px){
  .vcard-only-layout{
    grid-template-columns:1fr;
  }

  .vcard-phone-preview-wrap{
    width:100%;
  }

  .vcard-phone{
    width:min(100%,360px);
    margin:0 auto;
  }
}

@media(max-width:700px){
  .toolbar-controls{
    grid-template-columns:1fr 1fr;
  }

  .toolbar-text{
    grid-column:1 / -1;
  }

  .toolbar-buttons{
    grid-column:1 / -1;
  }
}


/* 2.7.4 – Profil-Kreis-Steuerung bei Visitenkarte */
.current-logo{display:grid;gap:8px;margin:8px 0 15px}
.current-logo img{display:block;width:120px;height:120px;object-fit:cover;border-radius:50%;border:3px solid #fff;box-shadow:0 8px 18px rgba(17,24,39,.12)}

/* 2.8.0 – Baukasten wie ein Landingpage-Editor */
.vcard-editor-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}.vcard-editor-head h2{margin-bottom:4px}.vcard-block-list{display:grid;gap:16px}.vcard-builder-block{border:1px solid #dfe4ef;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 4px 12px rgba(17,24,39,.035)}.vcard-builder-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:15px 16px;background:#eef0ff}.drag-dots{font-size:24px;color:#7b86a2;line-height:1}.block-actions{display:flex;align-items:center;gap:7px}.block-move{width:34px;height:34px;border:1px solid #d7ddeb;border-radius:50%;background:#fff;cursor:pointer;font-weight:800}.block-toggle{margin:0;display:inline-flex}.block-toggle input{position:absolute;opacity:0;pointer-events:none}.block-toggle span{display:block;width:44px;height:25px;border-radius:99px;background:#c7ccd6;position:relative;transition:.18s}.block-toggle span:after{content:"";position:absolute;width:19px;height:19px;left:3px;top:3px;border-radius:50%;background:#fff;transition:.18s;box-shadow:0 1px 4px rgba(0,0,0,.18)}.block-toggle input:checked+span{background:#4d73f5}.block-toggle input:checked+span:after{transform:translateX(19px)}.vcard-builder-body{padding:16px 18px}.vcard-link-row{display:grid;grid-template-columns:.8fr 1fr 1.35fr;gap:10px;padding:12px;margin:10px 0;border-radius:12px;background:#f3f5fb}.portfolio-view-options{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.portfolio-view-options label{margin:0;padding:10px 14px;border:1px solid #d9dfeb;border-radius:10px;background:#fff}.portfolio-view-options input{width:auto;margin:0 7px 0 0}.vcard-phone-preview-wrap{top:12px}@media(max-width:900px){.vcard-link-row{grid-template-columns:1fr}.vcard-editor-head{flex-direction:column}}


/* 2.8.2 – Drag-Handle verschiebt immer den kompletten Block */
.drag-dots{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:36px;min-height:36px;margin:-6px 0;
  border-radius:9px;cursor:grab!important;user-select:none;-webkit-user-select:none;
}
.drag-dots:hover,.drag-dots:focus-visible{background:#dfe5ff;color:#315be8;outline:none}
.drag-dots:active,body.vcard-is-dragging .drag-dots{cursor:grabbing!important}
.vcard-builder-block.vcard-block-dragging{opacity:.48}
.vcard-builder-block.vcard-drag-before{box-shadow:0 -5px 0 #4d73f5,0 4px 12px rgba(17,24,39,.04)}
.vcard-builder-block.vcard-drag-after{box-shadow:0 5px 0 #4d73f5,0 4px 12px rgba(17,24,39,.04)}

.vcard-dynamic-list{display:grid;gap:10px;margin:10px 0 14px}
.vcard-dynamic-row{display:grid;grid-template-columns:34px minmax(120px,.8fr) minmax(150px,1fr) minmax(190px,1.4fr) 42px;gap:8px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f3f5fb}
.vcard-link-dynamic{grid-template-columns:34px minmax(140px,1fr) minmax(160px,1fr) minmax(220px,1.5fr) 42px}
.vcard-dynamic-row input,.vcard-dynamic-row select{margin:0}.row-drag{display:grid;place-items:center;width:34px;height:38px;border-radius:8px;cursor:grab;color:#76829b;font-size:20px;user-select:none}.row-drag:hover{background:#e2e7f5;color:#315be8}.row-delete{width:38px;height:38px;border:1px solid #f4c7cd;border-radius:999px;background:#fff;color:#e63946;cursor:pointer}.row-dragging{opacity:.5}
@media(max-width:900px){.vcard-dynamic-row,.vcard-link-dynamic{grid-template-columns:34px 1fr 42px}.vcard-dynamic-row input,.vcard-dynamic-row select{grid-column:2}.vcard-dynamic-row .row-delete{grid-column:3;grid-row:1}}

.vcard-phone-label-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.vcard-phone-label-row .vcard-phone-label{margin:0}.vcard-preview-mode{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:10px;background:#fff}.preview-mode-btn{border:0;border-radius:7px;padding:7px 10px;background:transparent;color:var(--muted);font-weight:750;cursor:pointer}.preview-mode-btn.active{background:#4d73f5;color:#fff}.vcard-preview-status{margin:0 0 8px;font-size:12px;color:var(--muted);text-align:left}.vcard-back-edit{width:100%;margin-top:10px}@media(max-width:1200px){.vcard-phone-label-row{align-items:flex-start;flex-direction:column}}

/* 2.8.10 – Social-Link-Zeilen kompakt und vollständig sichtbar */
.vcard-social-dynamic{
  grid-template-columns:34px minmax(135px,.85fr) minmax(170px,1.15fr) 42px;
  grid-template-rows:auto auto;
}
.vcard-social-dynamic .row-drag{grid-column:1;grid-row:1 / span 2}
.vcard-social-dynamic select[name="vc_social_type[]"]{grid-column:2;grid-row:1}
.vcard-social-dynamic input[name="vc_social_item_title[]"]{grid-column:3;grid-row:1}
.vcard-social-dynamic input[name="vc_social_item_subtitle[]"]{grid-column:2;grid-row:2}
.vcard-social-dynamic input[name="vc_social_item_url[]"]{grid-column:3;grid-row:2}
.vcard-social-dynamic .row-delete{grid-column:4;grid-row:1 / span 2;align-self:center}
@media(max-width:900px){
  .vcard-social-dynamic{grid-template-columns:34px 1fr 42px;grid-template-rows:auto}
  .vcard-social-dynamic .row-drag{grid-column:1;grid-row:1}
  .vcard-social-dynamic select[name="vc_social_type[]"],
  .vcard-social-dynamic input[name="vc_social_item_title[]"],
  .vcard-social-dynamic input[name="vc_social_item_subtitle[]"],
  .vcard-social-dynamic input[name="vc_social_item_url[]"]{grid-column:2;grid-row:auto}
  .vcard-social-dynamic .row-delete{grid-column:3;grid-row:1;align-self:center}
}

/* 2.9.0 – echter Komponenten-Baukasten */
.vcard-add-block-wrap{margin:18px 0 8px;text-align:center}.vcard-add-block-main{min-width:220px;font-size:16px;font-weight:800}.vcard-block-picker{margin-top:14px;border:1px solid #d9dfeb;border-radius:16px;background:#fff;box-shadow:0 12px 35px rgba(17,24,39,.12);padding:18px}.vcard-block-picker[hidden]{display:none!important}.vcard-block-picker-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.vcard-block-picker-head strong{font-size:20px}.vcard-block-picker-head p{margin:4px 0 0;color:#667085}.vcard-block-picker-head button{border:0;background:#f0f2f8;border-radius:50%;width:34px;height:34px;font-size:24px;cursor:pointer}.vcard-block-picker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.vcard-block-picker-grid button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:94px;border:1px solid #e0e5ef;border-radius:14px;background:#f8f9fd;padding:14px;text-align:left;cursor:pointer;transition:.16s}.vcard-block-picker-grid button:hover{border-color:#4d73f5;box-shadow:0 6px 16px rgba(77,115,245,.12);transform:translateY(-1px)}.vcard-block-picker-grid button span{font-size:24px}.vcard-block-picker-grid button strong{font-size:13px}.block-delete,.block-duplicate{width:34px;height:34px;border:1px solid #d7ddeb;border-radius:50%;background:#fff;cursor:pointer}.block-delete:hover{background:#fff0f0;border-color:#f3b1b1}.block-duplicate:hover{background:#eef3ff;border-color:#a8b9f9}.vcard-custom-editor .vcard-builder-header{background:#f2f4ff}.vcard-block-flash{animation:vcardFlash .9s ease}@keyframes vcardFlash{0%,100%{box-shadow:0 4px 12px rgba(17,24,39,.035)}50%{box-shadow:0 0 0 4px rgba(77,115,245,.22),0 10px 24px rgba(77,115,245,.14)}}@media(max-width:900px){.vcard-block-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.vcard-block-picker-grid{grid-template-columns:1fr}}

/* 2.9.1 – vollständige Blockbibliothek */
.vcard-add-block-top{margin:0 0 14px}.vcard-add-block-top .btn{width:100%;display:flex;justify-content:center;gap:8px;align-items:center}.vcard-add-block-top small{font-size:11px;opacity:.75}.vcard-block-picker-count{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 12px;padding:10px 12px;background:#f4f6fb;border-radius:10px;color:#5f6b7a}.vcard-block-picker-count strong{color:#1f2937}.vcard-block-picker-grid{max-height:520px;overflow:auto;padding-right:4px}

/* 2.9.2 – echte 8-Komponenten-Visitenkarte */
.vcard-connect-dynamic,.vc-two-value{grid-template-columns:34px minmax(150px,.8fr) minmax(220px,1.5fr) 42px}
.vcard-link-dynamic{grid-template-columns:34px minmax(150px,1fr) minmax(140px,1fr) minmax(150px,1fr) minmax(220px,1.4fr) 42px}
.vcard-form-field-row{display:grid;grid-template-columns:34px minmax(145px,.8fr) minmax(150px,1fr) minmax(180px,1.2fr) auto 42px;gap:8px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f3f5fb;margin:8px 0}
.vcard-form-field-row input,.vcard-form-field-row select{margin:0}.compact-check{display:flex!important;align-items:center;gap:6px;margin:0!important;white-space:nowrap}.compact-check input{width:auto!important}.vc-address-card{border:1px solid #dfe4ef;border-radius:12px;padding:12px;margin:10px 0;background:#f8f9fd}.vcard-builder-body h4{margin:18px 0 8px}.vcard-builder-body small{font-weight:500;color:#7b8498}
@media(max-width:1100px){.vcard-link-dynamic,.vcard-form-field-row{grid-template-columns:34px 1fr 42px}.vcard-link-dynamic>input,.vcard-form-field-row>input,.vcard-form-field-row>select,.vcard-form-field-row>.compact-check{grid-column:2}.vcard-link-dynamic>.row-delete,.vcard-form-field-row>.row-delete{grid-column:3;grid-row:1}}
