resume-cv-editor { display: block; min-width: 0; font-size: 1rem; line-height: 1.6; }
resume-cv-editor *, resume-cv-editor *::before, resume-cv-editor *::after { box-sizing: border-box; }
resume-cv-editor :is(h2, h3, h4, legend, p, button) { overflow-wrap: anywhere; }
.editor-shell { padding-top: 3rem; padding-bottom: 3rem; scroll-margin-top: 5rem; }
resume-cv-editor h2 { font-size: clamp(1.7rem, 4vw, 2.5rem); font-weight: 750; line-height: 1.2; margin-bottom: 1rem; }
resume-cv-editor h3 { font-size: 1.4rem; font-weight: 700; margin-bottom: .75rem; }
resume-cv-editor h4 { font-size: 1.2rem; font-weight: 700; margin: 1rem 0 .5rem; }
.editor-notice, .editor-status { background: #e9f1ec; padding: .75rem 1rem; margin: 1rem 0; }
.editor-error { color: #a31520; white-space: pre-wrap; overflow-wrap: anywhere; margin: .75rem 0; }
.editor-grid { display: grid; grid-template-columns: minmax(180px, .35fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; background:#f0f3f0; padding:1.5rem; border-radius:1rem; }
.editor-fields { min-width: 0; background:white; color:#172a27; padding:0; box-shadow:0 8px 32px #173b2420; border:1px solid #dde5dd; max-width:800px; font: .95rem/1.6 Arial,sans-serif; }
.editor-paper-hint { font: .8rem/1.5 system-ui; color:#66756c; padding:1rem; border-bottom:1px dashed #c5d1c8; }
.editor-identity { position:relative; margin-bottom:2rem; }
.editor-kicker { font-size:.7rem; text-transform:uppercase; letter-spacing:.2em; color:#637469; }
.editor-editable { min-height:1.5em; white-space:pre-wrap; overflow-wrap:anywhere; padding:.15rem .25rem; border:1px solid transparent; border-radius:.25rem; cursor:text; }
.editor-editable:hover { border-color:#c3d2c7; background:#f6faf7; }
.editor-editable:focus { outline:2px solid #b22132; outline-offset:2px; background:#fffaf9; }
.editor-editable:empty::before { content:attr(data-placeholder); color:#849087; font-weight:400; opacity:.85; }
.editor-identity [data-field="Name"] { font-size:clamp(1.7rem,4vw,2.4rem); line-height:1.2; font-weight:750; }
.editor-identity [data-field="Berufliche Position"] { font-size:1.1rem; color:#527263; }
.editor-identity [data-field="Kurzprofil"] { margin-top:1rem; }
.editor-section { margin:1.8rem 0; min-width:0; }
.editor-section-title { font-size:1.1rem; font-weight:750; border-bottom:2px solid #b7c9bc; }
.editor-entry { position:relative; margin:1rem 0; padding-left:1rem; border-left:2px solid #dce6de; }
.editor-entry .editor-inline-field:first-child { font-weight:700; }
.editor-entry .editor-toolbar, .editor-section > .editor-toolbar { gap:.3rem; opacity:.65; }
.editor-entry:focus-within .editor-toolbar, .editor-section:hover > .editor-toolbar { opacity:1; }
.editor-fields .editor-toolbar button,.editor-fields > .editor-toolbar button,.editor-section > button { font: .75rem/1.4 system-ui; padding:.35rem .5rem; }
.editor-paper-modern .editor-identity { border-top:8px solid #234b3e; padding-top:1rem; }
.editor-paper-modern .editor-section-title { color:#234b3e; text-transform:uppercase; letter-spacing:.06em; }
.editor-paper-compact { font-size:.85rem; }
.editor-paper-compact .editor-section { margin:1rem 0; }
.editor-photo { width:90px; aspect-ratio:3/4; object-fit:cover; float:right; margin:0 0 1rem 1rem; border-radius:.3rem; }
.editor-photo-tools { clear:both; font: .8rem/1.5 system-ui; padding:.5rem 0; }
.editor-photo-tools summary { cursor:pointer; min-height:44px; display:flex; align-items:center; }
resume-cv-editor fieldset { border: 1px solid #deded7; padding: 1rem; margin-bottom: 1.5rem; min-width: 0; }
resume-cv-editor legend { padding: 0 .4rem; font-weight: 750; }
.editor-field { display: flex; flex-direction: column; gap: .35rem; margin-bottom: .9rem; overflow-wrap: anywhere; }
resume-cv-editor :is(input:not([type="checkbox"]), textarea, select) { width: 100%; min-width: 0; padding: .6rem; border: 1px solid #8c9690; border-radius: .25rem; background: #fff; color: #111; font: inherit; }
resume-cv-editor textarea { min-height: 6rem; resize: vertical; }
resume-cv-editor :is(input, textarea, select, button, [tabindex]):focus-visible { outline: 3px solid #b22132; outline-offset: 3px; }
resume-cv-editor [tabindex] { scroll-margin-top: 5rem; }
.editor-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; margin: .75rem 0 1rem; }
resume-cv-editor button { font: inherit; background: #fff; border: 1px solid #8c9690; border-radius: .25rem; padding: .55rem .8rem; cursor: pointer; white-space: normal; }
resume-cv-editor button:hover:not(:disabled) { background: #e9f1ec; }
resume-cv-editor button:disabled { opacity: .55; cursor: not-allowed; }
.editor-toolbar select { width: auto; max-width: 100%; }
.editor-preview { background: #fff; border: 1px solid #deded7; border-radius:.65rem; padding: 1rem; overflow-wrap: anywhere; min-width: 0; position:sticky; top:1rem; }
.editor-preview p, .editor-preview li { white-space: pre-wrap; margin-bottom: .6rem; }
.editor-preview ul { list-style: disc; padding-left: 1.25rem; }
.editor-documents { border-top: 1px solid #deded7; margin-top: 2rem; padding-top: 2rem; }
.editor-dropzone { display: block; border: 2px dashed #8c9690; padding: 1.25rem; margin: 1rem 0; overflow-wrap: anywhere; }
.editor-dropzone input { margin: .75rem 0; }
.editor-document { display: grid; grid-template-columns: minmax(0, 1fr) minmax(10rem, .6fr) auto; align-items: center; gap: .75rem; padding: .75rem 0; border-bottom: 1px solid #deded7; overflow-wrap: anywhere; }
@media (max-width: 850px) { .editor-grid { grid-template-columns: minmax(0, 1fr); padding:.5rem; } .editor-preview { position: static; } .editor-preview h3 { font-size:1rem; } .editor-fields { max-width:none; } .editor-editable { min-height:44px; display:block; padding:.45rem .15rem; } }
@media (max-width: 550px) { .editor-document { grid-template-columns: minmax(0, 1fr); } .editor-toolbar button { flex: 1 1 9rem; } resume-cv-editor fieldset { padding: .65rem; } }
.editor-appbar { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; position:sticky; top:0; z-index:4; padding:.75rem 1rem; background:#fff; border-bottom:1px solid #dce3dd; }
.editor-appbar h2 { font-size:1.1rem; margin:0 auto 0 0; }
.editor-appbar button { min-height:44px; font-size:.85rem; }
.editor-appbar button[data-editor-focus="Im Konto speichern"] { background:#b22132; color:#fff; border-color:#b22132; }
.editor-more { position:relative; }
.editor-more summary { cursor:pointer; padding:.7rem; }
.editor-more[open] { position:absolute; right:1rem; top:3.5rem; padding:1rem; background:#fff; box-shadow:0 12px 36px #1233; border:1px solid #dde5dd; width:min(330px,calc(100vw - 2rem)); max-height:70dvh; overflow:auto; }
.editor-more[open]>button { display:block; width:100%; margin:.5rem 0; }
.editor-grid { grid-template-columns:minmax(0,1fr); padding:1rem; justify-items:center; }
.editor-preview { display:none; position:static; width:100%; max-width:800px; }
.editor-tools-open .editor-preview { display:block; }
.editor-status { background:none; font-size:.8rem; padding:.3rem 1rem; margin:0; color:#52675d; }
.editor-error:empty { display:none; }
.editor-more .editor-documents { padding:0; margin:0; border:0; }
.editor-attachments summary { cursor:pointer; padding:.75rem 0; }
.editor-more .editor-document { grid-template-columns:minmax(0,1fr); }
@media(max-width:600px) { .editor-appbar { padding:.5rem; gap:.25rem; } .editor-appbar h2 { flex-basis:100%; font-size:1rem; } .editor-appbar button { padding:.4rem .5rem; font-size:.75rem; } .editor-grid { padding:.5rem; } }

resume-cv-editor { --editor-ink:#19392e; --editor-muted:#68766d; --editor-line:#e1e8e2; --editor-red:#b22132; }
.editor-appbar { min-height:62px; padding:.5rem clamp(.75rem,2.4vw,2rem); gap:.45rem; border-bottom:1px solid var(--editor-line); box-shadow:0 2px 10px #173a2410; }
.editor-appbar h2 { font-size:.95rem; letter-spacing:-.015em; color:var(--editor-ink); margin-right:auto; }
.editor-appbar button { min-width:44px; border-radius:.45rem; border-color:#dbe4dc; color:var(--editor-ink); font-weight:600; transition:background .15s ease,border-color .15s ease; }
.editor-appbar button:hover:not(:disabled) { background:#edf4ef; border-color:#c5d5c9; }
.editor-appbar button[data-editor-focus="Im Konto speichern"] { padding-inline:1rem; background:var(--editor-red); border-color:var(--editor-red); box-shadow:0 2px 5px #b2213226; }
.editor-appbar button[data-editor-focus="Im Konto speichern"]:hover:not(:disabled) { background:#941d2b; }
.editor-appbar button[data-editor-focus="Anmelden"] { background:var(--editor-red); border-color:var(--editor-red); color:#fff; }
.editor-appbar .editor-more>summary { min-height:44px; display:grid; place-items:center; padding:.5rem .75rem; border:1px solid var(--editor-line); border-radius:.45rem; font-size:.82rem; font-weight:600; color:var(--editor-ink); cursor:pointer; }
.editor-appbar .editor-more[open] { position:fixed; z-index:20; top:calc(52px + .5rem); right:1rem; border-radius:.75rem; }
.editor-grid { padding:clamp(.65rem,2vw,1.5rem); background:#eef2ee; }
.editor-fields { width:min(100%,800px); overflow:hidden; border-radius:3px; border-color:#e4e9e4; box-shadow:0 8px 28px #1a382014,0 1px 3px #1a382010; }
.editor-paper-hint { display:flex; align-items:center; gap:.5rem; min-height:42px; margin:0; padding:.55rem 1.25rem; border:0; color:#586b5f; background:#f8faf8; font-size:.76rem; }
.editor-paper-hint::before { content:"✎"; color:var(--editor-red); font-size:1rem; }
.editor-status { width:min(100%,800px); margin:0 auto; padding:.6rem 1rem; border:1px solid transparent; border-radius:.4rem; }
.editor-error:not(:empty) { width:min(100%,800px); margin:.5rem auto; padding:.65rem .85rem; border:1px solid #edc7ca; border-radius:.45rem; background:#fff4f4; font-size:.88rem; }
.editor-preview { max-width:800px; padding:1.25rem; border-color:var(--editor-line); box-shadow:0 4px 20px #173a240a; }
.editor-preview h3 { margin-bottom:.85rem; font-size:1.05rem; color:var(--editor-ink); }
.editor-preview>.editor-field { max-width:320px; }
.editor-preview>details { border-top:1px solid var(--editor-line); margin-top:1rem; padding-top:.35rem; }
.editor-preview>details>summary { min-height:44px; display:flex; align-items:center; cursor:pointer; font-size:.88rem; font-weight:650; }
.editor-photo-tools { border-top:1px solid var(--editor-line); margin-top:.5rem; padding:.25rem 0; }
.editor-photo-tools summary { color:#294a3d; font-weight:600; }
.editor-appbar + .editor-status { background:transparent; }
.editor-notice { display:none; }
.editor-document { padding:.75rem; margin:.35rem 0; border:1px solid var(--editor-line); border-radius:.5rem; background:#fff; }
@media(max-width:600px) {
 .editor-appbar { min-height:56px; padding:.4rem .55rem; }
 .editor-appbar h2 { flex:1 1 4rem; min-width:4rem; font-size:.82rem; }
 .editor-appbar button { min-height:44px; font-size:.8rem; }
 .editor-appbar .editor-more>summary { min-width:44px; padding:.4rem; font-size:.78rem; }
 .editor-appbar .editor-more[open] { top:3.75rem; right:.5rem; }
 .editor-grid { padding:.55rem; }
 .editor-paper-hint { padding:.45rem .75rem; font-size:.7rem; }
 .editor-status { padding:.4rem .65rem; font-size:.76rem; }
 .cv-empty-section { grid-template-columns:minmax(0,1fr); padding:.75rem; }
 .cv-empty-section>p,.cv-empty-section>.canvas-tools { grid-column:1; grid-row:auto; }
 .cv-empty-section .canvas-tools { justify-self:start; }
}

resume-cv-editor { --editor-ink:#19392e; --editor-muted:#68766d; --editor-line:#dfe5ec; --editor-red:#b22132; --editor-lilac:#7160a8; --editor-blue:#477c9d; }
.editor-appbar { background:linear-gradient(105deg,#fffaf5,#f7f8ff 58%,#f4faf5); border-bottom-color:#e7e1eb; }
.editor-appbar .editor-more[open] { background:#fffdfb; border-color:#e4dce8; box-shadow:0 16px 42px #38284324; }
.editor-grid { background:linear-gradient(135deg,#f3f5fc,#f1f7f3 55%,#fff5f1); }
.editor-fields { border-color:#e3dfe9; box-shadow:0 12px 34px #2b254215,0 2px 5px #1a382010; }
.editor-identity { padding:1.25rem 1.25rem 0; border-top:7px solid #527b6b; background:linear-gradient(120deg,#f0f7f1,#f8f5ff); }
.editor-identity .editor-kicker { color:#765b91; font-weight:750; }
.editor-section-title { color:#304c40; border-bottom-color:#b9d1c2; }
.editor-section:nth-of-type(3n+1) .editor-section-title { border-bottom-color:#c8bce4; color:#5f4e86; }
.editor-section:nth-of-type(3n+2) .editor-section-title { border-bottom-color:#efc8b8; color:#884a3b; }
.editor-section:nth-of-type(3n) .editor-section-title { border-bottom-color:#afd0cc; color:#315f60; }
.editor-entry { border-left-color:#8e7cb7; }
.editor-entry:nth-of-type(2n) { border-left-color:#cc8d75; }
.editor-editable:hover { border-color:#d5cbe6; background:#fbf9ff; }
.editor-status { color:#4e685b; }
.editor-toolbar button[aria-label="Abschnitt hinzufügen"],.editor-toolbar button[aria-label="Eintrag hinzufügen"] { border-color:#ccd9f0; background:#f1f5ff; color:#425e91; }
.editor-toolbar button[aria-label="Abschnitt hinzufügen"]:hover,.editor-toolbar button[aria-label="Eintrag hinzufügen"]:hover { background:#e5ecff; }
