/* KM-111: isolated, locally served editor prototype. */
.editor-page{background:var(--km-geno-f8f5f4);color:var(--km-geno-192d40)}
.editor-page .editor-app{min-height:100vh;overflow:visible;background:radial-gradient(ellipse at 48% -12%,var(--km-geno-f4e5e7) 0,transparent 48%),var(--km-geno-f8f5f4);font-family:Georgia,'Times New Roman',serif}
.editor-header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:21px max(32px,4vw);border-bottom:1px solid var(--km-geno-e9dfe1);background:var(--km-geno-rgba-255-255-255-55)}
.editor-brand{display:flex;align-items:center;gap:25px}
.editor-header .geno-home{min-height:37px;padding:8px 16px;border:1px solid var(--km-geno-cbaab1);background:transparent;color:var(--km-brand-burgundy);font:600 13px Arial,sans-serif}
.editor-header .geno-home:before{content:'←';margin-right:6px}
.editor-header .geno-home:hover{background:var(--km-brand-burgundy);color:var(--km-brand-white)}
.editor-brand-divider{height:28px;border-left:1px solid var(--km-geno-ddd0d3)}
.editor-brand-name{font-size:24px;white-space:nowrap}.editor-brand-name span{color:var(--km-geno-8a4558)}
.demo-label{display:flex;align-items:center;gap:9px;border:1px solid var(--km-geno-e5cdd1);border-radius:100px;padding:9px 14px;color:var(--km-geno-842f45);background:var(--km-geno-f5e8eb);font:600 12px Arial,sans-serif;white-space:nowrap}
.demo-timer #demo-timer-value{font-variant-numeric:tabular-nums}
.demo-dot,.graph-status-dot{width:7px;height:7px;border-radius:50%;background:var(--km-geno-9f576c);display:inline-block}
.editor-intro{display:flex;align-items:center;justify-content:space-between;max-width:1580px;margin:auto;padding:47px max(32px,3vw) 42px;gap:30px}
.editor-eyebrow,.sidebar-kicker{color:var(--km-geno-8a4558);font:700 10px/1.5 Arial,sans-serif;letter-spacing:.22em;text-transform:uppercase}
.editor-eyebrow span{margin:0 6px}
.editor-intro h1{max-width:900px;margin:13px 0 15px;font-size:clamp(35px,3.8vw,61px);line-height:1.1;letter-spacing:-.035em;font-weight:500}
.editor-intro h1 em{color:var(--km-geno-8f5261);font-weight:400;white-space:normal}
.editor-intro p:last-child{margin:0;max-width:710px;font-size:17px;line-height:1.6;color:var(--km-geno-5a6673)}
.intro-emblem{flex:none;display:grid;align-items:center;justify-items:center;width:106px;height:106px;border:1px solid var(--km-geno-d8b5bc);border-radius:50%;color:var(--km-geno-8a4558);transform:rotate(8deg);box-shadow:0 0 0 8px var(--km-geno-rgba-207-165-173-12)}
.intro-emblem span{font-size:40px;letter-spacing:-.09em;align-self:end}.intro-emblem small{font:700 7px Arial,sans-serif;letter-spacing:.26em;align-self:start}
.workspace{max-width:1590px;margin:0 auto 24px;border:1px solid var(--km-geno-e4d9da);border-radius:16px;overflow:hidden;background:var(--km-brand-white);box-shadow:0 16px 50px var(--km-geno-rgba-54-37-50-075)}
.workspace-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 29px;border-bottom:1px solid var(--km-geno-eae5e5);background:var(--km-brand-white)}
.workspace-heading .editor-eyebrow{margin:0 0 8px}
.workspace-heading h2{margin:0;font-size:27px;font-weight:500;display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.workspace-heading p:last-child{margin:7px 0 0;color:var(--km-geno-5a6673);font:13px/1.5 Arial,sans-serif}
.sample-chip{display:inline-block;font:600 11px Arial,sans-serif;letter-spacing:0;padding:7px 11px;background:var(--km-geno-f6eded);color:var(--km-geno-8a4558);border-radius:999px}
.view-picker{display:flex;align-items:center;gap:3px;border:1px solid var(--km-geno-e6dbdd);background:var(--km-geno-f8f5f5);padding:4px;border-radius:11px}
.view-button{white-space:nowrap;border:0;border-radius:8px;background:transparent;color:var(--km-geno-66717f);padding:12px 16px;cursor:pointer;font:600 13px Arial,sans-serif}
.view-button.active{color:var(--km-brand-burgundy);background:var(--km-brand-white);box-shadow:0 2px 9px var(--km-geno-rgba-51-33-37-1)}
.view-button:focus-visible,.zoom-controls button:focus-visible,.inspector-action:focus-visible{outline:3px solid var(--km-brand-burgundy);outline-offset:2px}
.workspace-body{display:grid;grid-template-columns:225px minmax(0,1fr) 255px;min-height:660px}
.editor-sidebar{border-right:1px solid var(--km-geno-ece8e7);background:var(--km-geno-fdfcfa)}
.side-section{padding:27px 22px;border-bottom:1px solid var(--km-geno-ece8e7)}
.side-section:last-child{border:0}
.side-section .sidebar-kicker{margin:0 0 9px}
.side-section h3{font-size:19px;font-weight:500;margin:0 0 17px}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.stat-grid>div{padding:14px 8px;background:var(--km-geno-f7f0f1);border-radius:9px;display:flex;flex-direction:column;gap:7px}
.stat-grid strong{color:var(--km-brand-burgundy);font:500 26px Georgia,serif}
.stat-grid span{font:12px Arial,sans-serif;color:var(--km-geno-5a6673)}
.layer-switch{display:flex;align-items:center;gap:9px;margin:14px 0;cursor:pointer;color:var(--km-geno-3e4c59);font:13px Arial,sans-serif}
.layer-switch input{accent-color:var(--km-brand-burgundy);width:16px;height:16px;cursor:pointer}
.side-hint{color:var(--km-geno-5a6673);font:11px/1.6 Arial,sans-serif;margin:12px 0 0}
.legend-section h3{margin-bottom:15px}
.legend-row{display:flex;align-items:center;gap:13px;font:12px Arial,sans-serif;color:var(--km-geno-596471);padding:9px 0}
.legend-square,.legend-circle,.legend-diamond{width:17px;height:17px;flex:none;border:2px solid var(--km-brand-burgundy);background:var(--km-geno-faeef1)}
.legend-circle{border-radius:50%}.legend-diamond{transform:rotate(45deg) scale(.8)}
.legend-line{width:20px;height:0;border-top:2px solid var(--km-geno-9d7e87)}
.graph-panel{min-width:0;display:flex;flex-direction:column;background:var(--km-geno-fbf9f8);position:relative}
.graph-panel-header{display:flex;align-items:center;justify-content:space-between;padding:18px 23px;gap:12px;border-bottom:1px solid var(--km-geno-efe7e7)}
.graph-panel-heading{display:flex;gap:12px;align-items:center;color:var(--km-geno-27384a);font:12px Arial,sans-serif}
.graph-panel-heading span:last-child{color:var(--km-geno-5a6673)}
.zoom-controls{display:flex;gap:0;align-items:center;background:var(--km-brand-white);border:1px solid var(--km-geno-e9e1e2);border-radius:8px;overflow:hidden}
.zoom-controls button{border:0;background:var(--km-brand-white);min-width:33px;height:34px;color:var(--km-geno-5a6673);font:22px Arial,sans-serif;cursor:pointer}
.zoom-controls button:hover{background:var(--km-geno-f5eaed)}
.zoom-controls output{min-width:53px;text-align:center;color:var(--km-geno-5a6673);font:12px Arial,sans-serif}
.zoom-controls button:last-child{border-left:1px solid var(--km-geno-ece6e6)}
.graph-viewport{position:relative;flex:1;min-height:525px;overflow:hidden;background:var(--km-brand-white);touch-action:none}
.graph-viewport:focus-visible{outline:3px solid var(--km-brand-burgundy);outline-offset:-4px}
#family-graph{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none;user-select:none}
#graph-content .edge-partner{fill:none;stroke:var(--km-geno-af7081);stroke-width:2.8;stroke-linecap:round}
#graph-content .edge-parent{fill:none;stroke:var(--km-geno-a5adb7);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
#graph-content .edge-label{font:14px Arial,sans-serif;fill:var(--km-geno-5a6673)}
#graph-content .person{cursor:grab;outline:none}
#graph-content .person.dragging{cursor:grabbing}
#graph-content .person:focus-visible .person-shape,#graph-content .person.selected .person-shape{stroke:var(--km-geno-822b45);stroke-width:4}
#graph-content .person-shape{fill:var(--km-geno-fceef1);stroke:var(--km-geno-99566b);stroke-width:2.7}
#graph-content .person.male .person-shape{fill:var(--km-geno-e9eef1);stroke:var(--km-geno-4d687f)}
#graph-content .person .person-label{fill:var(--km-geno-233a50);font:600 18px Arial,sans-serif;text-anchor:middle}
#graph-content .person .person-age{fill:var(--km-geno-5a6673);font:13px Arial,sans-serif;text-anchor:middle}
#graph-content .person .focus-ring{fill:none;stroke:var(--km-geno-c994a3);stroke-width:1.6;stroke-dasharray:4 5}
#graph-content .person .focus-pill{fill:var(--km-geno-8d3e55)}
#graph-content .person .focus-text{fill:var(--km-brand-white);font:600 11px Arial,sans-serif;text-anchor:middle}
#graph-content .person .person-card{fill:var(--km-brand-white);stroke:var(--km-geno-eadfe1);stroke-width:1.6;filter:drop-shadow(0 3px 6px var(--km-geno-rgba-54-36-42-1))}
#graph-content .person.selected .person-card{stroke:var(--km-geno-8e3e55);stroke-width:2.6}
#graph-content .person .card-name{fill:var(--km-geno-22384b);font:bold 16px Arial,sans-serif}
#graph-content .person .card-meta{fill:var(--km-geno-5a6673);font:12px Arial,sans-serif}
.graph-watermark{position:absolute;bottom:22px;left:24px;color:var(--km-geno-e0ced3);font:700 11px Arial,sans-serif;letter-spacing:.23em;pointer-events:none}
.graph-bottom{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--km-geno-efe7e7);color:var(--km-geno-5a6673);font:11px/1.4 Arial,sans-serif;padding:13px 20px;background:var(--km-brand-white)}
.inspector-action{width:100%;margin-top:9px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--km-brand-burgundy);border-radius:8px;background:var(--km-brand-burgundy);color:var(--km-brand-white);font:600 12px Arial,sans-serif;cursor:pointer}
.inspector-action:hover{background:var(--km-geno-963e56)}
.demo-footer{text-align:center;padding:0 22px 25px;font:11px/1.5 Arial,sans-serif;letter-spacing:.03em;color:var(--km-geno-5a6673)}
@media(max-width:1180px){
  .workspace-body{grid-template-columns:178px minmax(0,1fr) auto}.side-section{padding:23px 13px}
}
/* KM-113: local-only editor forms and relationship controls. */
.editor-outline-action{width:100%;display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding:11px 12px;border:1px solid var(--km-geno-dfc8ce);background:var(--km-brand-white);border-radius:8px;color:var(--km-brand-burgundy);font:600 12px Arial,sans-serif;cursor:pointer}
.editor-outline-action:hover{background:var(--km-geno-f9f0f2)}
.editor-outline-action:focus-visible,.editor-form button:focus-visible,.remove-relation:focus-visible{outline:3px solid var(--km-geno-8e3e55);outline-offset:2px}
.relation-list{list-style:none;margin:0;padding:0}
.relation-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0;border-bottom:1px solid var(--km-geno-f2eaec);color:var(--km-geno-526071);font:12px/1.5 Arial,sans-serif}
.remove-relation{border:0;background:var(--km-geno-f7edef);border-radius:6px;color:var(--km-geno-943d54);padding:6px 7px;cursor:pointer;font:600 10px Arial,sans-serif}
.editor-dialog{width:min(430px,calc(100vw - 30px));max-height:min(90vh,760px);overflow-y:auto;border:1px solid var(--km-geno-ddc9ce);border-radius:16px;background:var(--km-brand-white);padding:25px;box-shadow:0 24px 80px var(--km-geno-rgba-32-23-34-22);color:var(--km-geno-263b4e)}
.editor-dialog::backdrop{background:var(--km-geno-rgba-22-29-42-45)}
.help-dialog{width:min(560px,calc(100vw - 30px))}
.help-dialog h2:focus{outline:none}
.command-btn[hidden],.account-nav>div[hidden]{display:none!important}
.help-steps{margin:0 0 14px;padding-left:1.3em}
.help-steps li{margin:0 0 9px;line-height:1.45}
.help-dialog kbd{font:inherit;font-size:.92em;padding:0 5px;border:1px solid var(--km-geno-ddc9ce);border-radius:4px;white-space:nowrap}
.editor-form{display:flex;flex-direction:column;gap:10px}
.editor-form h2{font-size:25px;font-weight:500;margin:0}
.editor-form>p:first-of-type{color:var(--km-geno-5a6673);font:12px/1.6 Arial,sans-serif;margin:0 0 6px}
.editor-form label{font:600 12px Arial,sans-serif;color:var(--km-geno-35495b);margin-top:6px}
.editor-form input,.editor-form textarea,.editor-form select{width:100%;padding:10px 11px;border:1px solid var(--km-color-field-border);border-radius:8px;background:var(--km-brand-white);color:var(--km-geno-263b4e);font:14px Arial,sans-serif;box-sizing:border-box}
.editor-form textarea{resize:vertical}
.editor-form input:focus,.editor-form textarea:focus,.editor-form select:focus{outline:2px solid var(--km-geno-9c6476);outline-offset:1px}
.editor-form-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.editor-form-columns>div{display:flex;flex-direction:column;gap:7px}
.editor-form-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px;margin-top:12px}
.editor-form-actions button{width:auto;margin:0;padding:11px 14px}
.editor-danger-action{border:1px solid var(--km-geno-bb6b77);background:var(--km-brand-white);color:var(--km-geno-a53347);border-radius:8px;font:600 12px Arial,sans-serif;cursor:pointer}
.editor-danger-action[hidden]{display:none}
.editor-form-error{color:var(--km-geno-b43b50);font:600 12px Arial,sans-serif;margin:0}
#co-parent-row{display:flex;flex-direction:column;gap:7px}
#co-parent-row[hidden]{display:none}

