@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;900&family=Barlow:wght@300;400;500;600&family=DM+Mono:wght@400;500&display=swap');

/* Standalone body reset — wenn Plugin die ganze Seite übernimmt */
body.loxo-standalone {
  margin:0; padding:0; background:#0a0a0a;
  min-height:100vh;
}

.loxo-angebot {
  --black:#0a0a0a; --dark:#111; --card:#1a1a1a; --border:#2a2a2a;
  --orange:#f56c1a; --orange2:#e05a0a; --white:#fff; --muted:#888; --light:#ccc;
  --green:#22c55e; --green-bg:#052e16; --amber:#f59e0b; --red:#ef4444; --red-bg:#1f0606;
  --cond:'Barlow Condensed',sans-serif; --body:'Barlow',sans-serif; --mono:'DM Mono',monospace;
  background:var(--black); color:var(--white); font-family:var(--body); font-size:15px; line-height:1.65;
}

/* PASSWORD */
.loxo-pw-screen { display:flex; align-items:center; justify-content:center; min-height:60vh; }
.loxo-pw-box { width:100%; max-width:380px; padding:2.5rem 2rem; text-align:center; border:1px solid var(--border); border-radius:4px; background:var(--dark); }
.loxo-pw-logo { font-family:var(--cond); font-size:2.8rem; font-weight:900; letter-spacing:.05em; text-transform:uppercase; color:var(--white); line-height:1; margin-bottom:.2rem; }
.loxo-pw-logo span { color:var(--orange); }
.loxo-pw-tagline { font-family:var(--mono); font-size:.65rem; color:var(--muted); letter-spacing:.15em; text-transform:uppercase; margin-bottom:2rem; }
.loxo-pw-label { font-family:var(--mono); font-size:.65rem; color:var(--muted); letter-spacing:.12em; text-transform:uppercase; display:block; text-align:left; margin-bottom:.4rem; }
.loxo-pw-input { width:100%; background:#0a0a0a; border:1px solid var(--border); border-radius:3px; padding:.75rem 1rem; color:var(--white); font-family:var(--mono); font-size:.9rem; outline:none; letter-spacing:.1em; margin-bottom:.75rem; transition:border-color .15s; box-sizing:border-box; }
.loxo-pw-input:focus { border-color:var(--orange); }
.loxo-pw-btn { width:100%; background:var(--orange); border:none; border-radius:3px; padding:.8rem; color:var(--white); font-family:var(--cond); font-size:1.1rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.loxo-pw-btn:hover { background:var(--orange2); }
.loxo-pw-error { color:#ef4444; font-size:.78rem; margin-top:.75rem; font-family:var(--mono); display:none; }

/* LAYOUT */
.loxo-main { max-width:900px; margin:0 auto; padding:3rem 1.5rem 6rem; }

/* HEADER */
.loxo-header { padding-bottom:2.5rem; margin-bottom:3rem; border-bottom:1px solid var(--border); }
.loxo-brand { display:flex; align-items:center; gap:1rem; margin-bottom:2rem; }
.loxo-name { font-family:var(--cond); font-size:1.1rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--orange); }
.loxo-dot { width:6px; height:6px; background:var(--border); border-radius:50%; }
.loxo-for { font-family:var(--mono); font-size:.65rem; color:var(--muted); letter-spacing:.12em; text-transform:uppercase; }
.loxo-doc-title { font-family:var(--cond); font-size:clamp(3rem,8vw,5.5rem); font-weight:900; line-height:.92; text-transform:uppercase; letter-spacing:.02em; color:var(--white); margin-bottom:1.5rem; }
.loxo-doc-title span { color:var(--orange); display:block; }
.loxo-meta-row { display:flex; flex-wrap:wrap; border:1px solid var(--border); border-radius:3px; overflow:hidden; }
.loxo-meta-cell { padding:.6rem 1.2rem; border-right:1px solid var(--border); flex:1; min-width:120px; }
.loxo-meta-cell:last-child { border-right:none; }
.loxo-meta-cell .k { font-family:var(--mono); font-size:.62rem; color:var(--orange); letter-spacing:.12em; text-transform:uppercase; display:block; margin-bottom:3px; }
.loxo-meta-cell .v { font-size:.9rem; font-weight:600; color:var(--white); }

/* SECTIONS */
.loxo-section { margin-bottom:4rem; }
.loxo-sec-label { font-family:var(--mono); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--orange); margin-bottom:.5rem; }
.loxo-sec-title { font-family:var(--cond); font-size:clamp(2rem,5vw,3rem); font-weight:900; text-transform:uppercase; letter-spacing:.03em; line-height:1; color:var(--white); margin-bottom:1.2rem; }
.loxo-sec-body { color:#d8d8d8; font-size:1.05rem; line-height:1.75; margin-bottom:1.5rem; max-width:720px; }

/* STATUS GRID */
.loxo-status-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--border); border:1px solid var(--border); border-radius:4px; overflow:hidden; margin-bottom:2rem; }
.loxo-si { background:var(--dark); padding:1.3rem 1.4rem; display:flex; gap:1rem; align-items:flex-start; }
.loxo-si-icon { width:30px; height:30px; border-radius:4px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; font-weight:700; flex-shrink:0; }
.loxo-si-icon.plus { background:var(--orange); color:#fff; }
.loxo-si-icon.warn { background:#3a2000; color:var(--orange); border:1px solid var(--orange); }
.loxo-si-text h4 { font-size:1rem; font-weight:700; color:var(--white); margin-bottom:4px; margin-top:0; }
.loxo-si-text p  { font-size:.9rem; color:#bbb; margin:0; line-height:1.55; }

/* DELIVERABLES */
.loxo-dc { background:var(--dark); border:1px solid var(--border); border-radius:4px; overflow:hidden; margin-bottom:2px; }
.loxo-dc-head { display:flex; align-items:center; gap:1rem; padding:1rem 1.2rem; }
.loxo-dc-num { width:42px; height:42px; background:var(--orange); color:var(--white); border-radius:4px; display:flex; align-items:center; justify-content:center; font-family:var(--cond); font-weight:900; font-size:1.5rem; flex-shrink:0; }
.loxo-dc-info { flex:1; }
.loxo-dc-info h3 { font-size:1.1rem; font-weight:700; color:var(--white); margin:0 0 3px; }
.loxo-dc-info p  { font-size:.9rem; color:#bbb; margin:0; line-height:1.5; }
.loxo-dc-prio { font-family:var(--mono); font-size:.6rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; padding:.2rem .6rem; border-radius:2px; white-space:nowrap; }
.loxo-dc-prio.prio1 { background:#3a0d00; color:var(--orange); border:1px solid #5a1a00; }
.loxo-dc-prio.prio2 { background:#1c1202; color:var(--amber); border:1px solid #3d2500; }

/* TIMELINE */
.loxo-timeline { display:flex; flex-direction:column; }
.loxo-tl-item { display:flex; gap:1rem; }
.loxo-tl-left { display:flex; flex-direction:column; align-items:center; width:36px; flex-shrink:0; }
.loxo-tl-dot { width:12px; height:12px; border-radius:50%; background:var(--orange); flex-shrink:0; margin-top:4px; }
.loxo-tl-line { width:1px; background:var(--border); flex:1; margin:4px 0; min-height:20px; }
.loxo-tl-item:last-child .loxo-tl-line { display:none; }
.loxo-tl-card { background:var(--dark); border:1px solid var(--border); border-radius:4px; padding:.9rem 1.1rem; margin-bottom:.5rem; flex:1; }
.loxo-tl-wk { font-family:var(--mono); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--orange); margin-bottom:.2rem; }
.loxo-tl-card h3 { font-size:1.05rem; font-weight:700; color:var(--white); margin:0 0 .3rem; }
.loxo-tl-card p  { font-size:.9rem; color:#bbb; margin:0; line-height:1.55; }

/* PRICE */
.loxo-price-wrap { background:var(--orange); border-radius:4px; padding:2rem; display:flex; gap:2rem; align-items:center; flex-wrap:wrap; }
.loxo-price-left h3 { font-family:var(--cond); font-size:1.5rem; font-weight:900; text-transform:uppercase; color:var(--black); margin:0 0 .3rem; }
.loxo-price-left p  { color:rgba(0,0,0,.6); font-size:.85rem; margin:0; }
.loxo-price-right { text-align:right; }
.loxo-price-num { font-family:var(--cond); font-size:3.5rem; font-weight:900; letter-spacing:-.02em; color:var(--black); line-height:1; }
.loxo-price-sub { font-size:.75rem; color:rgba(0,0,0,.55); margin-top:.2rem; }

/* FORMS */
.loxo-fs { background:var(--dark); border:1px solid var(--border); border-radius:4px; overflow:hidden; margin-bottom:2px; }
.loxo-fh { display:flex; align-items:center; gap:.8rem; padding:.9rem 1.2rem; background:var(--card); border-bottom:1px solid var(--border); }
.loxo-fh h3 { font-family:var(--cond); font-size:1.3rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--white); margin:0; }
.loxo-fb { padding:1.4rem; }
.loxo-fg { margin-bottom:1.5rem; }
.loxo-fg:last-child { margin-bottom:0; }
.loxo-fgt { font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--orange); margin-bottom:.6rem; padding-bottom:.4rem; border-bottom:1px solid var(--border); }
.loxo-frow { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }
.loxo-field { margin-bottom:.9rem; }
.loxo-field label { font-family:var(--body); font-size:.82rem; font-weight:600; letter-spacing:.01em; color:#ddd; display:flex; align-items:center; gap:.4rem; margin-bottom:.35rem; }
.req { color:var(--orange); font-size:.7rem; }
.opt { font-size:.62rem; background:#3a2000; color:var(--orange); padding:1px 5px; border-radius:2px; border:1px solid #5a3500; font-family:var(--mono); }
.pre-tag { font-size:.62rem; background:var(--green-bg); color:var(--green); padding:1px 5px; border-radius:2px; border:1px solid #14532d; }
.hint { font-size:.8rem; color:#999; margin-top:.3rem; line-height:1.4; }
input[type=text], input[type=email], input[type=url], textarea, select {
  width:100%; background:#000; border:1px solid #3a3a3a; border-radius:3px;
  padding:.75rem 1rem; color:var(--white); font-family:var(--body); font-size:.95rem;
  outline:none; transition:border-color .15s; resize:vertical; box-sizing:border-box;
}
input:focus, textarea:focus { border-color:var(--orange); }
input::placeholder, textarea::placeholder { color:#666; }
input.pre { background:#0a2515; border-color:#1f7a45; color:#5ee89a; }
input[type=file].file-input { color:var(--muted); cursor:pointer; }
input[type=file].file-input:hover { border-color:var(--orange); }
input[type=file].file-input::file-selector-button { background:var(--orange); border:none; border-radius:2px; color:var(--white); font-family:var(--cond); font-size:.85rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:.3rem .8rem; margin-right:.75rem; cursor:pointer; }
.loxo-proj-block { background:var(--black); border:1px solid var(--border); border-radius:3px; padding:1rem; margin-bottom:.75rem; }
.loxo-add-btn { background:transparent; border:1px dashed var(--border); border-radius:3px; padding:.6rem 1rem; color:var(--muted); font-family:var(--cond); font-size:.9rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; width:100%; transition:all .15s; }
.loxo-add-btn:hover { border-color:var(--orange); color:var(--orange); }
.loxo-warn-box { background:#1c1000; border:1px solid #5a3500; border-left:3px solid var(--orange); border-radius:0 4px 4px 0; padding:1rem 1.2rem; margin-bottom:1.5rem; font-size:.85rem; color:#d4a05a; line-height:1.6; }
.loxo-warn-box strong { color:var(--orange); }
.loxo-info-box { background:#070d1c; border:1px solid #1e3a6e; border-radius:4px; padding:1rem 1.2rem; font-size:.84rem; color:#93b4ef; line-height:1.6; margin-top:1rem; }
.loxo-info-box strong { color:#60a5fa; }

/* AUFTRAG */
.loxo-auftrag-box { background:var(--dark); border:2px solid var(--orange); border-radius:6px; padding:2rem; margin-top:2rem; }
.loxo-auftrag-box h3 { font-family:var(--cond); font-size:2rem; font-weight:900; text-transform:uppercase; color:var(--white); margin:0 0 .3rem; }
.loxo-auftrag-box h3 span { color:var(--orange); }
.loxo-auftrag-box > p { font-size:.87rem; color:var(--muted); margin-bottom:1.5rem; }
.loxo-confirm { display:flex; align-items:flex-start; gap:.75rem; background:var(--black); border:1px solid var(--border); border-radius:3px; padding:1rem; margin-bottom:1rem; }
.loxo-confirm input[type=checkbox] { width:18px; height:18px; flex-shrink:0; accent-color:var(--orange); cursor:pointer; margin-top:2px; }
.loxo-confirm label { font-size:.88rem; color:var(--light); cursor:pointer; line-height:1.5; }
.loxo-submit-btn { width:100%; background:var(--orange); border:none; border-radius:3px; padding:1.1rem 2rem; color:var(--white); font-family:var(--cond); font-size:1.4rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:.75rem; transition:background .15s; }
.loxo-submit-btn:hover { background:var(--orange2); }
.loxo-submit-btn:disabled { opacity:.4; cursor:not-allowed; }
.loxo-form-error { background:var(--red-bg); border:1px solid var(--red); border-radius:3px; padding:.75rem 1rem; font-size:.83rem; color:var(--red); margin-top:.75rem; font-family:var(--mono); display:none; }
.loxo-success-box { background:#071a0e; border:1px solid var(--green); border-radius:4px; padding:2rem; text-align:center; margin-top:1.5rem; }
.loxo-success-box h3 { font-family:var(--cond); font-size:2rem; text-transform:uppercase; color:var(--green); margin:0 0 .5rem; }
.loxo-success-box p { color:#86efac; font-size:.9rem; line-height:1.6; margin:0; }

/* FOOTER */
.loxo-footer { border-top:1px solid var(--border); padding-top:2.5rem; margin-top:5rem; display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; flex-wrap:wrap; }
.loxo-footer-brand { font-family:var(--cond); font-size:1.4rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; color:var(--white); margin-bottom:.2rem; }
.loxo-footer-brand span { color:var(--orange); }
.loxo-footer-l p { font-size:.82rem; color:var(--muted); }
.loxo-footer-r { font-family:var(--cond); font-size:1.8rem; font-weight:900; text-transform:uppercase; letter-spacing:.04em; color:var(--border); text-align:right; line-height:1.1; }

/* ── MODULE ── */
.loxo-module-static { cursor:default; }
.loxo-module-static:hover { border-color:var(--orange); background:#1a1207; }
.loxo-module-liste .loxo-module-check { background:var(--orange); border-color:var(--orange); }
.loxo-module-liste .loxo-module-check::after { content:'✓'; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); color:#fff; font-size:15px; font-weight:900; }

/* SPEZIALPREIS BLOCK */
.loxo-spezial {
  display:flex; justify-content:space-between; align-items:center;
  background:var(--orange); border-radius:6px; padding:2rem 2.2rem; margin-top:1.5rem;
  flex-wrap:wrap; gap:1.2rem;
}
.loxo-spezial-left { flex:1; min-width:220px; }
.loxo-spezial-label { font-family:var(--cond); font-size:1.8rem; font-weight:900; text-transform:uppercase; letter-spacing:.03em; color:var(--black); line-height:1; }
.loxo-spezial-note { font-size:.88rem; color:rgba(0,0,0,.72); margin:.5rem 0 0; line-height:1.5; max-width:420px; }
.loxo-spezial-right { text-align:right; }
.loxo-spezial-alt { font-size:1.3rem; color:rgba(0,0,0,.45); text-decoration:line-through; font-weight:600; line-height:1.2; }
.loxo-spezial-num { font-family:var(--cond); font-size:3.8rem; font-weight:900; color:var(--black); line-height:1; }
.loxo-spezial-sub { font-size:.78rem; color:rgba(0,0,0,.6); margin-top:.3rem; }

.loxo-rabatt-banner {
  display:flex; align-items:center; gap:1rem; background:linear-gradient(135deg,#f56c1a,#e05a0a);
  border-radius:6px; padding:1.1rem 1.5rem; margin-bottom:1.5rem; color:#fff;
}
.loxo-rabatt-icon { font-size:2rem; line-height:1; }
.loxo-rabatt-banner strong { font-family:var(--cond); font-size:1.4rem; font-weight:900; text-transform:uppercase; letter-spacing:.03em; display:block; }
.loxo-rabatt-banner p { font-size:.85rem; color:rgba(255,255,255,.9); margin:.2rem 0 0; }
.loxo-module-list { display:flex; flex-direction:column; gap:8px; margin-bottom:1.5rem; }
.loxo-module {
  display:flex; align-items:flex-start; gap:1rem; background:var(--dark);
  border:1px solid var(--border); border-radius:6px; padding:1.2rem 1.4rem;
  cursor:pointer; transition:all .15s; position:relative;
}
.loxo-module:hover { border-color:#4a4a4a; background:#161616; }
.loxo-module.selected { border-color:var(--orange); background:#1a1207; }
.loxo-module-cb { position:absolute; opacity:0; pointer-events:none; }
.loxo-module-check {
  width:24px; height:24px; border:2px solid var(--border); border-radius:5px;
  flex-shrink:0; margin-top:2px; transition:all .15s; position:relative;
}
.loxo-module.selected .loxo-module-check { background:var(--orange); border-color:var(--orange); }
.loxo-module.selected .loxo-module-check::after {
  content:'✓'; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  color:#fff; font-size:15px; font-weight:900;
}
.loxo-module-info { flex:1; }
.loxo-module-top { display:flex; align-items:center; gap:.75rem; margin-bottom:.3rem; flex-wrap:wrap; }
.loxo-module-titel { font-family:var(--cond); font-size:1.35rem; font-weight:700; text-transform:uppercase; letter-spacing:.02em; color:var(--white); line-height:1; }
.loxo-module-badge { font-family:var(--mono); font-size:.6rem; letter-spacing:.08em; text-transform:uppercase; padding:.2rem .5rem; border-radius:2px; }
.loxo-module-badge.prio1 { background:#3a0d00; color:var(--orange); border:1px solid #5a1a00; }
.loxo-module-badge.prio2 { background:#1c1202; color:var(--amber); border:1px solid #3d2500; }
.loxo-module-badge.loxo-badge-inkl { background:#3a0d00; color:var(--orange); border:1px solid #5a1a00; }
.loxo-module-desc { font-size:.95rem; color:#ccc; margin:0; line-height:1.5; }
.loxo-module-detail { font-size:.82rem; color:#888; margin:.4rem 0 0; line-height:1.5; }
.loxo-module-preis { display:flex; flex-direction:column; align-items:flex-end; white-space:nowrap; align-self:center; }
.loxo-module-preis-alt { font-size:.95rem; color:#777; text-decoration:line-through; line-height:1.2; }
.loxo-module-preis-neu { font-family:var(--cond); font-size:1.6rem; font-weight:900; color:var(--orange); line-height:1; }

.loxo-summe {
  display:flex; justify-content:space-between; align-items:center;
  background:var(--orange); border-radius:6px; padding:1.5rem 2rem; flex-wrap:wrap; gap:1rem;
}
.loxo-summe-label { font-family:var(--cond); font-size:1.5rem; font-weight:900; text-transform:uppercase; color:var(--black); line-height:1; }
.loxo-summe-hint { font-size:.85rem; color:rgba(0,0,0,.7); margin-top:.3rem; }
.loxo-summe-right { text-align:right; }
.loxo-summe-strike { font-size:1.1rem; color:rgba(0,0,0,.5); text-decoration:line-through; min-height:1.1rem; font-weight:600; }
.loxo-summe-num { font-family:var(--cond); font-size:3rem; font-weight:900; color:var(--black); line-height:1; }
.loxo-summe-sub { font-size:.75rem; color:rgba(0,0,0,.6); margin-top:.2rem; }

@media(max-width:600px) {
  .loxo-module { flex-wrap:wrap; }
  .loxo-module-preis { width:100%; text-align:right; }
}

@media(max-width:600px) {
  .loxo-doc-title { font-size:3rem; }
  .loxo-status-grid { grid-template-columns:1fr; }
  .loxo-frow { grid-template-columns:1fr; }
  .loxo-meta-row { flex-direction:column; }
  .loxo-meta-cell { border-right:none; border-bottom:1px solid var(--border); }
}
