/* ============================================================
   Submit Write — Schweizer, minimal, das Dokument ist der Held
   ============================================================ */
:root{
  /* Palette + Schrift → ../ui/tokens.css (gemeinsames Design-System). Hier nur Paper-spezifische Tokens. */
  /* Grundton: bis zum 14.08.2026 warmes Beige aus der alten Palette. Der
     Akzent war längst violett, der Untergrund nicht — nebeneinander sahen
     SubmitOne und Submit Paper aus wie zwei Programme. Jetzt dieselbe
     Familie: der Tisch violettgrau, das Blatt weiss. Dunkler als --grund,
     damit das Blatt weiterhin darüber schwebt. */
  --bg:#d8d8e4;          /* Tisch hinter dem Blatt */
  --side:var(--surface-2); /* Seitenleiste */
  --paper:#ffffff;       /* Das Blatt */
  --paper-ink:#1a1e27;   /* Text auf dem Blatt */
  --shadow:0 0 0 1px rgba(20,24,40,.055), 0 2px 5px rgba(20,24,40,.09), 0 16px 40px -6px rgba(20,24,40,.20);
  --radius:var(--rund-l);   /* 11px aus ui/tokens.css statt eigener 12px */
  --radius-sm:8px;
  --side-w:248px;
  --insp-w:268px;
  --font-brand:'Quicksand',sans-serif;
  --ease:cubic-bezier(.4,0,.2,1);
}
body[data-theme="dark"]{
  --bg:#0e1118;
  --surface:#171b24;
  --surface-2:#1b2029;
  --side:#13161e;
  --ink:#e8ebf2;
  --ink-soft:#9aa3b5;
  --ink-faint:#6b7385;
  --line:#262c39;
  --line-soft:#20252f;
  --accent:#5b8cff;
  --accent-soft:#1c2740;
  --paper:#1a1f29;
  --paper-ink:#e8ebf2;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 16px 50px rgba(0,0,0,.45);
}

/* Akzentfarbe pro Modus: Write=blau, Calc=grün, Slides=orange */
body[data-mode="calc"]{--accent:#1f9d57;--accent-soft:#e7f6ee}
body[data-mode="slides"]{--accent:#e8772e;--accent-soft:#fceede}
body[data-theme="dark"][data-mode="calc"]{--accent:#37cc80;--accent-soft:#11331f}
body[data-theme="dark"][data-mode="slides"]{--accent:#f2945a;--accent-soft:#3a2615}

*{box-sizing:border-box}
[hidden]{display:none !important}   /* erzwingt, dass hidden immer greift (schlägt .menu/.findbar/.bubble usw.) */
html,body{height:100%}
body{
  margin:0; font-family:var(--font-ui); color:var(--ink);
  background:var(--bg); font-size:14px; line-height:1.45;
  -webkit-font-smoothing:antialiased; overflow:hidden;
  transition:background .3s var(--ease), color .3s var(--ease);
}
.i{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;
   stroke-linecap:round;stroke-linejoin:round;display:block}
button{font-family:inherit;cursor:pointer}
.muted{color:var(--ink-faint)}
.grow{flex:1}

/* ---------- App-Raster ---------- */
.app{
  --nav-w:0;
  display:grid; height:100vh;
  grid-template-columns:var(--side-w) var(--nav-w) minmax(0,1fr) 0;
  transition:grid-template-columns .28s var(--ease);
}
.app.nav-open{--nav-w:262px}
.app.insp-open{grid-template-columns:var(--side-w) var(--nav-w) minmax(0,1fr) var(--insp-w)}
.app.side-hidden{grid-template-columns:0 var(--nav-w) minmax(0,1fr) var(--insp-w)}
.app.side-hidden:not(.insp-open){grid-template-columns:0 var(--nav-w) minmax(0,1fr) 0}
.app.focus{grid-template-columns:0 0 minmax(0,1fr) 0 !important}

/* ---------- Linke Seitenleiste ---------- */
.side{
  background:var(--side); border-right:1px solid var(--line);
  display:flex; flex-direction:column; min-width:0; overflow:hidden;
}
.side-brand{display:flex;align-items:center;gap:8px;padding:18px 18px 10px}
.brand-word{font-family:var(--font-brand);font-weight:700;font-size:18px;letter-spacing:-.2px;white-space:nowrap}
.bw-a{color:var(--ink)} .bw-b{color:var(--accent);margin-left:2px}
.side-collapse{margin-left:auto;color:var(--ink-faint)}
.new-doc{
  margin:6px 14px 12px; padding:10px 12px; display:flex;align-items:center;gap:9px;
  background:var(--accent); color:#fff; border:none; border-radius:var(--radius-sm);
  font-weight:600; font-size:13.5px; box-shadow:0 2px 8px color-mix(in srgb, var(--accent) 30%, transparent);
  transition:transform .12s var(--ease), box-shadow .2s var(--ease);
}
.new-doc:hover{transform:translateY(-1px);box-shadow:0 4px 14px color-mix(in srgb, var(--accent) 38%, transparent)}
.new-doc .i{width:17px;height:17px;stroke:#fff}
.side-nav{display:flex;flex-direction:column;gap:1px;padding:0 8px}
.snav{
  display:flex;align-items:center;gap:10px;padding:8px 10px;border:none;background:none;
  color:var(--ink-soft);border-radius:var(--radius-sm);font-size:13px;font-weight:500;
  text-align:left;white-space:nowrap;transition:background .14s,color .14s;
}
.snav .i{width:17px;height:17px;color:var(--ink-faint)}
.snav:hover{background:var(--line-soft);color:var(--ink)}
.snav.active{background:var(--accent-soft);color:var(--accent)}
.snav.active .i{color:var(--accent)}
.side-list{flex:1;overflow-y:auto;padding:12px 8px;min-height:0}
.doc-item{
  display:flex;flex-direction:column;gap:2px;padding:9px 10px;border-radius:var(--radius-sm);
  cursor:pointer;transition:background .14s;
}
.doc-item:hover{background:var(--line-soft)}
.doc-item.current{background:var(--accent-soft)}
.doc-item .di-title{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-item.current .di-title{color:var(--accent)}
.doc-item .di-meta{font-size:11px;color:var(--ink-faint)}
.list-empty{padding:18px 12px;font-size:12.5px;color:var(--ink-faint);text-align:center}
/* Einladender, ordner-spezifischer Leerzustand */
.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;padding:36px 18px 24px;color:var(--ink-faint)}
.empty-state .es-ico{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.5;margin-bottom:3px}
.empty-state .es-t{font-size:13.5px;font-weight:600;color:var(--ink-soft)}
.empty-state .es-s{font-size:12px;line-height:1.45;max-width:200px}
.empty-cta{margin-top:12px;padding:8px 15px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:12.5px;font-weight:600;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 30%,transparent);transition:transform .12s var(--ease),box-shadow .2s var(--ease)}
.empty-cta:hover{transform:translateY(-1px);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 38%,transparent)}
.empty-cta:active{transform:translateY(0)}
/* Vorlagen-Galerie (Karten mit Icon + Kurzbeschreibung) */
.tmpl-gallery{display:flex;flex-direction:column;gap:7px;padding:8px 6px}
.tmpl-card{display:flex;gap:10px;align-items:flex-start;text-align:left;width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;transition:border-color .14s,background .14s,transform .1s,box-shadow .14s}
.tmpl-card:hover{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 2px 10px color-mix(in srgb,var(--accent) 14%,transparent)}
.tmpl-card:active{transform:translateY(1px)}
.tmpl-card .tc-ico{flex:0 0 auto;width:30px;height:30px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;transition:background .14s}
.tmpl-card .tc-ico .i{width:17px;height:17px}
.tmpl-card:hover .tc-ico{background:var(--surface)}
.tmpl-card .tc-tx{display:flex;flex-direction:column;min-width:0}
.tmpl-card .tc-t{font-size:13px;font-weight:600;color:var(--ink)}
.tmpl-card .tc-d{font-size:11px;color:var(--ink-faint);line-height:1.35;margin-top:1px}
.side-foot{padding:10px 14px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px}
.foot-link{display:flex;align-items:center;gap:7px;background:none;border:none;color:var(--ink-soft);font-size:12.5px;font-weight:500;padding:4px 6px;border-radius:6px}
.foot-link:hover{background:var(--line-soft);color:var(--ink)}
.foot-link .i{width:15px;height:15px}
.ver{margin-left:auto;font-size:11px;color:var(--ink-faint)}

/* ---------- Mitte ---------- */
.main{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg)}
/* Linkes Inhaltsverzeichnis (Gliederung) – eigene Grid-Spalte, dockt an & schiebt den Inhalt */
.navpane{grid-column:2;overflow:hidden;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.navpane .np-head,.navpane .outline{width:262px}
.np-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);font-weight:600;font-size:14px}
.navpane .outline{flex:1;overflow:auto;padding:8px 6px}
.topbar{
  display:flex;align-items:center;gap:12px;padding:10px 16px;
  background:var(--surface);border-bottom:1px solid var(--line);
}
.icon-btn{
  width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  background:none;border:1px solid transparent;border-radius:8px;color:var(--ink-soft);
  transition:background .14s,color .14s,border-color .14s;
}
.icon-btn:hover{background:var(--line-soft);color:var(--ink)}
.topbar-side{display:none}
.doc-title{
  border:none;background:none;font-family:var(--font-ui);font-size:15px;font-weight:600;
  color:var(--ink);padding:6px 8px;border-radius:7px;width:min(360px,38vw);
  transition:background .14s;
}
.doc-title:hover{background:var(--line-soft)}
.doc-title:focus{outline:none;background:var(--line-soft)}
.save-state{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-faint)}
.save-state .dot{width:7px;height:7px;border-radius:50%;background:#3bbf7a;transition:background .2s}
.save-state.dirty .dot{background:#f0a637}
.save-state.saving .dot{background:var(--accent)}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:6px}
.ghost-btn{
  display:inline-flex;align-items:center;gap:7px;padding:7px 12px;background:none;
  border:1px solid var(--line);border-radius:8px;color:var(--ink-soft);font-size:13px;font-weight:500;
  transition:background .14s,color .14s,border-color .14s;
}
.ghost-btn:hover{background:var(--line-soft);color:var(--ink);border-color:var(--line)}
.ghost-btn .i{width:16px;height:16px}
.menu-wrap{position:relative}
.menu{
  position:absolute;top:calc(100% + 6px);right:0;z-index:40;min-width:190px;
  background:var(--surface);border:1px solid var(--line);border-radius:10px;
  box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;
}
.menu button{
  text-align:left;padding:9px 11px;background:none;border:none;border-radius:7px;
  color:var(--ink-soft);font-size:13px;transition:background .14s,color .14s;
}
.menu button:hover{background:var(--line-soft);color:var(--ink)}

/* ---------- Format-Leiste ---------- */
.formatbar{
  display:flex;align-items:center;gap:6px;padding:8px 16px;flex-wrap:wrap;
  background:var(--surface);border-bottom:1px solid var(--line);
}
/* Register-Reiter (Start / Einfügen / Layout / Ansicht) */
.ribtabs{display:flex;gap:2px;padding:4px 10px 0;background:var(--surface);border-bottom:1px solid var(--line)}
.ribtabs button{border:none;background:none;padding:6px 14px;font-family:var(--font-ui);font-size:13px;color:var(--ink-soft);border-radius:8px 8px 0 0;cursor:pointer;font-weight:500}
.ribtabs button:hover{background:var(--line-soft);color:var(--ink)}
.ribtabs button.on{background:var(--surface-2);color:var(--accent);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent)}
/* Ribbon – kompakt, Word-Stil: Gruppen mit Beschriftung */
.formatbar.ribbon{display:block;flex-wrap:nowrap;overflow:visible;align-items:stretch;gap:0;padding:0}
.ribpane{display:flex;flex-wrap:nowrap;overflow-x:auto;align-items:stretch;gap:0;padding:5px 10px 1px}
.rib-group{display:flex;flex-direction:column;justify-content:space-between;padding:0 9px;border-right:1px solid var(--line);flex:0 0 auto}
.rib-group:last-child{border-right:none}
.rib-body{display:flex;align-items:center;gap:3px;flex:1}
.rib-body.col{flex-direction:column;align-items:flex-start;gap:3px;justify-content:center}
.rib-row{display:flex;align-items:center;gap:2px}
.rib-cap{text-align:center;font-size:9.5px;color:var(--ink-faint);padding:2px 0 1px;letter-spacing:.2px}
.ribbon .fb-sel{height:26px;font-size:12px;padding:0 6px}
.ribbon .fb-sel.wide{height:54px;min-width:150px;font-size:13px}
.ribbon .fb-sel.narrow{width:54px}
.fb-btn.sm{min-width:26px;height:24px;padding:0 5px;font-size:12.5px;border-radius:6px}
.fb-btn.sm .i{width:15px;height:15px}
.fb-btn.sm sub,.fb-btn.sm sup{font-size:8px}
.rib-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:52px;height:54px;padding:4px 6px;border:1px solid transparent;border-radius:8px;background:none;color:var(--ink-soft);font-size:11px}
.rib-btn:hover{background:var(--line-soft);color:var(--ink)}
.rib-btn .i{width:20px;height:20px}
.rib-btn.on{background:var(--accent-soft);color:var(--accent)}
.rib-btn.sm2{flex-direction:row;height:auto;min-width:0;gap:5px;padding:6px 9px}
.rib-inline{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--ink-soft)}
.sym-menu{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:8px;min-width:236px;max-height:240px;overflow:auto}
.sym-menu button{width:26px;height:26px;border:1px solid transparent;border-radius:6px;background:none;font-size:15px;cursor:pointer;color:var(--ink);display:flex;align-items:center;justify-content:center}
.sym-menu button:hover{background:var(--accent-soft);border-color:var(--accent)}
/* Seitenumbruch-Marker */
.editor .pagebreak{user-select:none;text-align:center;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-faint);border-top:2px dashed var(--line);margin:12px 0;padding-top:3px}
/* Initiale (Drop Cap) */
.editor p.dropcap::first-letter,.editor blockquote.dropcap::first-letter{float:left;font-size:3.1em;line-height:.82;font-weight:700;padding:2px 8px 0 0;color:var(--accent)}
/* Formatierungszeichen */
.editor.show-marks p::after,.editor.show-marks h1::after,.editor.show-marks h2::after,.editor.show-marks h3::after,.editor.show-marks li::after,.editor.show-marks blockquote::after{content:'¶';color:var(--ink-faint);opacity:.45;margin-left:2px;font-weight:400}
.fb-group{display:flex;align-items:center;gap:3px}
.fb-div{width:1px;height:22px;background:var(--line);margin:0 4px}
.fb-sel{
  height:32px;border:1px solid var(--line);background:var(--surface-2);border-radius:7px;
  color:var(--ink);font-family:inherit;font-size:13px;padding:0 8px;cursor:pointer;
}
.fb-sel.narrow{width:58px}
.fb-sel:focus{outline:none;border-color:var(--accent)}
.fb-btn{
  min-width:32px;height:32px;padding:0 7px;display:inline-flex;align-items:center;justify-content:center;
  background:none;border:1px solid transparent;border-radius:7px;color:var(--ink-soft);
  font-size:14px;transition:background .14s,color .14s;
}
.fb-btn:hover{background:var(--line-soft);color:var(--ink)}
.fb-btn.on{background:var(--accent-soft);color:var(--accent)}
.fb-btn .i{width:17px;height:17px}
.fb-btn.color{position:relative;overflow:hidden}
.fb-btn.color .ca{font-weight:700;border-bottom:3px solid var(--accent);line-height:1;padding-bottom:1px}
.fb-btn.color input[type=color]{position:absolute;inset:0;opacity:0;cursor:pointer}