/* KM-114: relationship status, inferred generation, and life-state symbols. */
#graph-content .edge-partner.unmarried{stroke-dasharray:8 6}
#graph-content .edge-status{fill:none;stroke:var(--km-geno-9a3448);stroke-width:3.2;stroke-linecap:round}
#graph-content .person.neutral .person-shape{fill:var(--km-geno-f0ebf8);stroke:var(--km-geno-726185)}
#graph-content .person .life-mark{fill:none;stroke:var(--km-geno-8a334c);stroke-width:2.5;pointer-events:none}
#graph-content .person .ancestor-badge{fill:var(--km-geno-7f4561);font:bold 11px Arial,sans-serif}
.inspector-action:disabled,.editor-outline-action:disabled{opacity:.55;cursor:default}
.legend-triangle{display:inline-block;width:17px;height:17px;background:var(--km-geno-f9e2eb);clip-path:polygon(50% 0%,100% 100%,0% 100%);border-bottom:2px solid var(--km-geno-a46476)}
#partner-status-fields{display:flex;flex-direction:column;gap:8px}
#partner-status-fields[hidden]{display:none}
.legend-line.dashed{border-top-style:dashed}
#graph-content .edge-partner[data-status="ended"]{opacity:.6}

/* KM-115: viewport-efficient, thematic editor for synthetic statements. */
.fact-action:focus-visible{outline:2px solid var(--km-geno-86354d);outline-offset:-2px}
.person-compact-grid,.entry-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 16px}
.person-field{display:flex;flex-direction:column;min-width:0;gap:5px;color:var(--km-geno-35495b)}
.person-field span{font:600 11px/1.35 Arial,sans-serif}
.person-field strong{color:var(--km-geno-8a4558)}
.person-field.span-two{grid-column:1/-1}
.detail-window .person-field input,.detail-window .person-field select,.detail-window .person-field textarea{margin:0;padding:9px 10px;min-height:37px;font-size:13px}
.detail-window .person-field textarea{min-height:55px}
.panel-hint{color:var(--km-geno-5a6673);font:12px/1.5 Arial,sans-serif;margin:0 0 14px}
.person-entry-editor{padding:3px 0}
.person-entry-list{list-style:none;padding:0;margin:0 0 14px;display:grid;gap:5px}
.person-entry-list li{display:flex;align-items:center;gap:6px;min-width:0;padding:7px 10px;border:1px solid var(--km-geno-eee3e6);background:var(--km-geno-fdf9fa);border-radius:8px;font:12px/1.4 Arial,sans-serif}
.person-entry-list li span{flex:1;overflow-wrap:anywhere}
.person-entry-list .entry-empty{border:1px dashed var(--km-geno-ddd0d5);color:var(--km-geno-5a6673);background:var(--km-brand-white)}
.fact-action{flex:none;border:1px solid var(--km-geno-eadde1);background:white;border-radius:6px;padding:5px 8px;color:var(--km-geno-803d52);font:600 11px Arial,sans-serif;cursor:pointer}
.person-entry-editor .entry-add{width:auto;display:inline-flex;margin:12px 0 8px}
.detail-window .person-form-actions .editor-outline-action{width:auto}
.detail-window .person-form-actions .inspector-action{width:auto}
#graph-content .edge-years{fill:var(--km-geno-874457);font:700 13px Arial,sans-serif;paint-order:stroke;stroke:var(--km-brand-white);stroke-width:5px;stroke-linejoin:round;pointer-events:none}
.partner-years{margin-top:9px}
.partner-years label{font-size:11px}
@media(max-width:650px){
  .person-compact-grid,.entry-input-grid{gap:9px 8px}
  .detail-window .person-field select,.detail-window .person-field input{font-size:12px}
}


/* The landing page footer wave must never decorate the editor form actions. */
.person-form-actions::before{content:none!important;display:none!important}

