/* Constructor AI Community – Design wie constructorai.eu (Farben, Schrift, Buttons, Abstände). 19.10.2026 */
:root {
  --ink:#10262c; --ink-2:#3f5459; --muted:#6c7f84; --page:#f1f7f8; --surface:#ffffff; --soft-2:#e6f2f3; --line:rgba(16,38,44,.10);
  --brand:#19a5af; --brand-strong:#0f7f88; --brand-soft:#dff3f4; --dark:#0d2227; --dark-2:#12343b; --dark-3:#16444c;
  --light-on-dark:#e9f6f7; --muted-on-dark:#a9c4c8; --warn:#8a5300; --warn-soft:#fff4dd; --error:#a3261f; --error-soft:#fdecea;
  --radius:16px; --shadow:0 1px 2px rgba(16,38,44,.05), 0 10px 28px rgba(16,38,44,.07); --wrap:1120px;
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--page); color:var(--ink); font:16.5px/1.6 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; overflow-wrap:break-word; }
img { max-width:100%; height:auto; display:block; }
a { color:var(--brand-strong); }
h1, h2, h3 { line-height:1.25; letter-spacing:-.01em; }
h1 { font-size:clamp(26px, 4vw, 36px); margin:0 0 8px; }
.wrap { max-width:var(--wrap); margin:0 auto; padding:0 clamp(16px, 4vw, 28px); }
.skip { position:absolute; left:-9999px; } .skip:focus { left:12px; top:12px; z-index:100; background:#fff; padding:8px 12px; border-radius:8px; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
:focus-visible { outline:3px solid #7fd8de; outline-offset:2px; }

/* Kopf */
.site-header { position:sticky; top:0; z-index:50; background:var(--dark); color:#fff; border-bottom:1px solid rgba(255,255,255,.08); }
.header-inner { display:flex; align-items:center; gap:16px; min-height:64px; flex-wrap:wrap; }
.brand { display:flex; align-items:center; gap:10px; color:#fff; text-decoration:none; font-weight:700; font-size:18px; white-space:nowrap; }
.brand img { width:36px; height:36px; border-radius:10px; background:#fff; }
.brand b { color:var(--brand); }
.brand-sub { color:var(--muted-on-dark); font-weight:500; }
.site-nav { margin-left:auto; display:flex; align-items:center; gap:2px; flex-wrap:wrap; }
.site-nav a, .nav-button { color:var(--light-on-dark); text-decoration:none; padding:8px 9px; border-radius:10px; font-size:15px; font-weight:600; background:none; border:0; cursor:pointer; font-family:inherit; }
.site-nav a:hover, .nav-button:hover, .site-nav a[aria-current="page"] { background:rgba(255,255,255,.09); }
.site-nav .nav-cta { background:var(--brand); color:#05282c; }
.site-nav .nav-cta:hover { background:#3cc4cd; }
.nav-user { color:var(--muted-on-dark); font-size:14px; padding:0 6px; }
.menu-check, .menu-toggle { display:none; }
.inline { display:inline; margin:0; }
.testbar { background:var(--warn-soft); color:var(--warn); text-align:center; font-size:14px; font-weight:600; padding:6px 12px; }

/* Grundbausteine */
.main { padding-top:28px; padding-bottom:56px; min-height:60vh; }
.kicker { text-transform:uppercase; letter-spacing:.11em; font-size:13px; font-weight:800; color:var(--brand-strong); margin:0 0 8px; }
.lead { color:var(--ink-2); font-size:17.5px; margin:0 0 12px; max-width:760px; }
.muted { color:var(--muted); font-size:14px; }
.hint { color:var(--muted); font-size:13.5px; margin:-4px 0 4px; }
.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:10px 20px; border-radius:12px; border:0;
       background:var(--brand); color:#05282c; font:inherit; font-weight:700; font-size:15.5px; text-decoration:none; cursor:pointer; }
.btn:hover { background:#3cc4cd; }
.btn-ghost { background:var(--surface); color:var(--ink); box-shadow:inset 0 0 0 1.5px var(--line); } .btn-ghost:hover { background:var(--brand-soft); }
.btn-small { min-height:36px; padding:6px 12px; font-size:14px; border-radius:10px; }
.link-button { background:none; border:0; padding:0; color:var(--brand-strong); font:inherit; font-size:14px; cursor:pointer; text-decoration:underline; }
.pill { display:inline-block; padding:2px 10px; border-radius:999px; background:var(--soft-2); color:var(--ink-2); font-size:12.5px; font-weight:700; vertical-align:middle; }
.notice { background:var(--brand-soft); border:1px solid rgba(15,127,136,.25); color:var(--ink); border-radius:12px; padding:12px 16px; margin:0 0 18px; }
.notice-error { background:var(--error-soft); border-color:rgba(163,38,31,.25); color:var(--error); }
.empty { color:var(--muted); padding:18px 0; }
.crumbs { font-size:14px; color:var(--muted); margin:0 0 8px; } .crumbs a { color:var(--muted); }

/* Startseite */
.intro { background:linear-gradient(135deg, var(--dark), var(--dark-3)); color:#fff; border-radius:22px; padding:clamp(22px, 4vw, 36px); display:grid; gap:18px;
         grid-template-columns:minmax(0, 1.4fr) minmax(0, 1fr); align-items:center; }
.intro .kicker { color:#8fe3e9; } .intro h1 { color:#fff; } .intro .lead { color:var(--light-on-dark); margin:0; }
.intro-actions { display:grid; gap:10px; }
.stats-line { grid-column:1 / -1; margin:0; color:var(--muted-on-dark); font-size:14px; }
.search-inline { display:flex; gap:8px; }
.search-inline input { flex:1; min-width:0; }
.section { margin-top:36px; }
.section-head { display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; }
.section-title { font-size:21px; margin:0 0 14px; }
.category-grid { display:grid; gap:12px; grid-template-columns:repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.category { display:grid; grid-template-columns:auto 1fr; gap:4px 14px; padding:16px 18px; text-decoration:none; color:var(--ink);
            background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); transition:border-color .15s; }
.category:hover { border-color:var(--brand); }
.category-icon { grid-row:span 2; width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:var(--brand-soft); color:var(--brand-strong); font-size:20px; }
.category-text { display:grid; } .category-text small { color:var(--ink-2); font-size:14px; }
.category-meta { color:var(--muted); font-size:13px; }
.topic-list { display:grid; gap:8px; }
.topic { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:14px 16px; text-decoration:none; color:var(--ink);
         background:var(--surface); border:1px solid var(--line); border-radius:14px; }
.topic:hover { border-color:var(--brand); }
.topic-main { display:grid; min-width:0; } .topic-main strong { overflow-wrap:anywhere; } .topic-main small { color:var(--muted); font-size:13.5px; }
.topic-meta { display:flex; align-items:center; gap:8px; flex:none; }
.count { min-width:36px; text-align:center; padding:3px 9px; border-radius:999px; background:var(--soft-2); font-weight:700; font-size:13.5px; color:var(--ink-2); }
.partners .partner-grid { display:grid; gap:12px; grid-template-columns:repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.partner { display:block; border-radius:14px; overflow:hidden; box-shadow:var(--shadow); line-height:0; }
.ad-label { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin-right:6px; }

/* Seitenkopf, Formulare */
.page-head { margin-bottom:22px; }
.head-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:12px; }
.head-actions .search-inline { flex:1 1 320px; }
input, select, textarea { width:100%; font:inherit; color:var(--ink); background:#fff; border:1.5px solid rgba(16,38,44,.18); border-radius:12px; padding:11px 13px; }
input:focus, select:focus, textarea:focus { border-color:var(--brand); outline:none; box-shadow:0 0 0 3px rgba(25,165,175,.18); }
textarea { resize:vertical; min-height:140px; }
label { display:grid; gap:6px; font-weight:600; font-size:15px; }
label.check { display:flex; gap:10px; align-items:flex-start; font-weight:500; } label.check input { width:auto; margin-top:4px; }
.form-layout { display:grid; gap:24px; grid-template-columns:minmax(0, 1fr) minmax(0, 440px); align-items:start; }
.form-card { display:grid; gap:14px; padding:clamp(18px, 3vw, 26px); }
.form-card.wide { max-width:820px; } .form-card h2 { margin:0; font-size:20px; }
.form-links { margin:0; font-size:14px; color:var(--muted); }
.uploads { border:1.5px dashed rgba(16,38,44,.2); border-radius:14px; padding:12px 14px; margin:0; }
.uploads legend { font-weight:700; padding:0 6px; }
.upload-grid { display:grid; gap:10px; grid-template-columns:repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.upload-grid input[type=file] { padding:8px; font-size:14px; }
.pager { display:flex; gap:12px; align-items:center; justify-content:center; margin-top:18px; color:var(--muted); font-size:14px; }

/* Beiträge */
.post { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; margin-bottom:12px; }
.post-first { border-top:4px solid var(--brand); box-shadow:var(--shadow); }
.post-head { display:flex; gap:12px; align-items:center; margin-bottom:10px; }
.post-head span:last-child { display:grid; } .post-head small { color:var(--muted); font-size:13px; }
.avatar { width:38px; height:38px; flex:none; border-radius:50%; display:grid; place-items:center; background:var(--dark-2); color:#8fe3e9; font-weight:800; }
.post-body { font-size:16.5px; }
.post-actions { display:flex; gap:16px; flex-wrap:wrap; align-items:center; margin-top:14px; padding-top:10px; border-top:1px solid var(--line); font-size:14px; }
.post-actions form { margin:0; }
.replies-title { margin-top:28px; }
.attachments { display:grid; gap:12px; margin-top:14px; }
.gallery { display:grid; gap:10px; grid-template-columns:repeat(auto-fill, minmax(min(100%, 200px), 1fr)); }
.gallery figure { margin:0; } .gallery img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:12px; border:1px solid var(--line); background:var(--soft-2); }
.model { border:1px solid var(--line); border-radius:14px; overflow:hidden; background:var(--soft-2); }
.viewer { position:relative; height:clamp(240px, 42vw, 360px); background:#081b26; touch-action:none; }
.viewer canvas { width:100%; height:100%; display:block; touch-action:none; }
.annmi-viewer-msg { position:absolute; inset:0; display:grid; place-items:center; color:var(--muted); font-size:14px; }
.model-bar { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 12px; background:#fff; flex-wrap:wrap; }
.remove { margin:6px 0 0; padding:0 12px 8px; font-size:13px; } .gallery .remove { padding:0; }

/* Bibliothek */
.library { display:grid; gap:16px; grid-template-columns:repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.library-item { padding:0 0 16px; overflow:hidden; }
.library-item h2 { font-size:17px; margin:14px 16px 2px; overflow-wrap:anywhere; }
.library-item p { margin:4px 16px; font-size:14px; } .library-item .btn { margin:10px 16px 0; }

/* 3D-Shop */
.notice-warn { background:var(--warn-soft); border-color:rgba(138,83,0,.25); color:var(--warn); }
.shop-filter { display:grid; gap:12px; padding:14px 16px; grid-template-columns:minmax(0, 2fr) repeat(3, minmax(0, 1fr)) auto; align-items:end; margin-bottom:10px; }
.shop-count { margin:4px 0 12px; }
.shop-grid { display:grid; gap:16px; grid-template-columns:repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
.offer-card { display:grid; grid-template-rows:auto 1fr auto; text-decoration:none; color:var(--ink); overflow:hidden; transition:border-color .15s; }
.offer-card:hover { border-color:var(--brand); }
.offer-thumb { display:block; aspect-ratio:4/3; background:linear-gradient(135deg, var(--dark), var(--dark-3)); }
.offer-thumb img { width:100%; height:100%; object-fit:cover; }
.offer-card-body { display:grid; gap:2px; padding:12px 14px 4px; } .offer-card-body strong { overflow-wrap:anywhere; } .offer-card-body small { color:var(--muted); font-size:13.5px; }
.offer-card-price { padding:4px 14px 14px; font-weight:800; font-size:18px; color:var(--ink); } .offer-card-price.free { color:var(--brand-strong); }
.offer-layout { display:grid; gap:20px; grid-template-columns:minmax(0, 1.6fr) minmax(0, 1fr); align-items:start; }
.offer-media { display:grid; gap:14px; min-width:0; }
.offer-gallery { grid-template-columns:repeat(auto-fill, minmax(min(100%, 180px), 1fr)); }
.offer-text { padding:16px 20px; } .offer-text h2, .offer-side h2 { font-size:17px; margin:0 0 8px; }
.offer-side { display:grid; gap:14px; position:sticky; top:84px; }
.offer-side .card { padding:16px 18px; }
.offer-price { font-size:30px; font-weight:800; margin:0; }
.offer-buy { display:grid; gap:10px; border-top:4px solid var(--brand); } .offer-buy p { margin:0; }
.buy-form { display:grid; gap:10px; } .buy-form .hint { margin:0; }
.seller-note { background:var(--soft-2); border-left:4px solid var(--brand); border-radius:10px; padding:10px 12px; font-size:14px; color:var(--ink-2); }
.model-note { margin:0; padding:8px 12px; background:#fff; color:var(--muted); font-size:13px; border-top:1px solid var(--line); }
.offer-facts dl { display:grid; grid-template-columns:auto 1fr; gap:6px 14px; margin:0 0 10px; font-size:14.5px; }
.offer-facts dt { color:var(--muted); } .offer-facts dd { margin:0; overflow-wrap:anywhere; }
.offer-owner, .offer-mod { display:flex; flex-wrap:wrap; gap:8px; align-items:center; } .offer-owner h2, .offer-mod h2 { width:100%; }
.offer-mod form { display:grid; gap:10px; width:100%; }
.form-row { display:grid; gap:12px; grid-template-columns:repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }
details.optional { border:1.5px solid var(--line); border-radius:14px; padding:10px 14px; }
details.optional[open] { display:grid; gap:14px; } details.optional summary { cursor:pointer; font-weight:700; }
.rights { display:grid; gap:10px; }
.order-list { display:grid; gap:10px; }
.order { display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; padding:14px 16px; }
.order-actions { display:flex; gap:8px; flex-wrap:wrap; }
.download-row { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding:10px 0; border-bottom:1px solid var(--line); margin:0; }
.order-status h2 { font-size:18px; }
.seller-head { display:flex; gap:16px; align-items:center; } .seller-head .avatar { width:58px; height:58px; font-size:24px; } .seller-head h1 { margin:0; }
.cat-admin { display:grid; gap:10px; }
.cat-row { display:grid; gap:12px; grid-template-columns:minmax(0, 2fr) minmax(0, 1fr) auto auto auto; align-items:end; padding:12px 14px; margin:0; }
.shop-top { margin-top:12px; }

/* Statistik (Admin) */
.tiles { display:grid; gap:12px; grid-template-columns:repeat(auto-fit, minmax(min(100%, 170px), 1fr)); }
.tile { background:var(--surface); border:1px solid var(--line); border-top:3px solid var(--brand); border-radius:14px; padding:12px 14px; display:grid; }
.tile span { color:var(--ink-2); font-size:13px; } .tile strong { font-size:26px; } .tile small { color:var(--muted); font-size:12px; }
.table-wrap { overflow-x:auto; background:var(--surface); border:1px solid var(--line); border-radius:14px; }
table { border-collapse:collapse; width:100%; font-size:14px; }
th, td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); white-space:nowrap; } th { color:var(--muted); font-size:12.5px; }
td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; }

/* Rechtstexte */
.edit-attachments { padding:16px 18px; margin-bottom:16px; max-width:820px; } .edit-attachments h2 { margin:0; font-size:17px; }
.legal { padding:clamp(18px, 3vw, 30px); max-width:860px; } .legal h2 { font-size:19px; margin:22px 0 6px; } .legal h2:first-child { margin-top:0; }

/* Datenschutzhinweis, Fuß */
.privacy { position:sticky; bottom:0; z-index:40; background:var(--dark); color:var(--light-on-dark); border-top:1px solid rgba(255,255,255,.1); }
.privacy-inner { display:flex; gap:14px; align-items:center; justify-content:space-between; padding-top:10px; padding-bottom:10px; flex-wrap:wrap; }
.privacy p { margin:0; font-size:14px; flex:1 1 420px; } .privacy a { color:#8fe3e9; } .privacy form { margin:0; }
.site-footer { background:var(--dark); color:var(--muted-on-dark); padding:36px 0 18px; font-size:14.5px; }
.footer-grid { display:grid; gap:24px; grid-template-columns:2fr 1fr 1fr 1fr; }
.site-footer h2 { color:#fff; font-size:13px; text-transform:uppercase; letter-spacing:.1em; margin:0 0 8px; }
.site-footer a { display:block; color:var(--light-on-dark); text-decoration:none; padding:2px 0; } .site-footer a:hover { color:#8fe3e9; }
.site-footer .brand { display:flex; margin-bottom:10px; } .site-footer p { margin:0; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.08); margin-top:24px; padding-top:14px; font-size:13px; }

/* Tablet und Handy */
@media (min-width:1181px) { .nav-user { display:none; } }   /* Begrüßung nur im Menü (☰), Kopfleiste bleibt einzeilig */
/* Menüknopf (☰) bis 1180 px, damit die Kopfleiste auf Tablets und kleinen Laptops einzeilig bleibt */
@media (max-width:1180px) {
  .menu-toggle { display:block; margin-left:auto; width:44px; height:44px; position:relative; cursor:pointer; border-radius:10px; border:1px solid rgba(255,255,255,.18); }
  .menu-toggle span, .menu-toggle span::before, .menu-toggle span::after { position:absolute; left:11px; width:20px; height:2px; background:#fff; content:""; }
  .menu-toggle span { top:20px; } .menu-toggle span::before { top:-6px; left:0; } .menu-toggle span::after { top:6px; left:0; }
  .site-nav { display:none; width:100%; flex-direction:column; align-items:stretch; padding:0 0 12px; }
  .menu-check:checked ~ .site-nav { display:flex; }
  .site-nav a, .nav-button { padding:11px 12px; text-align:left; width:100%; }
  .site-nav .inline { width:100%; }
  .nav-user { padding:8px 12px; }
  .nav-user { display:block; }
}
@media (max-width:900px) {
  .intro, .form-layout, .offer-layout { grid-template-columns:1fr; }
  .offer-side { position:static; }
  .shop-filter { grid-template-columns:1fr 1fr; } .shop-filter .filter-q { grid-column:1 / -1; }
  .cat-row { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:760px) {
  .brand { font-size:16.5px; } .brand-sub { display:none; }
  .topic { align-items:flex-start; }
  .post { padding:14px; }
  .btn { width:100%; } .search-inline .btn, .btn-small, .pager .btn { width:auto; }
}
@media (max-width:520px) {
  .footer-grid { grid-template-columns:1fr; }
  .shop-filter, .cat-row { grid-template-columns:1fr; }
  .offer-price { font-size:26px; }
  .search-inline { flex-direction:column; } .search-inline .btn { width:100%; }
}
