*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;background:#f0f0f0;color:#333;line-height:1.5}
header{background:linear-gradient(90deg,#05263d 0%,#0b3c5d 100%);padding:15px 25px;color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.sitename{font-size:24px;font-weight:700;text-decoration:none;color:#fff;display:inline-flex;align-items:center;gap:10px}
.sitename img{height:32px;width:auto}
.breadcrumb{margin-top:8px;font-size:12px;color:#cbd5e1}
.breadcrumb a{color:#fff;text-decoration:none}.breadcrumb a:hover{color:#00bfae}

/* ── App Shell ── */
#appShell{display:flex;flex-direction:column;height:calc(100vh - 62px)}

/* ── Ribbon ── */
#ribbon{background:#fff;border-bottom:1px solid #c8c8c8;user-select:none;flex-shrink:0}
.ribbon-tabs{display:flex;background:#0b3c5d;padding:0 8px}
.ribbon-tab{padding:7px 18px;font-size:12px;font-weight:700;color:rgba(255,255,255,.7);cursor:pointer;border-bottom:3px solid transparent;transition:all .15s;text-transform:uppercase;letter-spacing:.04em}
.ribbon-tab.active{color:#fff;border-bottom-color:#fff;background:rgba(255,255,255,.08)}
.ribbon-tab:hover:not(.active){color:#fff}
.ribbon-panel{display:none;padding:6px 10px;align-items:flex-end;gap:2px;flex-wrap:nowrap;overflow-x:auto;min-height:72px}
.ribbon-panel.active{display:flex}

.rg{display:flex;flex-direction:column;align-items:stretch;border-right:1px solid #e0e0e0;padding:0 8px;gap:3px;min-width:fit-content}
.rg:last-child{border-right:none}
.rg-label{font-size:10px;color:#888;font-weight:600;text-align:center;margin-top:4px;letter-spacing:.03em;text-transform:uppercase}
.rg-row{display:flex;gap:2px;align-items:center;flex-wrap:nowrap}

.rb{display:inline-flex;align-items:center;justify-content:center;gap:3px;padding:3px 7px;border:1px solid transparent;border-radius:3px;cursor:pointer;font-size:12px;font-weight:600;color:#333;background:transparent;white-space:nowrap;transition:all .1s;min-height:26px}
.rb:hover{background:#e8f0f7;border-color:#b8cfe8}
.rb.active{background:#cde0f5;border-color:#7ab0d8;color:#0b3c5d}
.rb-icon{font-size:16px;line-height:1}
.rb-big{flex-direction:column;padding:4px 8px;min-width:44px;font-size:10px;gap:1px;min-height:56px}
.rb-big .rb-icon{font-size:22px}
.rb-sep{width:1px;background:#ddd;height:36px;margin:0 4px;align-self:center}
.rs{padding:3px 6px;border:1px solid #c8c8c8;border-radius:3px;font-size:12px;background:#fff;color:#333;cursor:pointer;height:26px}
.rs:focus{outline:none;border-color:#0b3c5d}
.ri{padding:3px 5px;border:1px solid #c8c8c8;border-radius:3px;font-size:12px;background:#fff;color:#333;height:26px;text-align:center}
.ri:focus{outline:none;border-color:#0b3c5d}
.ri::-webkit-inner-spin-button{opacity:.6}
.color-wrap{display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer}
.color-wrap span{font-size:10px;font-weight:700;color:#333}
.color-bar{height:4px;width:22px;border-radius:2px;margin-top:1px}
.color-inp{opacity:0;position:absolute;width:0;height:0}

/* ── Status bar ── */
#statusBar{background:#0b3c5d;color:#fff;font-size:12px;padding:3px 14px;display:flex;gap:20px;flex-shrink:0;align-items:center;min-height:24px}
#statusBar .sb-item{opacity:.8}
#statusBar .sb-item b{opacity:1;font-weight:700}
#statusMsg{margin-left:auto;font-weight:700;transition:opacity .3s;font-size:11px}
#statusMsg.fade{opacity:0}

/* ── Page area ── */
#pageArea{flex:1;overflow-y:auto;background:#e8e8e8;padding:24px 0;display:flex;flex-direction:column;align-items:center}

/* Upload screen */
#uploadScreen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;flex:1;min-height:400px}
.drop-zone{border:2px dashed #0b3c5d;border-radius:12px;padding:48px 64px;text-align:center;background:#fff;cursor:pointer;transition:all .2s;box-shadow:0 4px 16px rgba(0,0,0,.08)}
.drop-zone:hover,.drop-zone.dragover{background:#e8f0f7;border-color:#00bfae;box-shadow:0 6px 24px rgba(0,0,0,.12)}
.drop-zone h3{color:#0b3c5d;font-size:18px;margin:12px 0 6px}
.drop-zone p{color:#888;font-size:13px}
.dz-or{display:flex;gap:16px;margin-top:16px}
.dz-btn{padding:10px 24px;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:700}
.dz-btn.primary{background:#0b3c5d;color:#fff}
.dz-btn.secondary{background:#fff;color:#0b3c5d;border:2px solid #0b3c5d}
.dz-btn:hover{opacity:.9}

/* ── Document page ── */
#pageWrap{display:none;flex-direction:column;align-items:center;gap:16px;width:100%}
.doc-page{
  background:#fff;
  width:210mm;
  min-height:297mm;
  /* Ränder werden per CSS-Variable gesteuert */
  padding:var(--margin-top,25.4mm) var(--margin-right,25.4mm) var(--margin-bottom,25.4mm) var(--margin-left,25.4mm);
  box-shadow:0 2px 18px rgba(0,0,0,.22);
  position:relative;
  transition:padding .2s;
}
/* Lineal-Anzeige oben auf der Seite */
.doc-page::before{
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:3px;
  background:linear-gradient(90deg,transparent var(--margin-left,25.4mm),#d0dde8 var(--margin-left,25.4mm),#d0dde8 calc(100% - var(--margin-right,25.4mm)),transparent calc(100% - var(--margin-right,25.4mm)));
  border-radius:0;
  pointer-events:none;
}

#editor{outline:none;min-height:200px;font-family:'Calibri',sans-serif;font-size:11pt;line-height:1.15;color:#000}
#editor:empty:before{content:'Beginnen Sie mit der Eingabe oder öffnen Sie eine Datei…';color:#aaa;pointer-events:none}
#editor p{margin:0 0 8pt 0}
#editor h1{font-size:16pt;font-weight:700;color:#1f3864;margin:12pt 0 4pt}
#editor h2{font-size:14pt;font-weight:700;color:#1f3864;margin:10pt 0 4pt}
#editor h3{font-size:12pt;font-weight:700;color:#1f3864;margin:8pt 0 3pt}
#editor h4{font-size:11pt;font-weight:700;margin:6pt 0 2pt}
#editor ul,#editor ol{margin:0 0 8pt 0;padding-left:18pt}
#editor li{margin-bottom:2pt}
#editor table{border-collapse:collapse;width:100%;margin:8pt 0}
#editor td,#editor th{border:1px solid #000;padding:3pt 5.4pt;vertical-align:top;font-size:10pt}
#editor th{background:#dce6f1;font-weight:700}
#editor blockquote{border-left:3px solid #0b3c5d;margin:6pt 0 6pt 18pt;padding:4pt 8pt;color:#555;font-style:italic}
#editor pre{font-family:'Courier New',monospace;font-size:10pt;background:#f5f5f5;border:1px solid #ddd;padding:6pt 8pt;margin:6pt 0;white-space:pre-wrap}
#editor hr{border:none;border-top:1px solid #ccc;margin:8pt 0}
#editor a{color:#0563c1;text-decoration:underline}
#editor img{max-width:100%;height:auto;pointer-events:none;user-select:none}

/* ── Bild-Resize-System ── */
.img-wrap{display:inline-block;position:relative;line-height:0;cursor:default;max-width:100%}
.img-wrap.img-left  {float:left;margin:4px 12px 4px 0}
.img-wrap.img-right {float:right;margin:4px 0 4px 12px}
.img-wrap.img-center{display:block;margin:4px auto}
.img-wrap.img-inline{display:inline-block;vertical-align:middle}
.img-wrap.selected > img{outline:2px solid #0b3c5d;outline-offset:1px}
.img-handle{position:absolute;width:10px;height:10px;background:#0b3c5d;border:2px solid #fff;border-radius:2px;z-index:100;box-shadow:0 1px 3px rgba(0,0,0,.4);display:none}
.img-wrap.selected .img-handle{display:block}
.img-handle[data-pos="nw"]{top:-5px;left:-5px;cursor:nw-resize}
.img-handle[data-pos="n"] {top:-5px;left:50%;transform:translateX(-50%);cursor:n-resize}
.img-handle[data-pos="ne"]{top:-5px;right:-5px;cursor:ne-resize}
.img-handle[data-pos="e"] {top:50%;right:-5px;transform:translateY(-50%);cursor:e-resize}
.img-handle[data-pos="se"]{bottom:-5px;right:-5px;cursor:se-resize}
.img-handle[data-pos="s"] {bottom:-5px;left:50%;transform:translateX(-50%);cursor:s-resize}
.img-handle[data-pos="sw"]{bottom:-5px;left:-5px;cursor:sw-resize}
.img-handle[data-pos="w"] {top:50%;left:-5px;transform:translateY(-50%);cursor:w-resize}
/* Floating Bild-Toolbar */
#imgToolbar{display:none;position:fixed;z-index:3000;background:#1e2a38;border-radius:7px;
  box-shadow:0 4px 16px rgba(0,0,0,.4);padding:5px 8px;align-items:center;gap:6px;white-space:nowrap}
#imgToolbar.visible{display:flex}
#imgToolbar label{color:#9ab;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
#imgToolbar input[type=number]{width:60px;padding:3px 5px;border:1px solid #3a4a5a;border-radius:4px;
  background:#0d1821;color:#e8f0f7;font-size:12px;font-weight:700;text-align:right}
#imgToolbar input[type=number]:focus{outline:none;border-color:#4a9ede}
.itb-sep{width:1px;height:20px;background:#3a4a5a;flex-shrink:0}
.itb-btn{background:none;border:1px solid transparent;border-radius:4px;color:#c8d8e8;font-size:13px;
  cursor:pointer;padding:3px 7px;line-height:1;transition:all .12s}
.itb-btn:hover{background:#2e3f52;border-color:#4a9ede;color:#fff}
.itb-btn.active{background:#0b3c5d;border-color:#4a9ede;color:#fff}
.itb-lock{color:#9ab;font-size:12px;cursor:pointer;padding:2px 5px;border-radius:3px;
  background:none;border:1px solid #3a4a5a;transition:all .12s}
.itb-lock:hover{background:#2e3f52}
.itb-del{color:#f88}.itb-del:hover{background:#5a1a1a;border-color:#f44;color:#fcc}

/* ── Find bar ── */
#findBar{display:none;background:#fff9c4;border-top:1px solid #f9a825;padding:6px 14px;flex-shrink:0}
#findBar.open{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
#findBar input{padding:4px 8px;border:1px solid #ccc;border-radius:4px;font-size:13px;width:180px}
#findBar button{padding:4px 12px;border:none;border-radius:4px;font-size:12px;font-weight:700;cursor:pointer}
.fb-find{background:#0b3c5d;color:#fff}
.fb-rep{background:#00897b;color:#fff}
.fb-repall{background:#43a047;color:#fff}
.fb-close{background:#e0e0e0;color:#333}
#findCount{font-size:12px;font-weight:700;color:#555;min-width:80px}

/* ── Seitenränder-Modal ── */
#marginModal{
  display:none;
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(0,0,0,.45);
  align-items:center;
  justify-content:center;
}
#marginModal.open{display:flex}
.mm-box{
  background:#fff;
  border-radius:10px;
  box-shadow:0 8px 40px rgba(0,0,0,.3);
  padding:28px 32px;
  width:440px;
  max-width:96vw;
  animation:mmIn .18s ease;
}
@keyframes mmIn{from{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}
.mm-title{font-size:16px;font-weight:700;color:#0b3c5d;margin-bottom:20px;display:flex;align-items:center;gap:8px}
.mm-title span{font-size:20px}
.mm-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}
.mm-field label{display:block;font-size:11px;font-weight:700;color:#555;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.mm-field input{width:100%;padding:7px 10px;border:1.5px solid #c8c8c8;border-radius:5px;font-size:13px;text-align:center;transition:border-color .15s}
.mm-field input:focus{outline:none;border-color:#0b3c5d}
/* Seitenvorschau im Modal */
.mm-preview-wrap{margin:18px 0 14px;display:flex;flex-direction:column;align-items:center;gap:6px}
.mm-preview-label{font-size:11px;color:#888;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.mm-page-preview{
  position:relative;
  width:100px;
  height:141px; /* A4 Verhältnis */
  background:#f8f8f8;
  border:1.5px solid #bbb;
  border-radius:2px;
}
.mm-page-inner{
  position:absolute;
  background:#e8f0f7;
  border:1px solid #9bb8d4;
  border-radius:1px;
  transition:all .15s;
}
.mm-presets{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.mm-preset{padding:5px 12px;border:1.5px solid #0b3c5d;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer;color:#0b3c5d;background:#fff;transition:all .15s}
.mm-preset:hover{background:#0b3c5d;color:#fff}
.mm-preset.active{background:#0b3c5d;color:#fff}
.mm-unit{display:flex;gap:6px;align-items:center;margin-bottom:14px;font-size:12px;font-weight:600;color:#555}
.mm-unit select{padding:3px 8px;border:1px solid #ccc;border-radius:4px;font-size:12px}
.mm-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}
.mm-btn{padding:8px 20px;border:none;border-radius:6px;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s}
.mm-btn.primary{background:#0b3c5d;color:#fff}
.mm-btn.primary:hover{background:#09304f}
.mm-btn.cancel{background:#e0e0e0;color:#333}
.mm-btn.cancel:hover{background:#ccc}
/* Rand-Beschriftungen auf der Vorschau */
.mm-arrow{position:absolute;font-size:9px;color:#0b3c5d;font-weight:700;pointer-events:none}

/* Export panel */
#exportPanel{background:#fff;border:1px solid #d1dce6;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);padding:16px 20px;width:210mm;margin-bottom:8px}
#exportPanel h4{color:#0b3c5d;font-size:13px;font-weight:700;margin-bottom:10px;text-transform:uppercase;letter-spacing:.04em}
.exp-grid{display:flex;gap:8px;flex-wrap:wrap}
.exp-btn{padding:8px 16px;border:2px solid #0b3c5d;border-radius:6px;background:#fff;color:#0b3c5d;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s}
.exp-btn:hover{background:#0b3c5d;color:#fff}
.exp-btn.docx-btn{background:#0b3c5d;color:#fff;border-color:#0b3c5d}
.exp-btn.docx-btn:hover{background:#09304f}
.content-box{background:#fff;border:1px solid #d1dce6;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.05);margin-bottom:22px;width:210mm}
.box-header{background:#0b3c5d;color:#fff;padding:12px 20px;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.box-body{padding:20px 24px}
.lib-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.lib-item{background:#f7fafd;border:1px solid #e8ecf0;border-radius:6px;padding:10px 14px}
.lib-name{font-size:13px;font-weight:700;color:#0b3c5d}
.lib-desc{font-size:12px;color:#5a7080;margin-top:2px}
.info-2col{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.info-2col ul{font-size:14px;line-height:2;padding-left:18px;margin:0;color:#444}
footer{text-align:center;font-size:13px;color:#64748b;padding:20px 0 30px;background:#f8fafc;width:100%}
footer a{color:#0b3c5d;text-decoration:none;margin:0 10px}
footer a:hover{color:#00897b}
@media(max-width:900px){
  .doc-page,#exportPanel,.content-box{width:100%;border-radius:0}
  .doc-page{padding:16mm}
  .mm-box{padding:18px 14px}
}