/* KM-116 – compact six-field grid, genuine autosizing description and curated suggestions. */
.person-compact-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.person-compact-grid .span-three{grid-column:1/-1}
.detail-window #person-note{box-sizing:border-box;height:auto;min-height:42px;resize:none;overflow:hidden;max-height:none;line-height:1.45}
.person-chip-groups{display:grid;gap:9px;margin:7px 0 10px}
.chip-group{min-width:0}
.chip-group-title{margin:0 0 5px;color:var(--km-geno-4e5966);font:700 11px Arial,sans-serif}
.chip-options{display:flex;flex-wrap:wrap;gap:6px}
.entry-chip{border:1px solid var(--km-geno-decbd2);color:var(--km-geno-74394e);background:var(--km-brand-white);border-radius:20px;padding:6px 11px;font:600 11px Arial,sans-serif;cursor:pointer;white-space:normal;text-align:left}
.entry-chip.selected,.entry-chip[aria-pressed="true"]{color:var(--km-brand-white);background:var(--km-geno-853a53);border-color:var(--km-geno-853a53)}
.entry-chip:hover:not(.selected){background:var(--km-geno-f7edf1)}
.entry-chip:focus-visible{outline:2px solid var(--km-geno-853a53);outline-offset:2px}
.chip-intro,.chip-selection-hint{font:11px/1.4 Arial,sans-serif;color:var(--km-geno-5a6673);margin:3px 0 7px}
.chip-selection-hint{color:var(--km-geno-80455b);margin:8px 0}
#person-entry-editor .entry-input-grid{margin:6px 0 2px}
#person-entry-editor .entry-add{margin:8px 0 10px}
#person-entry-editor .person-entry-list{margin:5px 0 12px}
@media(max-width:650px){
  .person-compact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .person-compact-grid .person-name-field,.person-compact-grid .person-life-field,.person-compact-grid .span-three{grid-column:1/-1}
  .entry-chip{font-size:11px;padding:7px 10px}
}

/* KM-117: hide years that cannot apply to the current relationship form/status. */
.partner-years > [data-partner-year][hidden]{display:none!important}
.partner-years > [data-partner-year]{min-width:0}

/* KM-117: sibling groups remain distinct from both partner and parentage paths. */
#graph-content .edge-sibling{fill:none;stroke:var(--km-geno-527e89);stroke-width:2;stroke-dasharray:3 7;stroke-linecap:round;opacity:.78;pointer-events:none}
.partner-years > [data-partner-year][hidden]{display:none!important}

/* KM-119 – independent tri-state chips and one inline "Weitere" field per category. */
.person-chip-groups{display:grid;gap:12px}
.person-chip-groups .chip-group{padding:10px 12px;border:1px solid var(--km-geno-eadfe3);border-radius:10px;background:var(--km-brand-white)}
.person-chip-groups .chip-group-title{margin:0 0 9px;color:var(--km-geno-35495b);font-size:12px}
.person-chip-groups .chip-options{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.person-chip-groups .entry-chip{border:1px solid var(--km-geno-cfbfc5);color:var(--km-geno-4f5c66);background:var(--km-geno-f7f8f9);font-weight:600;line-height:1.4}
.person-chip-groups .entry-chip[data-state="active"]{background:var(--km-geno-386c65);color:var(--km-brand-white);border-color:var(--km-geno-386c65)}
.person-chip-groups .entry-chip[data-state="suspected"]{background:var(--km-geno-ffefce);color:var(--km-geno-75500e);border:1px dashed var(--km-geno-b28332)}
.person-chip-groups .entry-chip[data-state="inactive"]:hover{background:var(--km-geno-eee8eb)}
.person-chip-groups .entry-chip:focus-visible{outline:2px solid var(--km-geno-284d64);outline-offset:2px}
.chip-custom-field{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}
.chip-custom-field label{color:var(--km-geno-52606a);font:600 12px Arial,sans-serif}
.chip-custom-field input{min-width:0;min-height:34px;border:1px solid var(--km-geno-d5cbd0);border-radius:8px;padding:7px 10px;font:12px Arial,sans-serif}
.chip-custom-field .chip-add-custom{width:35px;height:35px;border-radius:8px;border:1px solid var(--km-geno-b88d9d);background:var(--km-brand-white);color:var(--km-geno-80374e);font:bold 19px Arial,sans-serif;cursor:pointer}
.chip-custom-field .chip-add-custom:hover{background:var(--km-geno-f7edf1)}
.chip-custom-field .chip-add-custom:focus-visible{outline:2px solid var(--km-geno-80374e);outline-offset:2px}
@media(max-width:650px){
 .person-chip-groups .chip-group{padding:10px}
 .chip-custom-field{gap:6px}
 .chip-custom-field input{font-size:12px}
}
/* Colour comes from CHAPTER_STYLE in editor.js (fill attribute). */
#graph-content .person .graph-fact{font:10px Arial,sans-serif;pointer-events:none}
#graph-content .person .graph-fact-chapter{font-weight:bold}
.fact-kinds{margin:0 0 6px 22px;padding-left:10px;border-left:2px solid var(--km-geno-eadfe1)}
.fact-kinds .layer-sub{margin:6px 0;font-size:12.5px}
.layer-switch input:indeterminate{accent-color:var(--km-brand-burgundy)}
#graph-content .person .life-line{fill:var(--km-geno-5d6b78);font:11px Arial,sans-serif;white-space:pre}

/* KM-122: authenticated project page */
.project-auth{margin:16px 0;padding:16px 18px;border:1px solid var(--km-geno-e5cdd1);border-radius:14px;background:var(--km-brand-white);font:14px/1.5 Arial,sans-serif}
.project-auth h2{font-size:16px;margin:0 0 6px}
.project-login{display:grid;gap:6px;max-width:360px}
.project-login input{padding:9px 10px;border:1px solid var(--km-geno-d9c6ca);border-radius:8px;font:inherit}
.project-login .inspector-action{margin-top:8px}
.project-login h3{margin:0 0 4px;font-size:15px}
.project-login p{margin:0 0 6px}
.project-login .editor-outline-action{margin-top:4px}
.project-login input:disabled{background:var(--km-geno-f4eeef)}
#register-error:empty,#verify-error:empty{display:none}
#register-error,#verify-error{color:var(--km-geno-8a1c2b);font-weight:600}
@media (max-width:480px){.project-login{max-width:none}.project-login .inspector-action,.project-login .editor-outline-action{width:100%}}
#project-session{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.save-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:8px 0;font:600 13px Arial,sans-serif}
#save-status{padding:5px 12px;border-radius:999px;background:var(--km-geno-e9f3ec);color:var(--km-geno-2f6b42)}
#save-status[data-state="saving"]{background:var(--km-geno-f6eded);color:var(--km-geno-842f45)}
#save-status[data-state="unsaved"]{background:var(--km-geno-fbe4e4);color:var(--km-geno-9a1c1c)}
#conflict-banner{display:inline-flex;align-items:center;gap:10px;color:var(--km-geno-9a1c1c)}

/* KM-128: smartphone-first authentication (KM-121/122 behaviour unchanged). */
/* Author-level grid/flex rules must never override the hidden states. */
.editor-page [hidden]{display:none!important}
.editor-page.auth-screen .editor-intro{display:none}
.editor-page.auth-screen .project-auth{
  box-sizing:border-box;
  width:min(100% - 32px,460px);
  margin:36px auto 54px;
  padding:30px 32px 32px;
  border:1px solid var(--km-geno-e5d9dc);
  border-radius:20px;
  background:var(--km-brand-white);
  box-shadow:0 14px 40px var(--km-geno-rgba-46-29-43-08);
}
.project-auth .auth-kicker{
  margin:0 0 9px;color:var(--km-geno-8a4558);font:700 11px/1.4 Arial,sans-serif;
  letter-spacing:.14em;text-transform:uppercase;
}
.project-auth #project-auth-title{
  margin:0 0 9px;color:var(--km-geno-263b4b);font:500 clamp(23px,3vw,29px)/1.22 Georgia,serif;
}
.project-auth .auth-description{margin:0 0 16px;color:var(--km-geno-5a6673);font:14px/1.6 Arial,sans-serif}
.project-auth #project-auth-message{
  margin:0 0 14px;
  color:var(--km-geno-694253);font:500 14px/1.5 Arial,sans-serif;
  overflow-wrap:anywhere;
}
.project-auth #project-auth-message:empty{display:none}
.project-auth .project-login{
  display:grid;grid-template-columns:minmax(0,1fr);
  max-width:none;gap:9px;
}
.project-auth .project-login label{
  margin-top:7px;color:var(--km-geno-344451);font:600 14px/1.4 Arial,sans-serif;
}
.project-auth .project-login input{
  box-sizing:border-box;display:block;
  width:100%;min-width:0;min-height:52px;
  padding:13px 14px;border:1px solid var(--km-color-field-border);
  border-radius:12px;background:var(--km-brand-white);color:var(--km-geno-202c3a);
  font:400 16px/1.3 Arial,sans-serif;
}
.project-auth .project-login input:focus-visible{
  outline:3px solid var(--km-geno-b37788);outline-offset:1px;border-color:var(--km-brand-burgundy);
}
.project-auth .auth-password-field{position:relative;min-width:0}
.project-auth .auth-password-field input{padding-right:102px}
.project-auth .auth-password-toggle{
  position:absolute;right:5px;top:50%;transform:translateY(-50%);
  min-width:82px;min-height:44px;padding:8px;
  border:0;border-radius:9px;background:transparent;
  color:var(--km-brand-burgundy);font:600 13px Arial,sans-serif;cursor:pointer;
}
.project-auth .auth-password-toggle:focus-visible,
.project-auth .auth-switch-button:focus-visible{
  outline:3px solid var(--km-geno-8e3e55);outline-offset:2px;
}
.project-auth .project-login>.inspector-action,
.project-auth .project-login>.editor-outline-action{
  box-sizing:border-box;display:flex;
  min-height:52px;width:100%;
  justify-content:center;align-items:center;text-align:center;
  margin-top:14px;padding:12px 16px;
  font:700 15px/1.35 Arial,sans-serif;
  border-radius:12px;
}
.project-auth .project-login>.editor-outline-action{
  margin-top:3px;background:var(--km-brand-white);
}
.project-auth .auth-alternative{
  margin-top:12px;padding-top:15px;border-top:1px solid var(--km-geno-f0e7e8);
  text-align:center;color:var(--km-geno-5a6673);
  font:14px/1.45 Arial,sans-serif;
}
.project-auth .auth-switch-button{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;padding:8px 10px;border:0;border-radius:8px;
  background:transparent;color:var(--km-brand-burgundy);
  font:700 14px Arial,sans-serif;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;
}
.project-auth .auth-hint{margin:-3px 0 0;color:var(--km-geno-5a6673);font:12px/1.5 Arial,sans-serif}
.project-auth .auth-notice{
  margin:4px 0 12px;padding:12px 14px;
  border-radius:11px;background:var(--km-geno-f6eff1);
  color:var(--km-geno-573e49);font:14px/1.55 Arial,sans-serif;
}
.project-auth .auth-notice:empty{display:none}
.project-auth #register-error,.project-auth #verify-error{
  margin:2px 0 0;font:600 13px/1.5 Arial,sans-serif;
}
@media (max-width:650px){
  .editor-page.auth-screen .editor-app{min-height:100dvh}
  .editor-page.auth-screen .editor-header{padding:12px 18px}
  .editor-page.auth-screen .editor-header .geno-home{display:inline-flex;align-items:center;min-height:44px;box-sizing:border-box}
  .editor-page.auth-screen .demo-label{display:none}
  .editor-page.auth-screen .project-auth{
    width:calc(100% - 28px);margin:22px auto 32px;
    padding:25px 20px 26px;border-radius:18px;
  }
  .project-auth #project-auth-title{font-size:26px}
  .project-auth .project-login{gap:9px}
  .project-auth .project-login>.inspector-action{margin-top:12px}
  .editor-page.auth-screen .demo-footer{padding-bottom:max(22px,env(safe-area-inset-bottom))}
}