/* ---------- Canvas + Blatt ---------- */
.canvas{flex:1;min-width:0;overflow:auto;padding:34px 24px 120px;position:relative}

/* Calc-Lineale: Spalten (oben) & Zeilen (links) AUSSERHALB des Blatts – wie das Lineal in Write */
.calc-colruler,.calc-rowruler{display:none}
.app.calc-mode .calc-colruler,body[data-mode="write"] .calc-colruler{display:block;position:absolute;left:0;right:0;height:18px;z-index:6}
.app.calc-mode .calc-rowruler,body[data-mode="write"] .calc-rowruler{display:block;position:absolute;top:0;width:30px;z-index:6}
.app.focus .calc-colruler,.app.focus .calc-rowruler{display:none}
.cr-seg{position:absolute;top:0;height:19px;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:600;color:var(--ink-soft);background:var(--surface-2);border:1px solid var(--line);border-left:none;box-sizing:border-box;cursor:pointer;user-select:none;transition:background .1s}
.cr-seg:first-child{border-left:1px solid var(--line)}
.rr-seg{position:absolute;left:0;width:30px;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:600;color:var(--ink-soft);background:var(--surface-2);border:1px solid var(--line);border-top:none;box-sizing:border-box;cursor:pointer;user-select:none;transition:background .1s}
.cr-seg:hover,.rr-seg:hover{background:var(--line-soft)}
.cr-seg.on,.rr-seg.on{background:var(--accent);color:#fff;border-color:var(--accent)}   /* aktive Spalte/Zeile = Excel-blau */
/* „+" zum Einfügen zwischen Spalten/Zeilen (erscheint beim Drüberfahren) */
.cins,.rins{position:absolute;display:none;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-weight:700;width:15px;height:15px;border-radius:50%;font-size:13px;line-height:1;cursor:pointer;z-index:9;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.cins{right:-8px;top:50%;transform:translateY(-50%)}
.rins{bottom:-8px;left:50%;transform:translateX(-50%)}
.cr-seg:hover .cins,.rr-seg:hover .rins{display:flex}
.hdr-menu{position:fixed;z-index:200;background:var(--surface);border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 28px rgba(20,24,40,.2);padding:5px;min-width:200px}
.hdr-menu button{display:block;width:100%;text-align:left;padding:8px 11px;border:none;background:none;color:var(--ink);font-size:13px;border-radius:6px;cursor:pointer}
.hdr-menu button:hover{background:var(--surface-2)}
.hdr-menu button.del{color:#d23b3b}
.hdr-menu button.del:hover{background:#fdecec}
.cr-seg .cresize{position:absolute;right:-4px;top:0;width:8px;height:100%;cursor:col-resize;z-index:2}
.cr-seg .cresize:hover{background:var(--accent)}
.page{
  position:relative;width:210mm;min-height:297mm;margin:0 auto;background:var(--paper);
  border-radius:3px;box-shadow:var(--shadow);color:var(--paper-ink);
  display:flex;flex-direction:column;
  padding-left:var(--ml,22mm);padding-right:var(--mr,22mm);
  transition:box-shadow .3s var(--ease);
}
.page.quer{width:297mm;min-height:210mm}
/* Kopf-/Fusszeile = eigene Felder, getrennt vom Fliesstext (immer erreichbar, nie kaputt).
   Blatt = Flex-Spalte → Kopf IMMER ganz oben, Fuss IMMER ganz unten. Höhen einstellbar. */
/* Kopf-/Fusszeile dreiteilig: links, Mitte, rechts - jedes Feld mehrzeilig.
   Genau die Aufteilung, die man aus Word kennt. */
.hf{display:flex;align-items:flex-start;gap:10px;width:100%}
.hf>div{flex:1 1 0;min-width:0;outline:none}
.hf-l{text-align:left}
.hf-m{text-align:center}
.hf-r{text-align:right}
.hf>div:empty::before{content:attr(data-ph);color:var(--ink-faint);opacity:.5}
.hf>div:focus{background:rgba(79,122,60,.06)}
@media print{.hf>div:empty::before{content:''}.hf>div:focus{background:none}}
.zone{outline:none;font-size:13px;color:var(--ink-soft);position:relative;z-index:2;flex:0 0 auto}
.zone-h{padding-top:var(--mt,18mm);padding-bottom:4mm;min-height:var(--kopfH,14mm);border-bottom:1px dashed var(--line)}
.zone-f{padding-top:4mm;padding-bottom:var(--mb,18mm);min-height:var(--fussH,14mm);border-top:1px dashed var(--line)}
.zone:empty::before{content:attr(data-ph);color:var(--ink-faint)}
.zone-tag{position:absolute;left:0;top:2px;font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:var(--ink-faint);opacity:0;transition:opacity .15s;pointer-events:none}
.zone:hover .zone-tag,.zone:focus .zone-tag{opacity:1}
/* Echte Seitenlücke = volles Blatt füllen + Fuss-/Kopfzeile (editierbar, auf jeder Seite gleich) */
.editor .pgbreak-gap{cursor:default}
.editor .pgbreak-gap .pg-fill{background:var(--paper)}
.editor .pgbreak-gap.pg-tail{background:var(--paper)}
.editor .pgbreak-gap .pg-foot{display:flex;align-items:flex-end;overflow:hidden;font-size:13px;color:var(--ink-soft);padding-bottom:4mm;border-top:1px dashed var(--line);background:var(--paper);outline:none;cursor:text}
.editor .pgbreak-gap .pg-head{display:flex;align-items:flex-start;overflow:hidden;font-size:13px;color:var(--ink-soft);padding-top:4mm;border-bottom:1px dashed var(--line);background:var(--paper);outline:none;cursor:text}
.editor .pgbreak-gap .pg-foot>*,.editor .pgbreak-gap .pg-head>*{margin:0;width:100%}
.editor .pgbreak-gap .pg-mid{height:26px;margin-left:calc(-1 * var(--ml,22mm));margin-right:calc(-1 * var(--mr,22mm));background:var(--bg);box-shadow:inset 0 9px 9px -9px rgba(20,24,40,.22),inset 0 -9px 9px -9px rgba(20,24,40,.22)}
.page.first-no-hf .zone-h{visibility:hidden}   /* erste Seite: Kopfzeile leer, Rand bleibt */
.page.first-no-hf.one-page .zone-f{visibility:hidden}   /* einzige Seite: auch Fusszeile leer */
/* Seiten-Hilfslinien (rein visuell – das Tippen hängt nie davon ab) */
.guides{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;z-index:1}
.guide{position:absolute;left:0;right:0;border-top:1px dashed rgba(120,132,156,.5)}
.guide span{position:absolute;right:-19mm;top:-8px;font-size:9.5px;color:var(--ink-faint);background:var(--paper);padding:1px 6px;border-radius:4px}
.page-format{position:absolute;top:-7mm;left:0;z-index:4;font-size:9.5px;letter-spacing:.3px;color:var(--ink-faint);background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:2px 7px;pointer-events:none;white-space:nowrap;font-family:var(--font-ui)}
.editor{outline:none;font-size:16px;line-height:1.7;font-family:var(--font-ui);position:relative;z-index:2;flex:1 1 auto;padding:6mm 0}
.editor.hyphenate{hyphens:auto;-webkit-hyphens:auto;-ms-hyphens:auto}

/* ---------- Submit Slides (16:9-Folie bearbeiten) ---------- */
.present-only{display:none}
body[data-mode="slides"] .present-only{display:inline-flex}
body[data-mode="slides"] .page,body[data-mode="slides"] .page.quer{width:338mm;height:190mm;min-height:190mm;overflow:auto;padding:14mm 20mm;border-radius:7px;border-top:6px solid var(--accent)}
body[data-mode="slides"] .zone-h,body[data-mode="slides"] .zone-f,body[data-mode="slides"] .guides,body[data-mode="slides"] .vruler{display:none !important}
body[data-mode="slides"] .editor{font-size:30px;line-height:1.32;padding:0}
body[data-mode="slides"] .editor h1{font-size:56px;line-height:1.08;margin:0 0 .32em;color:var(--accent)}
body[data-mode="slides"] .editor h2{font-size:42px;margin:.2em 0 .3em}
body[data-mode="slides"] .editor h3{font-size:33px;margin:.2em 0 .3em}
body[data-mode="slides"] .editor ul,body[data-mode="slides"] .editor ol{padding-left:1.2em;margin:.25em 0}
body[data-mode="slides"] .editor li{margin:.3em 0}
body[data-mode="slides"] .editor p{margin:0 0 .5em}
body[data-mode="slides"] .editor img{max-width:100%}
.slide-empty{color:var(--ink-faint)}
/* Sprechnotizen-Leiste (nur Submit Slides) */
.slidenotes{display:none}
.app.slides-mode .slidenotes{display:flex;align-items:flex-start;gap:10px;flex:0 0 auto;padding:8px 18px;background:var(--surface);border-top:1px solid var(--line)}
.slidenotes .sn-lbl{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-faint);padding-top:7px;white-space:nowrap}
.slidenotes textarea{flex:1;min-height:38px;max-height:120px;resize:vertical;border:1px solid var(--line);background:var(--surface-2);border-radius:7px;padding:7px 10px;font-family:var(--font-ui);font-size:13px;color:var(--ink);line-height:1.45}
.slidenotes textarea:focus{outline:none;border-color:var(--accent)}

/* ---------- Präsentationsmodus (Vollbild) ---------- */
.present-overlay{position:fixed;inset:0;z-index:200;background:#0b0d12;display:flex;flex-direction:column}
.present-overlay[hidden]{display:none}
.present-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:3vh 3vw;cursor:pointer;overflow:hidden}
.present-slide{aspect-ratio:16/9;width:min(96vw,calc(94vh*16/9));background:#fff;color:#13161d;border-radius:6px;box-shadow:0 30px 90px rgba(0,0,0,.6);padding:4.5% 6%;overflow:hidden;font-size:2.5vw;line-height:1.32;box-sizing:border-box}
.present-slide h1{font-size:5vw;line-height:1.08;margin:0 0 .32em;color:#e8772e}
.present-slide h2{font-size:3.7vw;margin:.2em 0 .3em}
.present-slide h3{font-size:3vw;margin:.2em 0 .3em}
.present-slide ul,.present-slide ol{padding-left:1.2em;margin:.2em 0}
.present-slide li{margin:.3em 0}
.present-slide p{margin:0 0 .5em}
.present-slide img{max-width:100%;max-height:70vh}
.present-slide table{border-collapse:collapse;width:100%}.present-slide td,.present-slide th{border:1px solid #ccc;padding:.3em .5em}
.present-notes{flex:0 0 auto;max-height:26vh;overflow:auto;padding:14px 22px;background:#171a22;color:#dfe3ee;font-size:1.05rem;line-height:1.5;white-space:pre-wrap;border-top:1px solid #262a36}
.present-notes[hidden]{display:none}
.present-notes[data-empty]::before{content:'Keine Notizen zu dieser Folie.';color:#6b7488;font-style:italic}
.present-bar{display:flex;align-items:center;gap:12px;padding:9px 18px;background:#13161d;border-top:1px solid #262a36}
.present-bar .icon-btn{color:#e7e9f0;font-size:22px}
.present-bar .ghost-btn{color:#e7e9f0;border-color:#363b49}
.present-num{font-size:13px;color:#9aa3b8;min-width:64px;text-align:center}

/* ---------- Folien-Druckvorschau (Spezifität .pv-page.pv-slide schlägt .pv-page) ---------- */
.pv-page.pv-slide{width:254mm;min-height:143mm;height:143mm;padding:14mm 18mm;display:block;overflow:hidden}
.pv-page.pv-slide .pv-slide-c{font-size:13pt;line-height:1.32}
.pv-page.pv-slide h1{font-size:25pt;color:#e8772e;margin:0 0 .3em}
.pv-page.pv-slide h2{font-size:19pt;margin:.2em 0 .3em}
.pv-page.pv-slide h3{font-size:15pt;margin:.2em 0 .3em}
.pv-page.pv-slide .pv-num{position:absolute;right:12mm;bottom:7mm;font-size:9pt;color:#999}

/* ---------- Deck-Druck (eine Querformat-Seite pro Folie) ---------- */
#deckPrint{display:none}

/* ---------- Lineal ---------- */
.ruler-wrap{display:flex;justify-content:center;padding:6px 24px 0;background:var(--bg);overflow:hidden;flex:0 0 auto}
.ruler{position:relative;height:22px;background:var(--surface);border:1px solid var(--line);border-radius:5px}
.rtick{position:absolute;top:0;bottom:0;border-left:1px solid var(--line)}
.rtick span{position:absolute;top:3px;left:3px;font-size:8.5px;color:var(--ink-faint)}
.rmargin{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,rgba(120,132,156,.10),rgba(120,132,156,.10) 3px,transparent 3px,transparent 6px)}
.rmargin.left{left:0} .rmargin.right{right:0}
.rhandle{position:absolute;top:-2px;width:12px;height:26px;margin-left:-6px;cursor:ew-resize;z-index:3}
.rhandle::after{content:'';position:absolute;left:5px;top:3px;width:2px;height:20px;background:var(--accent);border-radius:2px}
.rhandle:hover::after{width:3px;left:4.5px}
.rtab{position:absolute;bottom:1px;width:0;height:0;margin-left:-4px;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:6px solid var(--ink-soft);cursor:pointer}
/* Spaltengrenze im Lineal: die Spalten existieren auch in Write - sie sind die Tabstopps,
   nur als Zellen gedacht. Im Lineal sichtbar, damit das Blatt selbst frei von Linien bleibt. */
.rcol{position:absolute;top:0;bottom:0;width:9px;margin-left:-4px;cursor:col-resize}
.rcol::before{content:'';position:absolute;left:4px;top:2px;bottom:2px;width:1px;background:var(--accent);opacity:.45}
.rcol::after{content:'';position:absolute;left:1px;bottom:0;width:7px;height:3px;background:var(--accent);opacity:.75}
.rcol:hover::before,.rcol:hover::after{opacity:1}
.editor:empty::before{content:attr(data-ph);color:var(--ink-faint)}
.editor>*:first-child{margin-top:0}
.editor h1{font-size:30px;font-weight:700;line-height:1.2;margin:.4em 0 .35em;letter-spacing:-.4px}
.editor h2{font-size:23px;font-weight:600;line-height:1.25;margin:1.1em 0 .3em;letter-spacing:-.2px}
.editor h3{font-size:18.5px;font-weight:600;margin:1em 0 .25em}
.editor p{margin:0 0 .85em}
.editor ul,.editor ol{margin:0 0 .85em;padding-left:1.5em}
.editor li{margin:.2em 0}
.editor blockquote{margin:.8em 0;padding:.4em 0 .4em 1.1em;border-left:3px solid var(--accent);color:var(--ink-soft);font-style:italic}
.editor pre{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:14px 16px;font-family:'Courier New',monospace;font-size:14px;overflow-x:auto;margin:.8em 0}
.editor a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.editor table{border-collapse:collapse;width:100%;margin:.8em 0}
.editor td,.editor th{border:1px solid var(--line);padding:7px 10px;min-width:40px}
/* Aus PDF konvertierte Offerten/Rechnungen: ruhige Positionsliste statt Excel-Gitter */
.editor .pdftab,.pv-page .pdftab{border:none;margin:.5em 0;width:100%}
.editor .pdftab td,.pv-page .pdftab td{border:none;border-bottom:1px solid var(--line-soft);padding:4px 0 4px 12px;vertical-align:top;min-width:0}
.editor .pdftab td:first-child,.pv-page .pdftab td:first-child{padding-left:0}
.editor .pdftab tr:last-child td,.pv-page .pdftab tr:last-child td{border-bottom:none}
.editor .pdftab td[colspan],.pv-page .pdftab td[colspan]{border-bottom:none;padding-top:8px}   /* Abschnitts-Überschriften: kein Trennstrich, etwas Luft darüber */
.editor .pdftab tr.tot td,.pv-page .pdftab tr.tot td{font-weight:700;border-top:1.5px solid var(--ink-soft);border-bottom:none;padding-top:7px}   /* Total-/Summenzeile: fett + Linie darüber */
/* Feinschliff Positionsliste: Ziffern richten sich untereinander aus, mehr Luft zwischen den Spalten */
.editor .pdftab td,.pv-page .pdftab td{font-variant-numeric:tabular-nums}
.editor .pdftab td:not(:first-child),.pv-page .pdftab td:not(:first-child){padding-left:20px}
.editor .pdftab td[colspan],.pv-page .pdftab td[colspan]{padding-left:0}
.editor img{max-width:100%;border-radius:6px}
.editor:focus{outline:none}

/* ---------- Statusleiste ---------- */
.statusbar{
  display:flex;align-items:center;gap:16px;padding:6px 18px;
  background:var(--surface);border-top:1px solid var(--line);
  font-size:12px;color:var(--ink-faint);
}
.wfbar{display:none;align-items:center;gap:8px;padding:6px 14px;background:var(--surface);border-bottom:1px solid var(--line)}
body[data-mode="write"] .wfbar{display:flex}
.app.focus .wfbar{display:none}
.wf-hint{color:var(--ink-faint);font-size:11px;white-space:nowrap}
.editor .fx{background:rgba(31,157,87,.08);border-radius:2px;padding:0 1px}   /* berechnete Formel-Zelle */
/* „Gitter" ein → Write-Blatt zeigt das volle Raster (Spalten- + Zeilenlinien) wie Calc */
.app.grid-lines .editor .colsep{border-right-color:#9fb2d8}
.app.grid-lines .editor>p,.app.grid-lines .editor>h1,.app.grid-lines .editor>h2,.app.grid-lines .editor>h3,.app.grid-lines .editor>blockquote,.app.grid-lines .editor>pre,.app.grid-lines .editor>ul,.app.grid-lines .editor>ol{border-bottom:1px solid var(--line);margin-bottom:0;padding-bottom:2px}
.app.grid-lines .editor>*:first-child{border-top:1px solid var(--line)}
/* Calc = Grundgerüst. „Linien aus" → Dokumentansicht: Gitterlinien + Köpfe unsichtbar, sonst identisch */
.cellpos{min-width:62px;color:var(--ink-soft);font-weight:600;font-variant-numeric:tabular-nums}
.cell-hi{position:fixed;pointer-events:none;z-index:40;border:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:3px}
.grid-toggle{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-soft);border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;transition:.15s}
.grid-toggle .i{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7}
.grid-toggle:hover{border-color:var(--accent)}
.grid-toggle.on{background:var(--accent);border-color:var(--accent);color:#fff}
.statusbar .seg.orient{padding:2px;gap:2px}
.statusbar .seg.orient button{padding:4px 10px;font-size:12px;white-space:nowrap}
.zoombox{display:flex;align-items:center;gap:1px}
.zoom-val{min-width:56px;background:none;border:none;color:var(--ink-soft);font-size:12px;font-weight:600;padding:5px 6px;border-radius:6px}
.zoom-val:hover{background:var(--line-soft);color:var(--ink)}
.status-sel{height:26px;border:1px solid var(--line);background:var(--surface-2);border-radius:7px;color:var(--ink);font-family:inherit;font-size:12px;padding:0 6px;cursor:pointer}
.status-sel:focus{outline:none;border-color:var(--accent)}

/* Einfügen-Knopf + Menü-Detail */
.fb-text-btn{height:32px;padding:0 11px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--ink-soft);font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.fb-text-btn:hover{background:var(--line-soft);color:var(--ink)}
.fb-text-btn .i{width:15px;height:15px}
.fb-text-btn .caret{color:var(--ink-faint);font-size:11px}
.menu .mi{display:inline-block;width:20px;text-align:center}
.menu-sep{height:1px;background:var(--line);margin:5px 6px;display:block}
.rib-sep{width:1px;height:18px;background:var(--line);margin:0 5px;flex:none;display:inline-block;vertical-align:middle}   /* Trenner zwischen Befehlsgruppen im Menueband */

/* Einklappbare Icon-Leiste (links) – alles sichtbar, Hover = Info via title */
.app.side-rail{grid-template-columns:58px var(--nav-w) minmax(0,1fr) 0}
.app.side-rail.insp-open{grid-template-columns:58px var(--nav-w) minmax(0,1fr) var(--insp-w)}
.app.side-rail .brand-word,.app.side-rail .new-doc span,
.app.side-rail .snav span,.app.side-rail .side-list,.app.side-rail .foot-link span,.app.side-rail .ver{display:none}
.app.side-rail .side-brand{justify-content:center;padding:16px 0 10px}
.app.side-rail .side-collapse{transform:rotate(180deg)}   /* eingeklappt: Pfeil zeigt nach aussen (Aufklappen) */
.app.side-rail .new-doc{justify-content:center;margin:6px 11px;padding:11px 0}
.app.side-rail .side-nav{padding:0 9px}
.app.side-rail .snav{justify-content:center;padding:10px 0}
.app.side-rail .side-foot{justify-content:center;flex-wrap:wrap}

/* Rechtsklick-Menü */
.ctxmenu{position:fixed;z-index:85;min-width:212px;max-height:82vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);padding:6px;animation:bubbleIn .1s var(--ease)}
.ctxmenu button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;padding:8px 10px;background:none;border:none;border-radius:7px;color:var(--ink-soft);font-size:13px}
.ctxmenu button:hover{background:var(--line-soft);color:var(--ink)}
.ctxmenu button .km{color:var(--ink-faint);font-size:11px;font-variant-numeric:tabular-nums}
.ctxmenu .sep{height:1px;background:var(--line);margin:5px 4px}
.ctxmenu .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--ink-faint);padding:7px 10px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:212px}
.ctxmenu button.del{color:var(--danger)}
.ctxmenu button.del:hover{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}

/* ---------- Inspector ---------- */
.inspector{background:var(--side);border-left:1px solid var(--line);overflow-y:auto;min-width:0}
.insp-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-weight:600;font-size:13px;border-bottom:1px solid var(--line)}
.insp-body{padding:6px 16px 24px}
.insp-block{padding:14px 0;border-bottom:1px solid var(--line-soft)}
.insp-lbl{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--ink-faint);margin-bottom:9px}
.outline a{display:block;padding:5px 8px;border-radius:6px;font-size:12.5px;color:var(--ink-soft);text-decoration:none;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.outline a:hover{background:var(--line-soft);color:var(--ink)}
.outline a.lv2{padding-left:18px} .outline a.lv3{padding-left:28px;font-size:12px}
.seg{display:flex;background:var(--line-soft);border-radius:8px;padding:3px;gap:2px}
.seg button{flex:1;border:none;background:none;padding:6px 4px;border-radius:6px;font-size:12px;color:var(--ink-soft);font-weight:500}
.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.stat-cell{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 11px}
.stat-cell .sc-n{font-size:17px;font-weight:700;color:var(--ink)}
.stat-cell .sc-l{font-size:11px;color:var(--ink-faint)}
.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 10px}
.setup-grid label{display:flex;flex-direction:column;gap:3px}
.setup-grid .cap{font-size:11px;color:var(--ink-soft)}
.setup-grid .val{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--ink-faint)}
.setup-check{display:flex;align-items:center;gap:7px;margin:10px 0 4px;font-size:12px;color:var(--ink-soft);cursor:pointer}
.setup-check input{width:15px;height:15px;accent-color:var(--accent)}
.setup-grid input{width:48px;border:1px solid var(--line);background:var(--surface-2);border-radius:6px;padding:4px 6px;font-size:12px;color:var(--ink);font-family:inherit}
.setup-grid input:focus{outline:none;border-color:var(--accent)}
.setup-reset{margin-top:11px;width:100%;border:1px solid var(--line);background:none;color:var(--ink-soft);font-size:12px;padding:7px;border-radius:7px}
.setup-reset:hover{background:var(--line-soft);color:var(--ink)}

/* ---------- Fokusmodus ---------- */
.app.focus .topbar,.app.focus .ribtabs,.app.focus .formatbar,.app.focus .statusbar,
.app.focus .side,.app.focus .inspector{display:none}
.app.focus .canvas{padding-top:70px}
.app.focus .slidenotes{display:none}
.app.focus .page{box-shadow:0 20px 70px rgba(20,24,40,.10)}
.focus-exit{
  position:fixed;top:18px;right:18px;z-index:60;width:40px;height:40px;border-radius:10px;
  background:var(--surface);border:1px solid var(--line);color:var(--ink-soft);
  display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow);
  opacity:.35;transition:opacity .2s;
}
.focus-exit:hover{opacity:1}

.fb-btn.color.hl .ca{border-bottom-color:#ffe066}

/* ---------- Suchleiste ---------- */
.findbar{
  display:flex;align-items:center;gap:6px;padding:8px 16px;flex-wrap:wrap;
  background:var(--surface);border-bottom:1px solid var(--line);
}
.findbar .find-div{width:1px;align-self:stretch;background:var(--line);margin:2px 4px}
.findbar .fb-text{font-size:12px;padding:6px 11px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--ink);cursor:pointer;font-family:inherit;white-space:nowrap}
.findbar .fb-text:hover{border-color:var(--accent);color:var(--accent)}
.findbar .i{width:16px;height:16px;color:var(--ink-faint)}
.findbar input{
  flex:1 1 200px;min-width:150px;max-width:320px;border:1px solid var(--line);background:var(--surface-2);
  border-radius:7px;padding:7px 10px;font-family:inherit;font-size:13px;color:var(--ink);
}
.findbar input:focus{outline:none;border-color:var(--accent)}
.find-count{font-size:12px;color:var(--ink-faint);min-width:48px}
.icon-btn.sm{width:28px;height:28px;font-size:15px}

/* ---------- Schwebe-Toolbar ---------- */
.bubble{
  position:fixed;z-index:70;display:flex;gap:2px;padding:4px;
  background:var(--ink);border-radius:9px;box-shadow:0 8px 28px rgba(0,0,0,.28);
  animation:bubbleIn .12s var(--ease);
}
body[data-theme="dark"] .bubble{background:#2a3140;border:1px solid var(--line)}
@keyframes bubbleIn{from{opacity:0;transform:translateY(4px)}to{opacity:1}}
.bb{
  min-width:30px;height:30px;padding:0 8px;border:none;background:none;color:#fff;
  border-radius:6px;font-size:14px;display:inline-flex;align-items:center;justify-content:center;
}
.bb:hover{background:rgba(255,255,255,.15)}
.bb .i{width:16px;height:16px;stroke:#fff}
.bb-hl{font-weight:700;border-bottom:3px solid #ffe066;line-height:1;padding-bottom:1px}

/* ---------- Tabellen-Werkzeuge ---------- */
.tabletools{
  position:fixed;z-index:65;display:flex;gap:3px;padding:4px;
  background:var(--surface);border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);
}
.tabletools button{
  border:none;background:none;color:var(--ink-soft);font-size:12px;font-weight:500;
  padding:5px 9px;border-radius:6px;
}
.tabletools button:hover{background:var(--line-soft);color:var(--ink)}

/* ---------- Bild im Editor ---------- */
.editor img{cursor:default;transition:outline .12s}
.editor img.sel{outline:3px solid var(--accent);outline-offset:2px}
.editor mark{background:#ffe066;color:inherit;padding:.05em .1em;border-radius:3px}
body[data-theme="dark"] .editor mark{background:#7a6a1e;color:#fff}
.editor hr{border:none;border-top:1px solid var(--line);margin:1.2em 0}
/* Spaltentrenner (Tab = Spalte) – verbindet Write- und Calc-Ansicht */
.editor .colsep{display:inline-block;min-width:30px;text-align:center;color:var(--ink-faint);opacity:.45;user-select:none;font-size:11px;vertical-align:baseline;border-right:1.5px solid var(--line)}   /* Spaltenlinie an der Tab-Position – das Raster ist auch in Write sichtbar */
/* Automatisches Inhaltsverzeichnis */
.editor .toc{position:relative;border:1px solid var(--line);border-radius:10px;padding:14px 18px 16px;margin:1em 0;background:var(--surface-2);user-select:none}
.editor .toc-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.editor .toc-title{font-weight:700;font-size:15px;font-family:var(--font-ui);letter-spacing:.2px}
.editor .toc-tools{display:flex;gap:4px;opacity:0;transition:opacity .15s}
.editor .toc:hover .toc-tools{opacity:1}
.editor .toc-btn{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink-soft);font-size:13px;cursor:pointer;line-height:1}
.editor .toc-btn:hover{border-color:var(--accent);color:var(--accent)}
.editor .toc-list{display:flex;flex-direction:column;gap:1px}
.editor .toc a{display:block;color:var(--paper-ink);text-decoration:none;padding:3px 6px;cursor:pointer;font-size:14px;font-family:var(--font-ui);border-radius:5px;border-left:2px solid transparent}
.editor .toc a:hover{color:var(--accent);background:var(--accent-soft);border-left-color:var(--accent)}
.editor .toc .toc-l2{padding-left:20px;font-size:13.5px}
.editor .toc .toc-l3{padding-left:36px;font-size:13px;color:var(--ink-soft)}
.editor .toc-empty{color:var(--ink-faint);font-size:13px;font-style:italic}

/* Rechtschreibprüfung: rote Wellenlinie unter unbekannten Wörtern */
.editor .sp-err{text-decoration:underline wavy #e3534a;text-decoration-skip-ink:none;-webkit-text-decoration:underline wavy #e3534a}
body[data-theme="dark"] .editor .sp-err{text-decoration-color:#ff7a70}

/* ---------- Seiten-Reiter ---------- */
.pagetabs{display:none;align-items:center;gap:5px;padding:6px 14px;background:var(--surface);border-bottom:1px solid var(--line);overflow-x:auto}
.app.slides-mode .pagetabs{display:flex}   /* Seiten-Reiter nur in Slides (Folien-Navigation); Write paginiert automatisch */
.ptab{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink-soft);font-size:12.5px;font-weight:500;white-space:nowrap}
.ptab:hover{background:var(--line-soft);color:var(--ink)}
.ptab.active{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.ptab .pt-ico{font-size:13px}
.ptab .pt-del{margin-left:3px;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;color:var(--ink-faint);font-size:13px}
.ptab .pt-del:hover{background:rgba(214,69,61,.15);color:#d6453d}
.ptadd{display:inline-flex;align-items:center;gap:4px;padding:6px 11px;border:1px dashed var(--line);border-radius:8px;background:none;color:var(--ink-soft);font-size:12.5px;font-weight:500;white-space:nowrap}
.ptadd:hover{background:var(--line-soft);color:var(--ink);border-style:solid}

/* ---------- Modus-Umschalter (oben links) ---------- */
.mode-switch{position:relative}
.mode-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);font-family:var(--font-brand);font-weight:600;font-size:13.5px}
.mode-pill:hover{background:var(--line-soft)}
.mode-ico{font-size:14px}
.mode-name{color:var(--accent)}
.mode-pill .caret{color:var(--ink-faint);font-size:11px}
.mode-menu{min-width:230px}
.mode-menu button{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;text-align:left}
.mode-menu .mm-t{font-weight:600;color:var(--ink)}
.mode-menu .mm-sub{font-size:11px;color:var(--ink-faint)}
.mode-menu .mi{font-size:15px;text-align:center}

/* ---------- Submit Calc: Gitter im SELBEN A4-Blatt wie Write ---------- */
/* In Calc nur das Text-Ribbon gegen die Formelzeile tauschen; Blatt/Zoom/Lineal/Kopf-Fuss bleiben = Write */
.app.calc-mode .editor{display:none}      /* Menüband bleibt sichtbar – Formatierung wirkt auf markierte Zellen */
.pagegrid{display:none}
.app.calc-mode .pagegrid{display:block;flex:1 1 auto;position:relative;z-index:2;outline:none;padding:6mm 0;font-size:14px;line-height:1.5}

/* Formelzeile (wie Excel) – ersetzt das Ribbon im Calc-Modus */
.calcbar{display:none;align-items:center;gap:8px;padding:7px 14px;background:var(--surface);border-bottom:1px solid var(--line)}
.app.calc-mode .calcbar{display:flex}
.cell-ref{min-width:48px;font-weight:600;font-size:13px;color:var(--ink);text-align:center;border:1px solid var(--line);border-radius:6px;padding:5px 6px;background:var(--surface-2)}
.calcbar .fx{font-style:italic;color:var(--ink-faint);font-size:13px}
.formula-input{flex:1;border:1px solid var(--line);background:var(--surface-2);border-radius:7px;padding:7px 10px;font-family:var(--font-ui);font-size:13px;color:var(--ink)}
.formula-input:focus{outline:none;border-color:var(--accent)}
.calc-stat{font-size:12px;color:var(--ink-soft);white-space:nowrap;font-variant-numeric:tabular-nums;padding:0 8px}
.cb-fmt{display:inline-flex;gap:3px;padding-left:8px;margin-left:2px;border-left:1px solid var(--line)}
.cb-fmt .fb-btn{min-width:30px}

/* Das Gitter füllt die Druckbreite des Blatts (Ränder kommen vom .page) */
.cgrid{width:100%;border-collapse:collapse;table-layout:fixed;font-size:inherit}
.cgrid col.cg-gut{width:30px}
.cgrid th,.cgrid td{border:1px solid var(--line)}   /* klare Gitterlinien wie Excel */
.cgrid th{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
/* Ziffern gleich breit: nur so stehen Betraege in einer Spalte sauber untereinander */
.cgrid td{font-variant-numeric:tabular-nums;background:var(--paper);color:var(--paper-ink);padding:2px 7px;height:23px;cursor:cell;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;vertical-align:middle}   /* kompakte Excel-Zeilen, vertikal zentriert */
/* Spalten-/Zeilenköpfe = das Lineal in Calc: bleiben beim Scrollen oben/links stehen */
.cgrid thead th{position:sticky;top:0;z-index:3;background:var(--surface-2);color:var(--ink-soft);font-size:.7em;font-weight:600;text-align:center;height:17px;letter-spacing:.3px;border-color:var(--line)}
.cgrid th.cg-col{position:sticky}
.cgrid .cresize{position:absolute;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;z-index:6}
.cgrid .cresize:hover{background:var(--accent)}
.calc-rowruler .rresize{position:absolute;left:0;right:0;bottom:-3px;height:7px;cursor:row-resize;z-index:6}
.calc-rowruler .rresize:hover{background:var(--accent)}
.calcbar .color .fillca{border-bottom:3px solid #ffd54a}
.cgrid .cg-row{position:sticky;left:0;z-index:2;background:var(--surface-2);color:var(--ink-soft);font-size:.7em;font-weight:600;text-align:center;vertical-align:middle;border-color:var(--line)}
.cgrid .cg-corner{position:sticky;left:0;top:0;z-index:4;background:var(--surface-2);border-color:var(--line)}
.cgrid thead th.cg-col.colsel,.cgrid .cg-row.rowsel{background:var(--accent-soft);color:var(--accent)}
/* Gitter unsichtbar: das Blatt bleibt ein Raster, sieht aber wie ein Dokument aus */
.app.lines-off .cgrid th,.app.lines-off .cgrid td{border-color:transparent}
/* Dokumentmodus: es soll sich wie Word anfuehlen - nur ein Cursor, kein Zellrahmen,
   kein Zellzeiger, keine Markierungsfarbe. Der Text steht einfach auf dem Blatt. */
.app.lines-off .cgrid td{cursor:text;vertical-align:top}
.app.lines-off .cgrid td.sel{background:none}
.app.lines-off .cgrid td.active{background:none;box-shadow:none}
.app.lines-off /* Ausfuellkaestchen an der Ecke der Markierung (Geste aus Excel) */
.cgrid td.active{position:relative}
.cgrid .fillgrip{position:absolute;right:-3px;bottom:-3px;width:7px;height:7px;background:var(--accent);border:1px solid #fff;cursor:crosshair;z-index:6}
.cgrid td.fillziel{outline:1px dashed var(--accent);outline-offset:-1px}
/* Zellen, die gerade per Klick in eine Formel gezeigt werden */
/* Zeile mit manuellem Seitenumbruch: feine Marke, druckt nicht mit */
.cgrid tr.pgbefore>td{border-top:2px dashed var(--accent)}
@media print{.cgrid tr.pgbefore>td{border-top:none}}
.cgrid td.pmref{outline:2px dashed var(--accent);outline-offset:-2px;background:var(--accent-soft)}
.cgrid td.celledit{outline:none;background:none;white-space:pre-wrap;overflow:visible}
.app.lines-off .cgrid td.sel::selection,.app.lines-off .cgrid td::selection{background:var(--accent-soft)}
.app.lines-off #cellHi{display:none}
.app.lines-off .calc-colruler,.app.lines-off .calc-rowruler{display:none}
.cgrid td.textcell{text-align:left;vertical-align:top}                 /* Absatz/Überschrift über volle Blattbreite (wie Write) – gleiche Grössen & Abstände */
.cgrid td.textcell.h1{font-size:1.875em;font-weight:700;line-height:1.2;letter-spacing:-.02em;padding-top:.3em;padding-bottom:.35em}
.cgrid td.textcell.h2{font-size:1.44em;font-weight:600;line-height:1.25;letter-spacing:-.01em;padding-top:.7em;padding-bottom:.3em}
.cgrid td.textcell.h3{font-size:1.16em;font-weight:600;padding-top:.65em;padding-bottom:.25em}
.cgrid td.num{text-align:right;font-variant-numeric:tabular-nums}
/* Calc-Seitenlücke (mehrere A4-Blätter) */
.cgrid tr.cgap td{padding:0;border:none;background:var(--paper)}
.cgrid tr.cgap .pg-fill{background:var(--paper)}
.cgrid tr.cgap .pg-foot{display:flex;align-items:flex-end;overflow:hidden;font-size:13px;color:var(--ink-soft);padding-bottom:4mm;border-top:1px dashed var(--line);background:var(--paper)}
.cgrid tr.cgap .pg-head{display:flex;align-items:flex-start;overflow:hidden;font-size:13px;color:var(--ink-soft);padding-top:4mm;border-bottom:1px dashed var(--line);background:var(--paper)}
.cgrid tr.cgap .pg-mid{height:26px;margin-left:calc(-1 * var(--ml,22mm));margin-right:calc(-1 * var(--mr,22mm));background:var(--bg);box-shadow:inset 0 9px 9px -9px rgba(20,24,40,.22),inset 0 -9px 9px -9px rgba(20,24,40,.22)}
.cgrid td.err{color:#d6453d}
.cgrid td.sel{background:var(--accent-soft)}
/* Anker-/aktive Zelle bleibt WEISS im markierten Block (Excel-Gefühl) + klarer, nie abgeschnittener Fokusring */
.cgrid td.active{background:var(--paper);box-shadow:inset 0 0 0 2px var(--accent);position:relative;z-index:1}
.cgrid td.celledit{outline:2px solid var(--accent);background:var(--paper);white-space:nowrap;overflow:hidden;cursor:text;z-index:5;position:relative}   /* kein Umbruch → live über die Zelle hinaus, nimmt nur nötige Spalten auf */

/* ---------- Vertikales Lineal ---------- */
.vruler{position:absolute;top:0;bottom:0;left:calc(3mm - var(--ml,22mm));width:6mm;z-index:3;pointer-events:none}
.vtick{position:absolute;left:0;right:0;border-top:1px solid var(--line)}
.vtick span{position:absolute;left:0;top:1px;font-size:7px;color:var(--ink-faint)}
.vhandle{position:absolute;left:-3mm;width:12mm;height:12px;margin-top:-6px;cursor:ns-resize;pointer-events:auto;z-index:4}
.vhandle::after{content:'';position:absolute;left:1.5mm;right:1.5mm;top:5px;height:2px;background:var(--accent);border-radius:2px}
.vhandle:hover::after{height:3px}

/* ---------- Druckvorschau ---------- */
.preview-overlay{position:fixed;inset:0;z-index:100;background:rgba(18,22,36,.6);display:flex;flex-direction:column}
.preview-bar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line)}
.pv-title{font-weight:600;font-size:14px}
.pv-info{font-size:12px;color:var(--ink-faint)}
.preview-scroll{flex:1;overflow:auto;padding:30px 20px 60px;display:flex;flex-direction:column;align-items:center;gap:22px}
.pv-page{width:210mm;min-height:297mm;background:#fff;color:#1a1e27;box-shadow:0 12px 44px rgba(0,0,0,.35);padding:0 16mm;position:relative;display:flex;flex-direction:column;font-size:11pt;line-height:1.5}
.pv-page.quer{width:297mm;min-height:210mm}
.pv-h{padding:12mm 0 4mm;border-bottom:1px solid #eee;color:#555;min-height:16mm}
.pv-c{flex:1;padding:6mm 0}
.pv-c>*:first-child{margin-top:0}
.pv-f{padding:4mm 0 12mm;border-top:1px solid #eee;color:#555;min-height:16mm;display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.pv-num{color:#999;font-size:10px;white-space:nowrap}
.pv-page h1{font-size:22pt;margin:.3em 0}.pv-page h2{font-size:16pt;margin:.4em 0 .2em}.pv-page h3{font-size:13pt;margin:.4em 0 .2em}
.pv-page p{margin:0 0 .6em}.pv-page ul,.pv-page ol{padding-left:1.4em;margin:0 0 .6em}
.pv-page table{border-collapse:collapse;width:100%;margin:.5em 0}.pv-page td,.pv-page th{border:1px solid #ddd;padding:5px 8px}
.pv-page img{max-width:100%}
.pv-page .sp-err{text-decoration:none}
.preview-scroll.hy .pv-c{hyphens:auto;-webkit-hyphens:auto}
.pv-page blockquote{border-left:3px solid var(--accent);padding-left:12px;color:#555;font-style:italic;margin:.6em 0}
.pv-page .toc{border:1px solid #e3e3e3;border-radius:8px;padding:12px 16px;background:#fafafa}
.pv-page .toc a{display:block;color:#1a1e27;text-decoration:none;padding:2px 0}
.pv-grid{border-collapse:collapse;width:auto;max-width:100%;font-size:11pt;line-height:1.7}
.pv-grid td{border:none;padding:0 1.4em .5em 0;vertical-align:top;color:#1a1e27}
.pv-grid td:last-child{padding-right:0}
.pv-grid td.num{text-align:right;font-variant-numeric:tabular-nums}

/* ---------- Toast ---------- */
#toast-root{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:90;display:flex;flex-direction:column;gap:8px;align-items:center}
.toast{
  background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;font-size:13px;
  box-shadow:0 8px 30px rgba(0,0,0,.25);animation:toastIn .25s var(--ease);
}
body[data-theme="dark"] .toast{background:#2a3140}
@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- Responsiv ---------- */
@media (max-width:760px){
  .app{grid-template-columns:0 0 minmax(0,1fr) 0 !important}
  .side{position:fixed;top:0;left:0;bottom:0;width:var(--side-w);z-index:50;transform:translateX(-100%);transition:transform .26s var(--ease)}
  .app.side-mobile .side{transform:none;box-shadow:var(--shadow)}
  .topbar-side{display:inline-flex}
  .inspector{display:none}
  .canvas{padding:24px 14px 90px}
  .ghost-btn span{display:none}
  .ghost-btn{padding:7px 9px}
  .save-state .lbl{display:none}
  .doc-title{width:auto;flex:1;min-width:0}
}

/* ---------- Submit PDF (Dialog) ---------- */
.pdf-overlay{position:fixed;inset:0;z-index:160;background:rgba(18,22,36,.55);display:flex;align-items:center;justify-content:center;padding:20px}
.pdf-overlay[hidden]{display:none}
.pdf-card{width:min(560px,96vw);max-height:90vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.pdf-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.pdf-brand{font-family:var(--font-brand);font-weight:700;font-size:17px}
.pdf-brand .bw-a{color:var(--ink)}.pdf-brand .bw-b{color:#e8412e}
.pdf-body{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px}
@media (max-width:560px){.pdf-body{grid-template-columns:1fr}}
.pdf-sec{border:1px solid var(--line);border-radius:11px;padding:16px;background:var(--surface-2)}
.pdf-ico{font-size:22px;color:var(--accent);margin-bottom:4px}
.pdf-sec h3{margin:2px 0 6px;font-size:15px}
.pdf-sec p{margin:0 0 12px;font-size:12.5px;color:var(--ink-soft);line-height:1.45}
.pdf-targets{display:flex;flex-direction:column;gap:6px}
.pdf-targets button{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:13px;font-family:inherit;cursor:pointer;text-align:left}
.pdf-targets button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.pdf-targets .pt-ic{font-size:15px}
.pdf-status{margin-top:12px;font-size:11.5px;color:var(--ink-faint);line-height:1.4}

/* ---------- PDF-Editor (Annotieren) ---------- */
.pdf-sec-wide{grid-column:1 / -1}
.pdf-viewer{position:fixed;inset:0;z-index:170;background:#3a4150;display:flex;flex-direction:column}
.pdf-viewer[hidden]{display:none}
.pdf-toolbar{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap}
.pdf-vtitle{font-weight:600;font-size:13px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdf-tools{display:inline-flex;gap:3px;padding:0 6px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.pdf-tools button{width:32px;height:30px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);font-size:15px;cursor:pointer}
.pdf-tools button.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.pdf-col{position:relative;width:30px;height:30px;border:1px solid var(--line);border-radius:7px;overflow:hidden;cursor:pointer;display:inline-block}
.pdf-col #pdfColorDot{position:absolute;inset:0;background:#e8412e}
.pdf-col input[type=color]{position:absolute;inset:-4px;opacity:0;cursor:pointer}
.pdf-main{flex:1;display:flex;min-height:0}
.pdf-thumbs{width:172px;flex:0 0 auto;overflow:auto;padding:12px 10px;background:#2f3540;display:flex;flex-direction:column;gap:10px}
.pdf-thumb{border:2px solid transparent;border-radius:6px;background:#fff;padding:0;cursor:pointer;position:relative;line-height:0}
.pdf-thumb img{width:100%;display:block;border-radius:4px}
.pdf-thumb span{position:absolute;bottom:3px;right:4px;font-size:10px;color:#fff;background:rgba(0,0,0,.55);border-radius:3px;padding:0 4px;line-height:1.4}
.pdf-thumb:hover{border-color:var(--accent)}
.pdf-zoom{display:inline-flex;align-items:center;gap:1px;border-left:1px solid var(--line);border-right:1px solid var(--line);padding:0 6px}
.pdf-pages{flex:1;overflow:auto;padding:24px;display:flex;flex-direction:column;align-items:center;gap:20px}
.pdf-pagewrap{position:relative;background:#fff;box-shadow:0 10px 40px rgba(0,0,0,.4);flex:0 0 auto}
.pdf-pagewrap .pdf-base{position:absolute;inset:0;width:100%;height:100%}
.pdf-pagewrap .pdf-anno{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}
.pdf-note{position:absolute;min-width:64px;max-width:250px;background:rgba(255,249,196,.96);border:1px solid #e8412e;border-left-width:3px;border-radius:5px;font:500 14px/1.35 var(--font-ui);color:#333;z-index:5;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.pdf-note-grip{cursor:move;color:#b9a93a;font-size:11px;line-height:1;padding:2px 4px 0;user-select:none}
.pdf-note-body{outline:none;padding:0 16px 5px 8px;min-width:50px}
.pdf-note-del{position:absolute;top:0;right:1px;width:15px;height:15px;border:none;background:none;color:#b33;font-size:13px;line-height:1;cursor:pointer}
#pdfxPrint{display:none}

/* ---------- Hover-Tooltip (schöner als Browser-Standard) ---------- */
.tip{position:fixed;z-index:300;background:var(--ink);color:#fff;font-size:12px;font-family:var(--font-ui);padding:6px 10px;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.28);pointer-events:none;max-width:260px;line-height:1.35;animation:tipIn .12s var(--ease)}
.tip[hidden]{display:none}
@keyframes tipIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
body[data-theme="dark"] .tip{background:#2a3140;border:1px solid #3a4150}

/* ---------- Druck ---------- */
@media print{
  body{background:#fff}
  .side,.inspector,.navpane,.topbar,.ribtabs,.formatbar,.calcbar,.slidenotes,.pagetabs,.findbar,.ruler-wrap,.calc-colruler,.calc-rowruler,.statusbar,.focus-exit,.bubble,.tabletools,.ctxmenu,.guides,.page-format,.preview-overlay,.present-overlay,.pdf-overlay,.pdf-viewer,.tip,#toast-root{display:none !important}
  /* PDF-Annotation als PDF speichern: nur die geflachten Seiten drucken */
  body.printing-pdfanno .app{display:none !important}
  body.printing-pdfanno #pdfxPrint{display:block}
  body.printing-pdfanno #pdfxPrint .pdfx-page{break-after:page;page-break-after:always;text-align:center}
  body.printing-pdfanno #pdfxPrint .pdfx-page:last-child{break-after:auto;page-break-after:auto}
  body.printing-pdfanno #pdfxPrint img{max-width:100%;max-height:99vh}
  .editor .pagebreak{border:none !important;color:transparent !important;margin:0;padding:0;height:0;break-before:page;page-break-before:always}
  .editor .pgbreak-gap{display:none !important}
  .editor.show-marks p::after,.editor.show-marks h1::after,.editor.show-marks h2::after,.editor.show-marks h3::after,.editor.show-marks li::after,.editor.show-marks blockquote::after{content:none}
  .app{display:block}
  .canvas{padding:0;overflow:visible;display:block}
  .page{box-shadow:none;width:auto !important;min-height:auto !important;border-radius:0;padding:0 16mm;zoom:1 !important}
  .editor{font-size:11pt;padding:0}
  .editor .colsep{color:transparent !important;opacity:1}
  /* Kopf-/Fusszeile wiederholen sich auf jeder gedruckten Seite */
  .zone-h{position:fixed;top:0;left:0;right:0;border:none;padding:6mm 16mm 2mm;min-height:0}
  .zone-f{position:fixed;bottom:0;left:0;right:0;border:none;padding:2mm 16mm 6mm;min-height:0}
  @page{margin:22mm 0}
  /* Inhalte nicht über Seitenumbrüche zerreissen */
  .cgrid tr,.editor table tr,.editor img,.editor pre,.editor blockquote{break-inside:avoid;page-break-inside:avoid}
  .editor h1,.editor h2,.editor h3{break-after:avoid}
  .sp-err{text-decoration:none !important}
  /* Calc druckt im selben Blatt wie Write: nur Köpfe/Zeilennummern weg, leere Zeilen weg */
  .pagegrid{display:block !important;padding:0 !important}
  .cgrid{font-size:11pt}
  .cgrid col.cg-gut{width:0}
  .cgrid thead,.cgrid .cg-row,.cgrid .cg-corner{display:none}
  .cgrid td{border-color:#bbb;color:#000}
  .cgrid td.textcell{border:none}
  .cgrid td.sel,.cgrid td.active{outline:none;background:none}
  .cgrid tr.pad,.cgrid td.pad,.cgrid tr.cgap{display:none}
  /* Foliendeck drucken: App ausblenden, eine Querformat-Seite pro Folie */
  body.printing-deck .app{display:none !important}
  body.printing-deck #deckPrint{display:block}
  body.printing-deck #deckPrint .deck-slide{box-sizing:border-box;width:100%;height:206mm;overflow:hidden;padding:14mm 18mm;break-after:page;page-break-after:always;color:#000;background:#fff;font-size:20pt;line-height:1.3}
  body.printing-deck #deckPrint .deck-slide:last-child{break-after:auto;page-break-after:auto}
  body.printing-deck #deckPrint h1{font-size:34pt;margin:0 0 .3em}
  body.printing-deck #deckPrint h2{font-size:26pt;margin:.2em 0 .3em}
  body.printing-deck #deckPrint h3{font-size:21pt;margin:.2em 0 .3em}
  body.printing-deck #deckPrint ul,body.printing-deck #deckPrint ol{padding-left:1.2em}
  body.printing-deck #deckPrint img{max-width:100%}
  body.printing-deck #deckPrint table{border-collapse:collapse;width:100%}
  body.printing-deck #deckPrint td,body.printing-deck #deckPrint th{border:1px solid #999;padding:.3em .5em}
  /* WYSIWYG-Druck: nur die paginierten Vorschau-Seiten drucken (richtige Kopf-/Fusszeile, kein Überlappen) */
  body.printing-pages .app{display:none !important}
  body.printing-pages .preview-overlay{display:block !important;position:static !important;inset:auto !important;background:#fff !important;padding:0}
  body.printing-pages .preview-bar{display:none !important}
  body.printing-pages .preview-scroll{display:block !important;overflow:visible !important;padding:0;gap:0}
  body.printing-pages .pv-page{box-shadow:none !important;margin:0 auto !important;border-radius:0;break-after:page;page-break-after:always}
  body.printing-pages .pv-page:last-child{break-after:auto;page-break-after:auto}
}

/* ================= Design-Politur (v23): einheitlich mit Submit PDF · Zustände · Fokus · Handling ================= */
/* Tastatur-Fokus: klarer Akzent-Ring (nur bei Tab-Navigation) */
.icon-btn:focus-visible,.ghost-btn:focus-visible,.menu button:focus-visible,.ribtabs button:focus-visible,.new-doc:focus-visible,.doc-item:focus-visible,.snav:focus-visible,.foot-link:focus-visible,.fb-btn:focus-visible,.fb-sel:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}
/* Weiche Übergänge + Klick-Feedback fürs Handling */
.icon-btn,.ghost-btn,.new-doc,.ribtabs button,.fb-btn{transition:background .14s ease,color .14s ease,border-color .14s ease,box-shadow .14s ease,transform .1s ease}
.icon-btn:active,.ghost-btn:active,.fb-btn:active{transform:translateY(1px)}
.doc-item{transition:background .14s ease}
/* aktiver Reiter/Werkzeug deutlicher (wie in Submit PDF) */
.ribtabs button.on{box-shadow:inset 0 -2px 0 var(--accent)}
.fb-btn.on,.fb-btn.active{background:var(--accent-soft);color:var(--accent)}
/* Popups/Menüs: einheitlicher, edler Schatten */
.menu,.ctxmenu,.pop,.dropdown,.mini-pop{box-shadow:var(--shadow)}
/* Panels gleiten sanft */
.navpane,.inspector{transition:background .15s ease}
@media (prefers-reduced-motion: reduce){ *{transition:none !important} }

/* ===== Ansehen-Modus (S2.1): nur betrachten, keine Änderungen. Standard AUS. ===== */
body.view-only .formatbar,body.view-only .ribtabs{opacity:.4;pointer-events:none}
body.view-only #btnView{background:var(--accent);border-color:var(--accent);color:#fff}
body.view-only #btnView .i{stroke:#fff}
body.view-only .editor,body.view-only .zone{caret-color:transparent}
body.view-only .topbar::after{content:"👁 Ansehen – keine Änderungen";margin-left:8px;align-self:center;background:var(--accent);color:#fff;font:600 11px/1 var(--font-ui);padding:5px 10px;border-radius:8px;white-space:nowrap}

/* ================= Design-Politur (v31): Farb-Konsistenz + feine Scrollbalken ================= */
/* Blaue Alt-Werte → akzent-abgeleitet (folgt dem Modus: Write/Calc grün, Slides orange) bei .new-doc-Schatten, .cell-hi, Vorschau-Zitat (oben ersetzt). */
/* Dezente, themenkonforme Scrollbalken – ruhiger und edler als der Browser-Standard */
html{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ink) 22%,transparent) transparent}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ink) 20%,transparent);border-radius:99px;border:3px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--ink) 34%,transparent);background-clip:padding-box}
::-webkit-scrollbar-corner{background:transparent}

/* ================= Handling-Politur (v31): einheitliche, sanfte Ein-Animationen ================= */
/* Dropdown-Menüs gleiten dezent auf (wie Kontextmenü/Bubble) statt hart aufzuploppen */
@keyframes popIn{from{opacity:0;transform:translateY(-5px) scale(.985)}to{opacity:1;transform:none}}
.menu:not([hidden]),.hdr-menu{animation:popIn .13s var(--ease);transform-origin:top}
/* Ribbon-Wechsel (Start/Einfügen/Layout/Ansicht) blendet sanft ein statt hart umzuschalten */
@keyframes ribIn{from{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}
.formatbar.ribbon .ribpane:not([hidden]){animation:ribIn .16s var(--ease)}
@media (prefers-reduced-motion:reduce){.menu:not([hidden]),.hdr-menu,.formatbar.ribbon .ribpane:not([hidden]),.bubble,.ctxmenu,.tip,.toast{animation:none !important}}