/* ==========================================================================
   KM-128 Revision 2 – mobile-first editor shell (all values from /styles.css tokens).
   Desktop (>960px) keeps the three-column workspace. At <=960px the graph comes first;
   display options and person details open on demand as labelled sheets (editor.js).
   ========================================================================== */
.sheet-head,.graph-actions,.selection-bar,.hint-touch,.sheet-extras,.sheet-scrim{display:none}
.quick-action{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--km-touch);min-width:var(--km-touch);padding:8px 12px;border:1px solid var(--km-color-accent);border-radius:var(--km-radius-md);background:var(--km-color-surface);color:var(--km-color-accent);font:700 14px/1.2 var(--km-font-ui);text-align:center;cursor:pointer}
.quick-action-primary{background:var(--km-color-accent);color:var(--cream)}
.quick-action:focus-visible,.sheet-close:focus-visible{outline:3px solid var(--km-color-focus);outline-offset:2px}
.inspector-action,.editor-outline-action{min-height:var(--km-touch)}
.remove-relation,.fact-action{min-height:28px;min-width:28px}
.editor-page .project-auth .auth-hint,.editor-page .side-hint,.editor-page .demo-footer{color:var(--km-geno-5a6673)}
.editor-page .legend-row{color:var(--km-geno-4b5866)}


/* Formular- und Dialogbedienung auf Smartphones: einspaltig, 16px, 44px+ Ziele, Safe-Area. */
@media (max-width:650px){
  .editor-page .editor-dialog{width:100%;max-width:none;margin:auto 0 0;max-height:92dvh;border-width:1px 0 0;border-radius:var(--km-radius-lg) var(--km-radius-lg) 0 0;padding:18px 16px calc(14px + var(--km-safe-bottom));overscroll-behavior:contain}
  .editor-page .editor-form label{font-size:14px}
  .editor-page .editor-form input,.editor-page .editor-form select,.editor-page .editor-form textarea{min-height:48px;font-size:16px;padding:10px 12px}
  .editor-page .editor-form-columns{grid-template-columns:1fr}
  .editor-page .editor-form>p:first-of-type,.editor-page .panel-hint,.editor-page .chip-intro,.editor-page .chip-selection-hint{font-size:14px;color:var(--km-geno-4b5866)}
  .editor-page .editor-form-error{font-size:14px}
  .editor-page .editor-form-actions{position:sticky;bottom:0;z-index:1;gap:8px;margin-top:12px;padding:10px 0 2px;background:var(--km-color-surface)}
  .editor-page .editor-form-actions button{flex:1 1 40%;min-height:48px;padding:10px 12px;font-size:15px;justify-content:center}
  .editor-page .editor-danger-action{min-height:48px}
  .editor-page .person-compact-grid,.editor-page .entry-input-grid{grid-template-columns:minmax(0,1fr);gap:14px}
  .editor-page .person-compact-grid>*{grid-column:auto}
  .editor-page .person-field{gap:6px}
  .editor-page .person-field span{font-size:14px}
  .editor-page .detail-window .person-field input,.editor-page .detail-window .person-field select,.editor-page .detail-window .person-field textarea{min-height:48px;font-size:16px;padding:10px 12px}
  .editor-page .detail-window .person-field textarea{min-height:96px}
  .editor-page .detail-window #person-note{min-height:96px}
  .editor-page .person-chip-groups .chip-group{padding:12px}
  .editor-page .chip-group-title,.editor-page .person-chip-groups .chip-group-title{font-size:14px}
  .editor-page .person-chip-groups .chip-options{gap:8px}
  .editor-page .entry-chip,.editor-page .person-chip-groups .entry-chip{min-height:var(--km-touch);padding:8px 14px;font-size:14px}
  .editor-page .chip-custom-field{grid-template-columns:minmax(0,1fr) var(--km-touch)}
  .editor-page .chip-custom-field label{grid-column:1/-1;font-size:14px}
  .editor-page .chip-custom-field input{min-height:48px;font-size:16px;padding:8px 12px}
  .editor-page .chip-custom-field .chip-add-custom{width:var(--km-touch);height:48px}
  .editor-page .fact-action{min-height:var(--km-touch);min-width:var(--km-touch)}
  .editor-page .person-entry-list li{font-size:14px;flex-wrap:wrap}
  /* Anmeldung */
  .project-auth .auth-password-toggle{min-width:88px}
  .project-auth .project-login input{font-size:16px}
}
@media (prefers-reduced-motion:reduce){
  .editor-page *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* KM-129: external login providers and linked login methods (no external assets) */
.project-auth .auth-providers[hidden]{display:none}
.project-auth .auth-providers-title{margin:0 0 8px;color:var(--km-geno-573e49);font:700 14px Arial,sans-serif}
.project-auth .auth-provider-buttons{display:grid;gap:10px}
.project-auth .auth-provider-button,.project-auth .identity-action{
  box-sizing:border-box;display:flex;align-items:center;justify-content:center;
  min-height:52px;width:100%;padding:12px 16px;border:1px solid var(--km-brand-rose);border-radius:12px;
  background:var(--km-brand-white);color:var(--km-brand-navy);font:700 15px/1.35 Arial,sans-serif;cursor:pointer;
}
.project-auth .auth-provider-button:focus-visible,.project-auth .identity-action:focus-visible{outline:3px solid var(--km-brand-burgundy);outline-offset:2px}
.project-auth .auth-provider-button[aria-busy="true"],.project-auth .auth-provider-button:disabled,
.project-auth .identity-action:disabled{opacity:.6;cursor:progress}
.project-auth .auth-provider-note:empty{display:none}
.project-auth .auth-divider{
  display:flex;align-items:center;gap:12px;margin:16px 0 4px;color:var(--km-geno-5a6673);font:13px Arial,sans-serif;
}
.project-auth .auth-divider::before,.project-auth .auth-divider::after{content:"";flex:1;height:1px;background:var(--km-geno-e3d5d8)}
.project-auth .identity-manager{margin-top:18px;padding-top:14px;border-top:1px solid var(--km-geno-f0e7e8)}
.project-auth .identity-manager h3{margin:0 0 6px;font:700 16px Arial,sans-serif;color:var(--km-brand-navy)}
.project-auth .identity-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:10px}
.project-auth .identity-list li{display:grid;gap:6px;padding:10px 12px;border-radius:11px;background:var(--km-geno-f6eff1);font:14px/1.45 Arial,sans-serif}
.project-auth .identity-list .identity-action{min-height:44px}
.project-auth #identity-message{margin:4px 0 0;font:600 13px/1.5 Arial,sans-serif;color:var(--km-geno-573e49)}
.project-auth #identity-message:empty{display:none}


/* ==========================================================================
   KM-130 Revision 2 – maximale Zeichenfläche: sehr niedrige Kopfzeile, eine schmale Werkzeugleiste,
   Anzeige und Profil als bei Bedarf geöffnete Overlay-Panels (editor.js, Sheet-Logik).
   ========================================================================== */
:root{--rail-w:0px;--head-h:48px}
.editor-page .editor-header{display:flex;align-items:center;justify-content:flex-start;gap:12px;box-sizing:border-box;min-height:var(--head-h);padding:2px max(12px,env(safe-area-inset-right)) 2px max(10px,env(safe-area-inset-left));border-bottom:1px solid var(--km-geno-e9dfe1);background:var(--km-brand-white)}
.editor-header .editor-home{display:flex;align-items:center;justify-content:center;flex:none;min-width:44px;min-height:44px;gap:12px;text-decoration:none}
.editor-header .logo{display:block;flex:none;width:44px;max-width:none;height:auto;margin:0}
.editor-header h1{min-width:0;margin:0;color:var(--km-geno-192d40);font:500 clamp(15px,2vw,20px)/1.2 Georgia,'Times New Roman',serif;letter-spacing:-.01em}
.editor-header h1 em{color:var(--km-geno-8a4558);font-style:italic;font-weight:400}

/* Vollflächiger Arbeitsplatz (nicht auf dem Anmeldebildschirm) */
.editor-page:not(.auth-screen){overflow:hidden}
.editor-page:not(.auth-screen) .editor-app{display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:0;overflow:hidden}
.editor-page:not(.auth-screen) .editor-header{flex:none}
.editor-page:not(.auth-screen) .demo-footer{display:none}
.editor-page:not(.auth-screen) .project-auth{flex:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;font-size:14px}
.editor-page:not(.auth-screen) .project-auth .auth-kicker,.editor-page:not(.auth-screen) .project-auth .auth-description,.editor-page:not(.auth-screen) .auth-path{display:none}
.editor-page:not(.auth-screen) .project-auth #project-auth-title{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.editor-page:not(.auth-screen) .project-auth #project-auth-message{margin:0;padding:6px 14px}
.editor-page:not(.auth-screen) #project-create{padding:16px}
.editor-page:not(.auth-screen) .workspace{flex:1 1 0;min-height:0;max-width:none;margin:0;display:flex;flex-direction:column;border:0;border-radius:0;box-shadow:none}
.editor-page .workspace-body{flex:1 1 0;min-height:0;display:grid;grid-template-columns:minmax(0,1fr)}
.editor-page.auth-screen .editor-app{min-height:100vh;min-height:100dvh}
.editor-page.auth-screen .project-auth{margin:32px auto 48px}
.auth-path-home{margin-top:6px;padding-top:0;border-top:0}

/* Schmale Werkzeugleiste */
.rail-group{display:flex;flex-direction:column;gap:6px;margin:0;padding:0}
.rail-links{padding-top:8px;border-top:1px solid var(--km-geno-ece8e7)}
.rail-btn{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;min-width:var(--km-touch);min-height:54px;padding:5px 2px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--km-geno-4a3340);font:700 10.5px/1.15 Arial,sans-serif;text-align:center;text-decoration:none;cursor:pointer}
.rail-btn svg{width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rail-btn:hover{background:var(--km-geno-f5ebee);color:var(--km-brand-burgundy)}
.rail-btn:focus-visible{outline:3px solid var(--km-brand-navy);outline-offset:1px}
.rail-btn[aria-expanded="true"],.rail-btn[aria-current="page"]{border-color:var(--km-brand-rose);background:var(--km-geno-f5e8eb);color:var(--km-brand-burgundy)}
.rail-btn[aria-current="page"]{box-shadow:inset 3px 0 var(--km-brand-burgundy)}
.rail-primary{border-color:var(--km-brand-burgundy);background:var(--km-brand-burgundy);color:var(--km-brand-white)}
.rail-primary:hover{background:var(--km-geno-963e56);color:var(--km-brand-white)}

/* Zeichenfläche füllt den Rest */
.editor-page .graph-panel{position:relative;display:block;min-width:0;min-height:0;height:100%;background:var(--km-brand-white)}
.editor-page .graph-viewport{position:absolute;inset:0;flex:none;height:auto;min-height:0}
.editor-page .graph-watermark{display:none}
.editor-page .graph-panel-header{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:6px;padding:8px;border:0;background:transparent;pointer-events:none}
.editor-page .graph-panel-header>*{pointer-events:auto}
.editor-page .zoom-controls{margin-left:auto;box-shadow:0 2px 10px var(--km-geno-rgba-20-40-61-18)}
.editor-page .zoom-controls button{min-width:var(--km-touch);height:var(--km-touch)}
.editor-page .zoom-controls button:focus-visible{outline:3px solid var(--km-brand-navy);outline-offset:-3px}
.editor-page .zoom-controls output{min-width:56px;font-size:13px;color:var(--km-geno-4b5866)}
.graph-panel-header .demo-label{padding:7px 12px;background:var(--km-geno-rgba-255-255-255-94);box-shadow:0 2px 10px var(--km-geno-rgba-20-40-61-12)}
.graph-panel-header .save-bar{margin:0;padding:4px 6px;border-radius:var(--km-radius-md);background:var(--km-geno-rgba-255-255-255-94);box-shadow:0 2px 10px var(--km-geno-rgba-20-40-61-12);font-size:13px}
.editor-page .graph-bottom{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;flex-wrap:wrap;gap:2px 14px;padding:4px 12px;border:0;background:var(--km-geno-rgba-255-255-255-85);color:var(--km-geno-4b5866);font:12px/1.4 Arial,sans-serif;pointer-events:none}
.hint-touch{display:none}
@media (pointer:coarse){.hint-pointer{display:none}.hint-touch{display:inline}}

/* Auswahlleiste über dem Graph */
.editor-page .selection-bar{position:absolute;left:50%;bottom:34px;z-index:3;transform:translateX(-50%);box-sizing:border-box;display:flex;align-items:center;gap:8px;max-width:calc(100% - 16px);padding:6px 8px 6px 14px;border:1px solid var(--km-geno-d8c6cb);border-radius:14px;background:var(--km-geno-rgba-255-255-255-97);box-shadow:0 6px 24px var(--km-geno-rgba-20-40-61-22)}
.selection-bar-text{flex:1 1 auto;min-width:0;margin:0;display:flex;flex-direction:column;line-height:1.25}
.selection-bar-text span{color:var(--km-geno-4b5866);font:12px Arial,sans-serif}
.selection-bar-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:32ch;color:var(--km-color-text);font:600 16px/1.3 Georgia,serif}
.editor-page .selection-bar[hidden],.editor-page .selection-relations[hidden]{display:none}
.editor-page .selection-bar:has(.selection-relations:not([hidden])){flex-wrap:wrap;width:max-content;max-width:min(96%,640px)}
.selection-relations:not([hidden]){display:flex;flex-direction:column;gap:4px;width:100%;order:2;max-height:min(36vh,320px);overflow-y:auto;overscroll-behavior:contain}
.selection-relation{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;color:var(--km-geno-33465a);font:12px/1.4 Arial,sans-serif}
.selection-relation span{overflow-wrap:anywhere}
.selection-relation .quick-action{white-space:nowrap}
.selection-relation .quick-action:focus-visible{outline:3px solid var(--km-geno-822b45);outline-offset:2px}

/* Overlay-Panels: Anzeige links neben der Leiste, Profil rechts; Telefone als Bottom-Sheet */
.sheet-head{display:flex;position:sticky;top:0;z-index:2;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px 8px 18px;border-bottom:1px solid var(--km-geno-ece8e7);background:var(--km-color-surface)}
.sheet-head .sheet-title{margin:0;font-size:18px;line-height:1.25}
.sheet-title:focus{outline:none}
.sheet-title:focus-visible{outline:3px solid var(--km-color-focus);outline-offset:3px}
.sheet-close{box-sizing:border-box;flex:none;min-height:var(--km-touch);padding:8px 14px;border:1px solid var(--km-color-accent);border-radius:var(--km-radius-md);background:var(--km-color-surface);color:var(--km-color-accent);font:700 14px/1.2 var(--km-font-ui);cursor:pointer}
.sheet-scrim{display:block;position:fixed;inset:0;z-index:30;background:var(--km-geno-rgba-20-40-61-38)}
.editor-page .editor-sidebar{position:fixed;z-index:40;top:calc(var(--head-h) + 8px);bottom:8px;box-sizing:border-box;width:min(350px,calc(100vw - var(--rail-w) - 16px));overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--km-geno-d8c6cb);border-radius:14px;background:var(--km-color-surface);box-shadow:0 18px 50px var(--km-geno-rgba-20-40-61-32)}
.editor-page .editor-sidebar{left:calc(var(--rail-w) + 8px)}
.editor-page .side-section{padding:16px 18px}
.sheet-extras .view-picker{width:100%;box-sizing:border-box}
.sheet-extras .view-button{flex:1;min-height:var(--km-touch);white-space:normal}
.sheet-extras .workspace-heading-line{margin:0 0 12px;color:var(--km-geno-27384a);font:14px/1.5 Arial,sans-serif}
.sheet-extras .workspace-note{margin:12px 0 0;color:var(--km-geno-4b5866);font:13px/1.5 Arial,sans-serif}
.sheet-extras #project-session{margin-top:12px}
.sheet-extras #project-account{overflow-wrap:anywhere;font:14px/1.4 Arial,sans-serif}
.layer-switch{min-height:var(--km-touch);margin:0;gap:12px;font-size:15px}
.layer-switch input{width:24px;height:24px;flex:none}
.fact-kinds .layer-sub{font-size:14px}
.stat-grid span,.legend-row{font-size:14px}
.side-hint{font-size:13px}
.inspector-action,.editor-outline-action{min-height:48px;font-size:14px}
.remove-relation,.fact-action{min-height:var(--km-touch);min-width:var(--km-touch);font-size:13px}
.relation-list li{font-size:14px}
body.sheet-open{overflow:hidden}

/* Legende (zunächst zugeklappt) und Anmelde-Verweise */
.editor-page .legend-section{padding-top:12px;padding-bottom:12px}
.legend-disclosure summary{box-sizing:border-box;min-height:44px;display:list-item;align-content:center;cursor:pointer;color:var(--km-geno-263b4b);font:700 14px/1.4 var(--km-font-ui,Arial,sans-serif)}
.legend-disclosure[open] summary{margin-bottom:12px;border-bottom:1px solid var(--km-geno-ece8e7);padding-bottom:12px}
.legend-content .legend-row{line-height:1.45}
.legend-disclosure summary:focus-visible,.auth-path a:focus-visible{outline:3px solid var(--km-brand-burgundy);outline-offset:3px}
.auth-path{margin:20px 0 0;padding:16px 0 0;border-top:1px solid var(--km-geno-f0e7e8);text-align:center;color:var(--km-geno-516070);font:14px/1.55 var(--km-font-ui,Arial,sans-serif)}
.auth-path a{display:inline-flex;min-height:44px;align-items:center;color:var(--km-brand-burgundy);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.auth-path.auth-path-home{margin-top:0;padding-top:0;border-top:0}

@media (max-width:650px){
  :root{--rail-w:0px}
  .editor-header h1{font-size:15px}
  .editor-header .logo{width:40px}
  .rail-btn{font-size:10px}
  .editor-page .graph-bottom .hint-pointer,.editor-page .graph-bottom .hint-touch{display:none}
  .editor-page .selection-bar{bottom:30px}
  .editor-page .editor-sidebar{top:auto;bottom:0;left:0;right:0;width:100%;max-width:680px;margin-inline:auto;max-height:min(84dvh,760px);border-width:1px 0 0;border-radius:var(--km-radius-lg) var(--km-radius-lg) 0 0;padding-bottom:var(--km-safe-bottom);box-shadow:0 -12px 40px var(--km-geno-rgba-20-40-61-3)}
}
@media (max-height:520px){
  .rail-btn{min-height:44px;gap:1px}
  .rail-btn svg{width:20px;height:20px}
  .editor-page .selection-bar{bottom:28px}
}
@media (prefers-reduced-motion:reduce){
  .rail-btn,.legend-disclosure summary{scroll-behavior:auto;transition:none}
}
.sheet-extras{display:block}


/* KM-133: selected people and stateful, keyboard-accessible graph tools. */
#graph-content .person.selected .person-shape{stroke:var(--km-brand-burgundy);stroke-width:5}
#graph-content .person.selected .person-card{stroke:var(--km-brand-burgundy);stroke-width:3.5}
#graph-content .person.selected .person-shape,
#graph-content .person.selected .person-card{filter:drop-shadow(0 0 3px var(--km-geno-rgba-122-38-58-5))}
.rail-btn[aria-busy="true"]{cursor:progress;opacity:.7}

/* KM-137: neutral white canvas, saturated relationship colors, clear junction semantics. */
.editor-page .graph-panel,.editor-page .graph-viewport{background:var(--km-brand-white)}
#graph-content .edge-partner{stroke:var(--km-geno-a32cdb);stroke-width:3.1}
#graph-content .edge-parent{stroke:var(--km-geno-1167e8);stroke-width:3}
#graph-content .edge-parent[data-link="adoptive"]{stroke-dasharray:8 6}
#graph-content .edge-sibling{stroke:var(--km-geno-009b64);stroke-width:2.9;stroke-dasharray:none;opacity:1}
#graph-content .edge-sibling-untyped{stroke-dasharray:6 5}
#graph-content .edge-status{stroke:var(--km-geno-ec3d32)}
#graph-content .edge-junction{fill:var(--km-geno-23374a);stroke:var(--km-brand-white);stroke-width:1.5;pointer-events:none}
.legend-line{border-top-color:var(--km-geno-a32cdb)}
.legend-line.untyped-sibling-line{border-top:3px dashed var(--km-geno-009b64)}
.legend-line.parent-line{border-top:3px solid var(--km-geno-1167e8)}
.legend-line.adopted-line{border-top:3px dashed var(--km-geno-1167e8)}
#graph-content .person-shape{fill:var(--km-geno-f8fafc);stroke:var(--km-geno-64748b)}
#graph-content .person.male .person-shape{fill:var(--km-geno-e9f3ff);stroke:var(--km-geno-2469bb)}
#graph-content .person.neutral .person-shape{fill:var(--km-geno-f0ecff);stroke:var(--km-geno-7061ba)}
#graph-content .person .person-card{stroke:var(--km-geno-cbd5e1);filter:drop-shadow(0 2px 5px var(--km-geno-rgba-15-23-42-09))}
#graph-content .person .focus-pill{fill:var(--km-geno-334155)}
#graph-content .person .focus-ring{stroke:var(--km-geno-475569)}
#graph-content .person.selected .person-shape{stroke:var(--km-geno-1485ff);stroke-width:4}
#graph-content .person.selected .person-card{stroke:var(--km-geno-1485ff);stroke-width:3}
#graph-content .person.selected .person-shape,
#graph-content .person.selected .person-card{filter:drop-shadow(0 0 3px var(--km-geno-rgba-20-133-255-3))}

/* Long-press feedback is screen-sized and never intercepts a canvas gesture. */
.touch-selection-status{position:absolute;top:12px;left:12px;z-index:2;padding:9px 13px;border:2px solid var(--km-geno-822b45);border-radius:8px;background:var(--km-brand-white);color:var(--km-geno-672238);font:600 13px/1.4 Arial,sans-serif;pointer-events:none}
.touch-selection-status[hidden]{display:none}
.selection-wave{position:absolute;box-sizing:border-box;border:2px solid var(--km-geno-822b45);border-radius:50%;pointer-events:none;animation:selection-wave 400ms ease-out both}
@keyframes selection-wave{from{transform:scale(1);opacity:.8}to{transform:scale(1.4);opacity:0}}
#family-graph.touch-selecting .person.selected .person-shape{stroke:var(--km-geno-672238);stroke-width:5;stroke-dasharray:6 3}
#family-graph.touch-selecting .person.selected .person-card{stroke:var(--km-geno-672238);stroke-width:3;stroke-dasharray:6 3}
@media(prefers-reduced-motion:reduce){.selection-wave{display:none;animation:none}}

/* KM-244: three clearly separated editor areas – commands, tools, properties. */
.editor-page:not(.auth-screen) .graph-panel-header.editor-command-bar{
  position:relative;top:auto;left:auto;right:auto;z-index:5;flex:none;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
  gap:7px 14px;box-sizing:border-box;min-height:58px;padding:7px 14px;
  border-bottom:1px solid var(--km-geno-e5e2e1);background:var(--km-brand-cream);pointer-events:auto;
}
.editor-page .editor-command-bar .command-group{display:flex;align-items:center;gap:5px;min-width:0}
.editor-page .editor-command-bar .command-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  box-sizing:border-box;min-height:44px;padding:8px 12px;border:1px solid var(--km-geno-e2d8db);
  border-radius:9px;background:var(--km-brand-white);color:var(--km-geno-24394e);
  font:600 13px/1.2 var(--km-font-ui,Arial,sans-serif);cursor:pointer;white-space:nowrap;
}
.editor-page .editor-command-bar .command-btn svg{
  display:block;width:19px;height:19px;flex:none;fill:none;stroke:currentColor;
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}
.editor-page .editor-command-bar .command-btn:hover:not(:disabled){background:var(--km-geno-f7eef1);border-color:var(--km-brand-rose);color:var(--km-brand-burgundy)}
.editor-page .editor-command-bar .command-btn[aria-expanded="true"]{
  background:var(--km-geno-f3e6ea);border-color:var(--km-geno-b9788b);color:var(--km-geno-762a41);box-shadow:inset 0 -2px var(--km-brand-burgundy);
}
.editor-page .editor-command-bar .command-btn:disabled{opacity:.44;cursor:not-allowed}
.editor-page .editor-command-bar .command-btn:focus-visible{
  outline:3px solid var(--km-brand-navy);outline-offset:2px;
}
.editor-page .editor-command-bar .command-zoom{margin-inline:auto}
.editor-page .editor-command-bar .zoom-controls{
  margin:0;box-shadow:none;border-color:var(--km-geno-e2d8db);border-radius:9px;
}
.editor-page .editor-command-bar .zoom-controls button{height:44px;min-width:44px}
.editor-page .editor-command-bar .zoom-controls output{min-width:52px}
.editor-page .editor-command-bar .save-bar{margin-right:auto;box-shadow:none}
.sheet-scrim[hidden]{display:none!important}
.rail-label{margin:6px 2px 5px;color:var(--km-geno-84636e);font:700 10px/1.35 var(--km-font-ui,Arial,sans-serif);text-transform:uppercase;letter-spacing:.15em}
@media(min-width:960px){
  :root{--rail-w:0px}
  .editor-page:not(.auth-screen) .workspace-body{
    grid-template-columns:minmax(0,1fr) auto;
  }
  .editor-page:not(.auth-screen) .graph-panel{grid-column:1;grid-row:1}
  .editor-page:not(.auth-screen) .editor-sidebar{
    grid-column:2;grid-row:1;position:relative;inset:auto;z-index:1;
    width:310px;height:100%;max-height:100%;min-width:0;
    border:0;border-left:1px solid var(--km-geno-e6dfe1);border-radius:0;
    box-shadow:none;overflow-y:auto;overscroll-behavior:contain;background:var(--km-brand-white);
  }
  .editor-page:not(.auth-screen) .editor-sidebar{padding:0;background:var(--km-geno-fcfbfa)}
  .editor-page:not(.auth-screen) .editor-sidebar[hidden]{display:none}
  .editor-page:not(.auth-screen) .editor-sidebar .sheet-head{display:none}
  .editor-page .editor-sidebar .side-section{padding:16px 18px}
  .editor-page .editor-sidebar .stat-grid>div{padding:10px}
}

@media(max-width:680px){
  .editor-page:not(.auth-screen) .graph-panel-header.editor-command-bar{gap:5px;padding:5px 7px}
  .editor-page .editor-command-bar .command-group{gap:3px}
  .editor-page .editor-command-bar .command-btn{padding:7px;min-width:44px}
  .editor-page .editor-command-bar .command-btn span{display:none}
  .editor-page .editor-command-bar .command-zoom{margin-inline:0}
  .editor-page .editor-command-bar .zoom-controls button{min-width:40px}
  .editor-page .editor-command-bar .zoom-controls output{min-width:42px}
  .editor-page .editor-command-bar .save-bar{order:-1}
}
@media(max-width:959px){
  :root{--rail-w:0px}
}


/* KM-244 r3: primary Darstellung entry; existing view buttons stay the only mode selectors. */
.editor-page .display-mode-menu{position:relative;flex:none;z-index:9;pointer-events:auto;font-family:var(--km-font-ui,Arial,sans-serif)}
.editor-page .mode-summary{
  box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:8px 11px;border:1px solid var(--km-geno-ddcbd1);border-radius:9px;
  background:var(--km-brand-white);color:var(--km-geno-24394e);cursor:pointer;list-style:none;
  font:600 13px/1.2 var(--km-font-ui,Arial,sans-serif);white-space:nowrap;
}
.editor-page .mode-summary::-webkit-details-marker{display:none}
.editor-page .mode-summary::marker{content:""}
.editor-page .mode-summary svg{
  width:19px;height:19px;flex:none;fill:none;stroke:currentColor;
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}
.editor-page .mode-summary strong{font-weight:700}
.editor-page .mode-summary .display-mode-current{padding-left:8px;border-left:1px solid var(--km-geno-e4d7db);color:var(--km-brand-burgundy);font-weight:600}
.editor-page .mode-summary .mode-chevron{font-size:18px;line-height:1;transition:transform .15s}
.editor-page .display-mode-menu[open] .mode-chevron{transform:rotate(180deg)}
.editor-page .mode-summary:hover,.editor-page .display-mode-menu[open] .mode-summary{
  background:var(--km-geno-f7eef1);border-color:var(--km-geno-c1909d);color:var(--km-brand-burgundy);
}
.editor-page .mode-summary:focus-visible{outline:3px solid var(--km-brand-navy);outline-offset:3px}
.editor-page .display-mode-options{
  box-sizing:border-box;position:absolute;top:calc(100% + 7px);right:0;
  width:266px;max-width:calc(100vw - 20px);padding:14px;
  border:1px solid var(--km-geno-d6c5ca);border-radius:13px;background:var(--km-brand-white);
  box-shadow:0 12px 30px var(--km-geno-rgba-20-40-61-18);color:var(--km-geno-24394e);
  pointer-events:auto;
}
.editor-page .display-mode-options p{
  margin:0 0 10px;color:var(--km-geno-5d5360);
  font:700 11px/1.3 var(--km-font-ui,Arial,sans-serif);
  letter-spacing:.09em;text-transform:uppercase;
}
.editor-page .display-mode-options .view-picker{width:100%;box-sizing:border-box}
.editor-page .display-mode-options .view-button{flex:1;min-height:44px;padding:9px 11px}
.editor-page .display-mode-options .view-button:focus-visible{outline:3px solid var(--km-brand-navy);outline-offset:2px}
@media(max-width:680px){
  .editor-page .mode-summary{gap:5px;padding:8px 9px}
  .editor-page .mode-summary .display-mode-current{display:none}
  .editor-page .display-mode-options{left:0;right:auto}
}
@media(prefers-reduced-motion:reduce){.editor-page .mode-summary .mode-chevron{transition:none}}

/* KM-244 r4: deliberately narrow labels-first rail, maximising canvas width. */
@media(min-width:960px){
  :root{--rail-w:0px}
}
.editor-page .note-dialog{width:min(500px,calc(100vw - 24px))}
.editor-page .note-dialog #note-text{box-sizing:border-box;min-height:175px;font:15px/1.5 var(--km-font-ui,Arial,sans-serif);resize:vertical}
.editor-page .note-dialog .editor-form>p:first-of-type{font-size:14px;margin:0 0 8px}
.editor-page .note-dialog button:disabled{opacity:.55;cursor:wait}

/* KM-262: relation overlay reuses the existing dialog, chip, rail and tool patterns. */
#graph-content .aspect-arc{fill:none;stroke:var(--km-geno-df842c);stroke-width:2.3;stroke-dasharray:1 7;stroke-linecap:round;pointer-events:none}
#graph-content .aspect-hit{fill:none;stroke:transparent;stroke-width:20;pointer-events:stroke;cursor:pointer}
#graph-content .aspect-node{cursor:pointer}
#graph-content .aspect-hit:focus-visible{stroke:var(--km-brand-burgundy);stroke-opacity:.2;outline:none}
#graph-content .aspect-chip-box{fill:var(--km-geno-fff9f1);stroke:var(--km-geno-e3a864);stroke-width:.9}
#graph-content .aspect-chip-text{font:11px Arial,sans-serif;fill:var(--km-geno-87440f);pointer-events:none}
.aspect-fieldset{border:0;margin:4px 0 10px;padding:0;min-width:0}
.aspect-fieldset legend{font:600 13px Arial,sans-serif;margin-bottom:12px}
.aspect-options{display:flex;gap:8px;flex-wrap:wrap}
.aspect-options .entry-chip{min-height:36px;cursor:pointer;border:1px solid var(--km-geno-ddc9ce);border-radius:20px;padding:6px 12px;background:var(--km-brand-white);color:var(--km-geno-383d49)}
.aspect-options .entry-chip[aria-pressed="true"]{background:var(--km-geno-fce8cc);border-color:var(--km-geno-c67519);color:var(--km-geno-603406)}
.aspect-add-row{display:flex;gap:8px;align-items:center}
.aspect-add-row input{flex:1;min-width:0}
.aspect-dialog{width:min(550px,calc(100vw - 24px));max-height:90dvh}
.aspect-dialog #aspect-delete{color:var(--km-geno-9d2936)}
@media(max-width:600px){.aspect-add-row{flex-wrap:wrap}.aspect-add-row button,.aspect-options .entry-chip{min-height:44px}}

/* KM-270: compact family branches and accessible child table. */
.children-editor{margin-top:16px;border-top:1px solid var(--km-geno-c6d3dc);padding-top:12px}
.children-editor h3{font-size:1rem;margin:0 0 8px}
.children-table-scroll{overflow-x:auto}
.children-table{width:100%;border-collapse:collapse;font-size:13px}
.children-table th,.children-table td{padding:7px;border-bottom:1px solid var(--km-geno-d7e0e8);text-align:left;vertical-align:top}
.children-table input[type=text],.children-table select{max-width:100%;min-width:95px;box-sizing:border-box}
.children-table input[type=checkbox]{width:20px;height:20px}
.children-table td button{display:block;margin-top:5px}
.children-table button:focus-visible,.children-table input:focus-visible{outline:3px solid var(--km-brand-burgundy);outline-offset:2px}
.compact-person-box{fill:var(--km-geno-f3f6f8);stroke:var(--km-geno-62798b);stroke-width:1.5}
.compact-person-name{font-weight:700;font-size:10px;fill:var(--km-geno-162c40)}
.compact-person-fact{font-size:10px;fill:var(--km-geno-32485b)}
.person.selected .compact-person-box{stroke:var(--km-brand-burgundy);stroke-width:3}
/* Condensed siblings share one routed family node, but each child remains independently selectable. */
.compact-family-box{fill:var(--km-brand-white);stroke:var(--km-geno-c4d1dc);stroke-width:1.4}
.compact-family-heading{fill:var(--km-geno-1a2c3b);font-size:10px;font-weight:700}
.compact-family-name{fill:var(--km-geno-213243);font-size:10px;font-weight:600}
.compact-family-detail{fill:var(--km-geno-405365);font-size:10px}
.compact-family-hit{fill:transparent;stroke:none}
.compact-family-entry{cursor:pointer}
.compact-family-entry:hover .compact-family-hit,
.compact-family-entry:focus .compact-family-hit{fill:var(--km-geno-edf3f9)}
.compact-family-entry.selected .compact-family-hit{fill:var(--km-geno-e2ebf7);stroke:var(--km-geno-79243c);stroke-width:1.6}
.compact-family-entry:focus-visible{outline:none}
.compact-family-entry:focus-visible .compact-family-hit{stroke:var(--km-geno-79243c);stroke-width:2}
@media(max-width:600px){.children-table{min-width:480px}}

/* KM-268: non-exported, unobtrusive generation guides with real HTML controls. */
.generation-guides{pointer-events:none}
.generation-guide-line{stroke:var(--km-geno-a6b6c5);stroke-width:1.5;stroke-dasharray:7 8;opacity:.7}
.generation-zone-overlay{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}
.generation-zone-actions{position:absolute;left:12px;max-width:calc(100% - 24px);
  transform:translateY(-50%);display:flex;align-items:center;flex-wrap:wrap;gap:5px;
  border:1px solid var(--km-geno-c5d0d9);background:var(--km-geno-rgba-255-255-255-94);border-radius:8px;
  padding:4px 7px;pointer-events:auto;box-shadow:0 2px 8px var(--km-geno-rgba-20-40-61-08)}
.generation-zone-actions[hidden],.rail-btn[hidden]{display:none!important}
.generation-zone-title{font-size:12px;font-weight:700;color:var(--km-brand-navy);margin-right:4px}
.generation-zone-actions button{font:inherit;font-size:12px;font-weight:600;color:var(--km-brand-navy);
  border:1px solid var(--km-geno-b5c5d1);background:var(--km-geno-f8fafb);border-radius:5px;min-height:28px;
  padding:4px 7px;cursor:pointer;touch-action:manipulation}
.generation-zone-actions button:hover{background:var(--km-brand-mist)}
.generation-zone-actions button:disabled{opacity:.45;cursor:not-allowed}
.generation-zone-actions button:focus-visible{outline:3px solid var(--km-brand-burgundy);outline-offset:2px}
.rail-btn[aria-pressed="true"]{background:var(--km-brand-mist);border-color:var(--km-brand-burgundy)}
@media(max-width:600px){
  .generation-zone-actions{left:5px;max-width:calc(100% - 10px);gap:3px;padding:3px 5px}
  .generation-zone-title{font-size:11px}
  .generation-zone-actions button{font-size:11px;min-height:28px;padding:4px 5px}
}
/* Ladehinweis mittig im Editor, solange die Familie aufgebaut wird (die Leiste läuft auf dem Compositor weiter). */
.graph-loading{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--km-geno-rgba-255-255-255-9);color:var(--km-brand-navy);font:600 17px/1.4 Georgia,serif;text-align:center}
.graph-loading[hidden]{display:none}
.graph-loading p{margin:0;padding:0 16px}
.graph-loading-bar{position:relative;display:block;width:min(240px,70%);height:6px;overflow:hidden;border-radius:3px;background:var(--km-geno-ead9dd)}
.graph-loading-bar::after{content:"";position:absolute;inset:0;width:40%;border-radius:3px;background:var(--km-brand-burgundy);animation:graph-loading-slide 1.2s ease-in-out infinite}
@keyframes graph-loading-slide{from{transform:translateX(-100%)}to{transform:translateX(250%)}}
@media (prefers-reduced-motion:reduce){.graph-loading-bar::after{width:100%;animation:none;opacity:.5}}

/* KM-282: Angaben zur Person als frei verschiebbares, standardmäßig zugeklapptes Fenster im Editorbereich. */
.detail-window{position:absolute;z-index:6;top:12px;right:12px;box-sizing:border-box;width:max-content;max-width:calc(100% - 24px);background:var(--km-brand-white);border:1px solid var(--km-geno-d8c6cb);border-radius:12px;box-shadow:0 10px 30px var(--km-ui-rgba-20-40-61-22);font-family:var(--km-font-ui,Arial,sans-serif)}
.detail-window[hidden]{display:none}
.detail-window[data-corner="tl"]{left:12px;right:auto}
.detail-window[data-corner="bl"]{left:12px;right:auto;top:auto;bottom:44px}
.detail-window[data-corner="br"]{top:auto;bottom:44px}
.detail-window.is-open{width:min(460px,calc(100% - 24px))}
.detail-window :focus-visible{outline:3px solid var(--km-color-focus);outline-offset:2px}
.detail-head{display:flex;align-items:center;gap:2px;padding:2px;cursor:grab;touch-action:none;user-select:none}
.detail-window.is-dragging .detail-head{cursor:grabbing}
.detail-grip,.detail-corner{flex:none;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:var(--km-geno-6b7482);cursor:inherit}
.detail-corner{cursor:pointer}
.detail-grip:hover,.detail-corner:hover{background:var(--km-brand-blush)}
.detail-grip svg{fill:currentColor}
.detail-title{flex:1 1 auto;min-width:0;margin:0}
.detail-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:36px;padding:4px 8px;border:0;border-radius:8px;background:transparent;color:var(--km-geno-203447);cursor:pointer;font:600 15px/1.3 Georgia,serif;text-align:left}
.detail-toggle>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:26ch}
.detail-chevron{flex:none;width:8px;height:8px;border-right:2px solid var(--km-brand-burgundy);border-bottom:2px solid var(--km-brand-burgundy);transform:rotate(45deg);transition:transform .15s}
.detail-toggle[aria-expanded="true"] .detail-chevron{transform:rotate(-135deg)}
.detail-body{max-height:calc(var(--detail-room,560px) - 64px);overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--km-geno-ede3e6)}
.detail-body[hidden],.detail-existing[hidden]{display:none}
.detail-context{margin:0;padding:8px 14px 0;color:var(--km-geno-5a6673);font:12px/1.4 Arial,sans-serif}
.detail-tools{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px}
.detail-tools .editor-outline-action{width:auto;margin:0;padding:6px 10px;min-height:32px;font-size:12px}
.detail-form{margin:0}
.detail-section{border-top:1px solid var(--km-geno-f2eaec)}
.detail-section>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;padding:6px 14px;cursor:pointer;color:var(--km-geno-35495b);font:600 13px Arial,sans-serif;list-style:none}
.detail-section>summary::-webkit-details-marker{display:none}
.detail-section>summary::after{content:"";flex:none;width:7px;height:7px;border-right:2px solid var(--km-brand-burgundy);border-bottom:2px solid var(--km-brand-burgundy);transform:rotate(45deg)}
.detail-section[open]>summary{background:var(--km-geno-fbf5f7);color:var(--km-geno-782e46)}
.detail-section[open]>summary::after{transform:rotate(-135deg)}
.detail-section-body{padding:10px 14px 12px}
.detail-window .person-form-actions{position:sticky;bottom:0;margin:0;padding:8px 14px;border-top:1px solid var(--km-geno-ede3e6);background:var(--km-brand-white);justify-content:flex-end}
.detail-window .person-form-actions[hidden]{display:none}
.detail-window #person-error{margin:0;padding:0 14px}
.detail-window #person-error:empty{display:none}
.detail-window .relation-list li{padding:7px 0}
.detail-window .relation-list li>span{flex:1;min-width:0;overflow-wrap:anywhere}
.detail-window .relation-list li .remove-relation{flex:none}
.detail-window .detail-add{width:auto;margin-top:10px}
@media (max-width:959px){.detail-window{top:8px;right:8px;max-width:calc(100% - 16px)}.detail-window.is-open{width:calc(100% - 16px)}}
@media (prefers-reduced-motion:reduce){.detail-chevron{transition:none}}

/* KM-282 r2: kompakte Basisdaten im Personenfenster (dichte Zeilen, schmale Rahmen, kleine Checkboxen). */
.editor-page .detail-window .editor-form{gap:6px}
.editor-page .detail-window .editor-form input,.editor-page .detail-window .editor-form select,.editor-page .detail-window .editor-form textarea{min-height:28px;padding:3px 7px;border-color:var(--km-geno-ddd0d5);border-radius:5px;font-size:13px}
.editor-page .detail-window .person-compact-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 8px}
.editor-page .detail-window .person-compact-grid>*{grid-column:auto}
.editor-page .detail-window .person-compact-grid .span-three{grid-column:1/-1}
.editor-page .detail-window .person-field{gap:2px}
.editor-page .detail-window .person-field span{font-size:11px}
.editor-page .detail-window .person-field textarea,.editor-page .detail-window #person-note{min-height:44px}
.editor-page .detail-window .person-checkbox{flex-direction:row;align-items:center;gap:6px;font:600 12px Arial,sans-serif}
.editor-page .detail-window .person-checkbox input{width:14px;height:14px;min-height:0;padding:0;margin:0}
.editor-page .detail-window .children-editor{margin-top:6px;padding-top:6px}
.detail-window .children-editor h3{margin:0 0 2px;font-size:13px}
.detail-window .children-editor .panel-hint{margin:0 0 4px;font-size:11px}
.detail-window .children-table{min-width:0;font-size:12px}
.detail-window .children-table th,.detail-window .children-table td{padding:2px 4px;vertical-align:middle}
.detail-window .children-table th:last-child,.detail-window .children-table td:last-child{width:34px;text-align:center}
.editor-page .detail-window .children-table input[type=text]{min-width:0}
.editor-page .detail-window .children-table input[type=checkbox]{width:14px;height:14px;min-height:0;padding:0}
.detail-window .children-editor .editor-outline-action{width:auto;margin-top:4px;padding:3px 8px;min-height:26px;font-size:12px}

/* KM-283: Werkzeuge als frei verschiebbares, standardmäßig zugeklapptes Fenster (Grundlage: .detail-window).
   Aufgeklappt eine schmale Leiste: Symbole untereinander, nicht passende Werkzeuge deaktiviert. */
.tool-window.is-open{width:72px}
.tool-window.is-open .detail-head{display:grid;grid-template-columns:1fr 1fr;gap:0}
.tool-window.is-open .detail-grip{grid-column:1/-1;width:auto;height:28px}
.tool-window.is-open .detail-corner{width:auto;height:28px}
.tool-window.is-open .detail-toggle{justify-content:center;padding:4px 0}
.tool-window.is-open .detail-toggle>span:first-child,.tool-window .detail-context,.tool-window .rail-label,.tool-window .rail-btn span{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tool-window .detail-body{padding-bottom:4px}
.tool-window .rail-group{display:flex;flex-direction:column;align-items:center;gap:2px;margin:0;padding:4px 0}
.tool-window .rail-group+.rail-group{border-top:1px solid var(--km-geno-ede3e6)}
.tool-window .rail-btn{position:relative;width:32px;min-width:32px;min-height:32px;padding:0;border-radius:8px}
.tool-window .rail-btn svg{width:18px;height:18px}
.tool-window .rail-btn:disabled{opacity:.4;cursor:not-allowed;background:transparent;color:var(--km-geno-6d6370)}

/* KM-306: person photo (Basisdaten field and mixed-card image) */
.person-photo-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.person-photo-row .editor-outline-action{width:auto;margin-top:0}
.person-photo-preview{flex:none;width:54px;height:54px;border:1px solid var(--km-geno-dfc8ce);border-radius:8px;background:var(--km-brand-white);overflow:hidden}
.person-photo-preview img{display:block;width:100%;height:100%;object-fit:cover}
#graph-content .person .person-shape.person-photo-ring{fill:none}
#graph-content .photo-mark-halo{fill:none;stroke:var(--km-brand-white);stroke-width:5;pointer-events:none}
