/* KURTH 7.10.8 – ausschliesslich der Optimierer-Arbeitsbereich. */
.ow-workspace { --ow-glass:#246e7a; --ow-paper:#f4f5f2; color:var(--ink); }
.ow-head { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:16px; flex-wrap:wrap; }
.ow-head h2 { font-size:27px; line-height:1.2; }
.ow-eyebrow { font-size:10px; font-weight: 600; letter-spacing:1.5px; color:var(--muted); margin-bottom:5px; }
.ow-head-actions,.ow-run-actions { display:flex; gap:7px; flex-wrap:wrap; }
.ow-workspace .btn { font-size:12px; padding:8px 10px; min-height:33px; line-height:1.3; white-space:normal; }
.ow-workspace button:focus-visible,.ow-workspace input:focus-visible,.ow-workspace select:focus-visible { outline:2px solid var(--ow-glass); outline-offset:2px; }
.ow-workspace button:disabled { opacity:.42; cursor:not-allowed; }
.ow-runbar { display:flex; align-items:center; flex-wrap:wrap; gap:16px; padding:13px 15px; background:white; border:1px solid var(--line); border-top:2px solid #111; margin-bottom:14px; border-radius:4px; }
.ow-runbar>label { flex:0 1 290px; }
.ow-runname { font-weight: 600; flex:1; min-width:210px; }
.ow-runname small { display:block; font-size:12px; color:var(--muted); font-weight: 450; margin-top:6px; }
.ow-status { display:inline-block; margin-left:8px; background:#f2f1ed; color:#776126; font-size:10px; padding:4px 7px; border-radius:3px; font-weight: 600; }
.ow-status.released { color:#1c7446; background:#e8f4ec; }
.ow-workspace label:not(.ow-check) { display:block; font-size:11px; color:#62676b; font-weight: 500; }
.ow-workspace label>input:not([type=checkbox]),.ow-workspace label>select,.ow-list-tools input { display:block; width:100%; padding:8px; border:1px solid #d7dbd9; border-radius:4px; background:white; color:var(--ink); margin-top:5px; min-width:0; font-size:13px; }
.ow-workspace label>input:disabled,.ow-workspace label>select:disabled { background:#f4f4f2; color:#585d60; opacity:1; }
.ow-workspace input[type=checkbox] { accent-color:var(--ink); width:15px; height:15px; flex:none; }
.ow-fieldset { border:0; padding:0; min-width:0; }
.ow-grid { display:grid; grid-template-columns:minmax(230px, .85fr) minmax(400px, 2.2fr) minmax(252px, .85fr); gap:14px; align-items:start; }
.ow-panel { background:white; border:1px solid var(--line); border-radius:5px; min-width:0; overflow:hidden; }
.ow-panel-head { min-height:45px; display:flex; justify-content:space-between; align-items:center; gap:8px; padding:11px 13px; border-bottom:1px solid var(--line); }
.ow-panel-head h3 { font-size:13px; font-weight: 600; letter-spacing:0; }
.ow-panel-head>span { color:var(--muted); font-size:11px; }
.ow-panel-head>div { display:flex; align-items:center; gap:4px; font-size:11px; }
.ow-material { padding:12px; border-bottom:1px solid var(--line); }
.ow-list-tools { padding:10px 12px; }
.ow-list-tools input { margin:0; font-size:12px; }
.ow-list-tools>div { display:flex; justify-content:space-between; margin-top:7px; }
.ow-list-tools .btn { border:0; font-size:11px; padding:4px; min-height:25px; color:#61676a; }
.ow-parts { max-height:calc(100vh - 360px); min-height:170px; overflow:auto; }
.ow-part { padding:12px; border-top:1px solid var(--line); border-left:3px solid transparent; transition:background .15s; }
.ow-part.selected { border-left-color:var(--ow-glass); background:#edf5f5; }
.ow-part.excluded { opacity:.5; background:#f7f7f5; }
.ow-part-title { display:flex; align-items:center; gap:8px; }
.ow-part-title button { display:flex; justify-content:space-between; align-items:center; flex:1; gap:8px; border:0; background:transparent; text-align:left; min-width:0; padding:0; font-size:12px; }
.ow-part-title button b { overflow-wrap:anywhere; }
.ow-part-title button span { color:#61676a; font-size:11px; white-space:nowrap; }
.ow-customer { font-size:11px; color:#73797c; margin-top:5px; overflow-wrap:anywhere; }
.ow-part dl { margin:9px 0 0; font-size:11px; }
.ow-part dl>div { display:flex; justify-content:space-between; gap:5px; margin-top:3px; }
.ow-part dt { color:#72797b; }.ow-part dd { margin:0; font-variant-numeric:tabular-nums; font-weight: 500; text-align:right; }
.ow-part-tags { display:flex; flex-wrap:wrap; gap:4px; margin-top:7px; }
.ow-part-tags span { font-size:10px; padding:2px 5px; background:#f0f2f0; border:1px solid #e6e9e6; border-radius:3px; color:#676d6b; }
.ow-list-foot,.ow-footnote { padding:12px; font-size:11px; color:#747a7d; line-height:1.5; border-top:1px solid var(--line); }
.ow-footnote { padding:14px 0; margin-top:10px; }
.ow-center { min-width:0; }
.ow-alert { padding:10px 12px; font-size:12px; line-height:1.5; color:#775918; background:#fff9e9; border:1px solid #eedeb2; border-radius:4px; margin-bottom:9px; overflow-wrap:anywhere; }
.ow-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border:1px solid var(--line); border-radius:5px; overflow:hidden; background:white; margin-bottom:12px; }
.ow-metrics>div { padding:12px 9px; border-right:1px solid var(--line); }.ow-metrics>div:last-child{border:0;}
.ow-metrics span { display:block; color:#686f72; font-size:10px; min-height:28px; line-height:1.3; }
.ow-metrics strong { display:block; font-size:18px; font-variant-numeric:tabular-nums; line-height:1.2; letter-spacing:-.4px; }
.ow-metrics small { font-size:9px; display:block; color:#7b8284; margin-top:5px; min-height:12px; line-height:1.25; }
.ow-compare { display:flex; flex-wrap:wrap; gap:7px 12px; padding:11px; background:#eaf1f1; border:1px solid #d1e0df; color:#385b5d; font-size:11px; margin-bottom:12px; border-radius:4px; }
.ow-compare b { flex-basis:100%; }
.ow-plan-card { background:white; border:1px solid var(--line); border-radius:5px; overflow:hidden; }
.ow-sheetbar { display:flex; flex-wrap:wrap; gap:5px; padding:12px 13px 5px; }
.ow-sheetbar button { padding:6px 10px; font-size:11px; background:white; border:1px solid #dbdedb; border-radius:3px; }
.ow-sheetbar button.active { color:white; background:#141818; border-color:#141818; }
.ow-sheetbar>span { font-size:12px; color:var(--muted); }
.ow-plan-meta { font-size:11px; color:#6d7476; padding:7px 13px 10px; line-height:1.4; }
.ow-layerbar { display:flex; flex-wrap:wrap; gap:7px 13px; border-top:1px solid var(--line); padding:9px 13px; }
.ow-layerbar label { display:flex!important; align-items:center; gap:5px; font-size:10px!important; font-weight: 450!important; }
.ow-layerbar input[type=checkbox] { width:13px; height:13px; }
.ow-canvas-scroll { overflow:auto; background:var(--ow-paper); padding:14px; max-height:72vh; min-height:330px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.ow-canvas { margin:0 auto; }
.ow-svg { display:block; width:100%; height:auto; max-width:none; min-height:0; }
.ow-svg .ow-sheet { fill:#fff; stroke:#363c3d; stroke-width:var(--ow-stroke); }
.ow-svg .ow-usable { fill:none; stroke:#cfb782; stroke-width:var(--ow-stroke); stroke-dasharray:12 8; }
.ow-svg .ow-origin { fill:#343a3b; }
.ow-svg .ow-blank { fill:#e1edef; stroke:#81a5aa; stroke-width:var(--ow-stroke); }
.ow-svg .ow-finish { fill:#c8e1e4; stroke:#347783; stroke-width:var(--ow-stroke); }
.ow-svg .ow-piece { cursor:pointer; }
.ow-svg .ow-piece:hover .ow-finish { fill:#acd0d5; }
.ow-svg .ow-piece.selected .ow-blank { stroke:#152b30; stroke-width:calc(var(--ow-stroke)*4); }
.ow-svg .ow-piece.selected .ow-finish { fill:#a8cfd4; }
.ow-svg .ow-part-label { fill:#265761; font-weight: 600; pointer-events:none; }
.ow-svg .ow-part-dim { fill:#527378; pointer-events:none; }
.ow-svg .ow-cut { stroke:#202a2c; stroke-width:var(--ow-stroke); pointer-events:none; }
.ow-svg .ow-trim { stroke:#bd8b47; stroke-width:calc(var(--ow-stroke)*1.6); }
.ow-svg .ow-break { stroke:#b85b3f; stroke-width:calc(var(--ow-stroke)*1.7); stroke-dasharray:12 7; pointer-events:none; }
.ow-svg .ow-remnant { fill:#e7f0df; stroke:#8aa075; stroke-width:var(--ow-stroke); stroke-dasharray:10 6; }
.ow-svg .ow-rem-label { fill:#61764e; }
.ow-svg .ow-axis { fill:#7d8584; }
.ow-svg .ow-cut-number { fill:#404745; paint-order:stroke; stroke:white; stroke-width:calc(var(--ow-stroke)*3); pointer-events:none; }
.ow-legend { display:flex; flex-wrap:wrap; gap:8px 14px; padding:11px 13px 3px; font-size:10px; color:#727979; }
.ow-legend span::before { content:''; display:inline-block; width:12px; height:9px; background:#dce9eb; border:1px solid #89a9ad; margin-right:5px; }
.ow-legend .finish::before { background:#c8e1e4; border-color:#347783; }.ow-legend .trim::before { height:0; border-color:#bd8b47; }.ow-legend .rest::before { background:#e7f0df; border-color:#8aa075; }
.ow-plan-note { padding:9px 13px 12px; font-size:10px; line-height:1.5; color:#858b8c; }
.ow-cockpit-body { padding:0 13px; max-height:calc(100vh - 390px); min-height:260px; overflow:auto; }
.ow-cockpit-body section { padding:13px 0; border-bottom:1px solid var(--line); }
.ow-section-title { display:flex; align-items:center; justify-content:space-between; font-size:11px; color:#454b4e; font-weight: 600; margin-bottom:9px; gap:5px; }
.ow-section-title .btn { min-height:24px; padding:4px 6px; font-size:9px; }
.ow-fields { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.ow-hint,.ow-workspace label small { display:block; font-size:10px; line-height:1.45; color:#83888a; font-weight: 450; margin-top:6px; }
.ow-important { color:#816d42; }
.ow-check { display:flex; align-items:flex-start; gap:8px; margin-top:12px; font-size:11px; color:#4b5254; line-height:1.3; }
.ow-check small { margin-top:3px!important; }
.ow-machine p:not(.ow-hint) { font-size:11px; }
.ow-calc-actions { padding:12px 13px; border-top:1px solid var(--line); background:#fafbf9; display:flex; flex-direction:column; gap:7px; }
.ow-calc-actions>button:first-child { background:#141818; border-color:#141818; color:white; }
.ow-details { margin-top:12px; background:white; border:1px solid var(--line); border-radius:4px; font-size:11px; }
.ow-details summary { padding:12px; cursor:pointer; font-weight: 500; }
.ow-table-scroll { overflow:auto; }.ow-table-scroll .tbl { font-size:11px; }.ow-table-scroll td { white-space:nowrap; }.ow-table-scroll .btn { padding:3px; font-size:10px; min-height:24px; }
.ow-row-selected { background:#edf5f5; }
.ow-cut-list { max-height:240px; overflow:auto; padding:0 12px 10px; }
.ow-cut-list>div { display:grid; grid-template-columns:35px 1fr; gap:2px 8px; padding:7px 0; border-top:1px solid var(--line); }
.ow-cut-list small { grid-column:2; color:var(--muted); }
.ow-empty { padding:30px 15px; text-align:center; color:#929899; font-size:12px; line-height:1.7; }
.ow-empty-plan { min-height:310px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.ow-empty-plan div { font-size:18px; color:#6d7778; font-weight: 600; margin-bottom:8px; }.ow-empty-plan p { font-size:12px; }
.ow-focus { position:fixed; inset:0; z-index:60; overflow:auto; background:var(--bg); padding:20px; }
.ow-print-root { display:none; }
@media(min-width:1650px) { .ow-grid { grid-template-columns:290px minmax(0,1fr) 290px; }.ow-canvas-scroll { min-height:450px; }.ow-metrics strong{font-size:24px;} }
/* v9.9.1 (P2) – AUF DEM TABLET STANDEN DIE PARAMETER UNTER DEM GANZEN PLAN.
   Bis 9.9.0 rutschte die rechte Spalte bei ~1024 px als volle Zeile ANS ENDE: wer nach der
   Auswahl eine Zugabe ändern wollte, musste am kompletten Schneidplan vorbeiscrollen und danach
   wieder hoch. Jetzt bleiben Teileliste und Parameter in derselben schmalen Spalte neben dem
   Plan – der Plan behält die Breite, die Parameter bleiben in Reichweite. */
@media(max-width:1270px) {
  .ow-grid { grid-template-columns:265px minmax(0,1fr); grid-template-areas:"left center" "right center"; }
  .ow-left { grid-area:left; }
  .ow-center { grid-area:center; }
  .ow-right { grid-area:right; grid-column:auto; }
  .ow-parts { max-height:340px; }
  .ow-cockpit-body { max-height:none; min-height:0; }
  .ow-calc-actions { flex-direction:column; }
  .ow-runbar>label { flex-basis:240px; }
}
/* v9.9.1 (P1) – AUF DEM TELEFON KAM DER PLAN ZULETZT.
   Bei 430 px begann der Schneidplan rund 650–1000 px unter dem oberen Rand: zuerst die
   Materialwahl, dann der Zusatzglasblock, dann die ganze Teileliste – der eigentliche Inhalt
   war ausserhalb des Bildes, und beim ersten Laden sah man fast nur leere Fläche.
   Auf schmalen Geräten steht jetzt der Plan zuoberst; Teileliste und Parameter folgen darunter.
   Die Teileliste bekommt eine eigene Höhe, damit sie die Seite nicht mehr vollschreibt. */
@media(max-width:780px) {
  .ow-grid { grid-template-columns:1fr; grid-template-areas:"center" "left" "right"; }
  .ow-left,.ow-right,.ow-center { grid-column:1; }
  .ow-center { grid-area:center; order:1; }
  .ow-left { grid-area:left; order:2; }
  .ow-right { grid-area:right; order:3; }
  .ow-parts{max-height:300px;min-height:0;}
  .ow-cockpit-body {grid-template-columns:1fr 1fr;}
  .ow-metrics{grid-template-columns:repeat(2,1fr);}
  .ow-metrics>div{border-bottom:1px solid var(--line);}
  .ow-head h2{font-size:24px;}
  .ow-plan-card .ow-panel-head{flex-wrap:wrap;}
  .ow-canvas-scroll{min-height:240px;}
  .ow-head-actions .btn{font-size:11px;}
}
@media(max-width:430px) { .ow-cockpit-body {grid-template-columns:1fr;} .ow-runbar>label{flex-basis:100%;}.ow-metrics{grid-template-columns:repeat(2,1fr);}.ow-focus{padding:10px;} }
@media print {
  /* v9.20.0: der Arbeitsbereich heisst seit 9.9.4 og-workspace – bis hierher druckte «Drucken» den ganzen Bildschirm mit */
  body:has(.og-workspace) .sidebar,body:has(.og-workspace) .topbar,body:has(.og-workspace) .area-tabs,body:has(.og-workspace) #toast,body:has(.og-workspace) .page-tabs,body:has(.og-workspace) .programme-tabs {display:none!important;}
  body:has(.og-workspace) .app {display:block!important;}.og-workspace>*:not(.ow-print-root){display:none!important;}
  .ow-print-root {display:block!important;}.ow-focus {position:static;padding:0;overflow:visible;}
  body:has(.og-workspace) .content {padding:0;}.ow-print-sheet {break-after:page;padding:8mm;}
  .ow-print-sheet:last-child{break-after:auto;}.ow-print-sheet h2{font-size:20px;margin-bottom:5mm;}.ow-print-sheet h3{font-size:13px;margin:3mm 0;}
  .ow-print-sheet p{font-size:10px;margin:2mm 0;}.ow-print-sheet .ow-svg{width:100%;max-height:220mm;}.ow-svg{print-color-adjust:exact;-webkit-print-color-adjust:exact;}
}
/* Schmale Displays: Werkzeugleiste darf umbrechen statt den Arbeitsbereich verbreitern. */
.ow-plan-card .ow-panel-head>div { flex-wrap:wrap; min-width:0; }
.ow-workspace .ow-runname { min-width:0; }
/* Der bestehende mobile Menüknopf lag 12px ausserhalb des Viewports. Nur im Optimierer korrigieren. */
@media (max-width:780px){body:has(.ow-workspace) #nav-toggle{right:8px}}
/* v7.10.15 – laufbezogene Zusatzgläser */
.ow-manual { padding:12px; border-bottom:1px solid var(--line); background:#fbfbfa; }
.ow-manual-head { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:9px; font-size:11px; }
.ow-manual-head span { color:var(--muted); font-size:10px; }
.ow-manual-grid { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.ow-manual-grid label { font-size:10px; }
.ow-manual-grid label:first-child { grid-column:1/-1; }
.ow-manual-grid input { min-width:0; }
.ow-manual-rot { margin:9px 0 0; }
.ow-manual-actions { display:flex; gap:6px; margin-top:9px; }
.ow-manual-actions .btn { flex:1; min-height:30px; font-size:10px; }
.ow-manual-list { margin-top:9px; border-top:1px solid var(--line); }
.ow-manual-list>div { display:flex; justify-content:space-between; align-items:center; gap:6px; padding:7px 0; border-bottom:1px solid var(--line); }
.ow-manual-list>div>span:first-child { min-width:0; }
.ow-manual-list b,.ow-manual-list small { display:block; overflow-wrap:anywhere; }
.ow-manual-list b { font-size:10px; }.ow-manual-list small { color:var(--muted); font-size:9px; margin-top:2px; }
.ow-manual-list .btn { min-height:24px; padding:3px 5px; font-size:9px; }

/* ==========================================================================================
   v9.9.1 – Die Befunde des Prüfberichts zur Zuschnittoptimierung.
   ========================================================================================== */

/* P1 · Dringlichkeit in der Teileliste. Termin, EXPRESS und Nachschnitt standen bis 9.9.0
   nirgends, obwohl der Server sie berechnet. Rot heisst heute oder überfällig, Bernstein
   heisst diese Woche; alles andere bleibt ruhig. */
.ow-termin { font-size:11px; margin-top:4px; color:#5c6164; }
.ow-termin-gelb { color:#8a5b00; font-weight:500; }
.ow-termin-rot { color:#b42318; font-weight:600; }
.ow-nachschnitt { display:inline-block; background:#f2ead6; color:#7a5b16; font-size:9.5px;
  padding:2px 5px; border-radius:3px; font-weight:600; }
.ow-projekt { color:#8b9094; }
/* P1 · «Pos. 3 · Scheibe 1/2» – ohne das sahen die beiden Scheiben eines VSG wie ein doppelter
   Eintrag aus. */
.ow-scheibe { font-size:10.5px; color:#246e7a; margin-top:3px; font-weight:500; }
.ow-tafel-tag { border:1px solid var(--line); background:#fff; border-radius:3px; padding:2px 6px;
  font-size:10px; color:#4a5054; cursor:pointer; }
.ow-tafel-tag:hover { border-color:#111; }

/* P2 · Drei Meldungsebenen statt einer gelben Box für alles. */
.ow-meldungen { display:grid; gap:7px; margin-bottom:12px; }
.ow-meldung { display:flex; gap:9px; align-items:flex-start; padding:10px 12px; border-radius:4px;
  border:1px solid var(--line); background:#fff; font-size:12.5px; line-height:1.45; }
.ow-meldung-zeichen { flex:0 0 auto; font-size:14px; line-height:1.2; }
.ow-meldung b { font-weight:600; }
.ow-meldung details { margin-top:5px; }
.ow-meldung summary { cursor:pointer; font-size:11.5px; color:#61676a; }
.ow-meldung details p { margin:5px 0 0; color:#4a5054; }
.ow-meldung.ow-block { border-color:#e3bdb7; background:#fdf4f2; color:#8a271d; }
.ow-meldung.ow-achtung { border-color:#e6d5a8; background:#fdf8ec; color:#7a5b16; }
.ow-meldung.ow-info { border-color:#cfd9e6; background:#f5f8fc; color:#33485f; }

/* P2 · Ein Satz über den Kennzahlen beantwortet «ist der Plan gut und vollständig?». */
.ow-zustand { padding:11px 13px; border-radius:4px; font-size:13.5px; font-weight:600; margin-bottom:12px; }
.ow-zustand.ow-ok { background:#eaf4ee; color:#1c6b43; border:1px solid #c4e0cf; }
.ow-zustand.ow-block { background:#fdf0ee; color:#98291f; border:1px solid #e8c3bd; }

/* P1 · Nach einer Änderung darf der alte Plan nicht mehr gültig aussehen. */
.ow-plan-card { position:relative; }
.ow-plan-veraltet .ow-canvas { filter:grayscale(.85) opacity(.4); }
.ow-canvas-scroll { position:relative; }
.ow-veraltet-auflage { position:absolute; inset:0; display:grid; place-items:center; z-index:2;
  background:rgba(255,255,255,.55); pointer-events:none; }
.ow-veraltet-auflage>div { pointer-events:auto; text-align:center; background:#fff; border:2px solid #b42318;
  border-radius:6px; padding:16px 20px; max-width:340px; box-shadow:0 6px 26px rgba(0,0,0,.14); }
.ow-veraltet-auflage b { display:block; font-size:17px; letter-spacing:1px; color:#b42318; }
.ow-veraltet-auflage span { display:block; font-size:12px; color:#5c6164; margin:6px 0 10px; line-height:1.45; }

/* P3 · Tafelreiter mit Ausnutzung. */
.ow-sheetbar button>span { font-size:10.5px; color:inherit; opacity:.7; margin-left:4px; }

/* P2 · Freigeben ist die Hauptaktion, Löschen der Ausweg. */
.ow-workspace .btn.btn-primary { background:#17191c; color:#fff; border-color:#17191c; font-weight:600; }
.ow-workspace .btn.btn-primary:hover:not(:disabled) { background:#000; }
.ow-workspace .btn.ow-danger { color:#8a271d; border-color:#e3bdb7; background:#fff; }
.ow-workspace .btn.ow-danger:hover { background:#fdf4f2; }

/* P2 · Erweiterte Parameter – vorhanden, aber nicht im Weg. */
.ow-adv { border-top:1px solid var(--line); margin-top:4px; }
.ow-adv>summary { cursor:pointer; padding:11px 0 9px; font-size:12px; font-weight:600; color:#3f4448; list-style:none; }
.ow-adv>summary::-webkit-details-marker { display:none; }
.ow-adv>summary::before { content:'\25B8'; display:inline-block; width:13px; color:var(--muted); }
.ow-adv[open]>summary::before { content:'\25BE'; }
.ow-adv>summary small { display:block; margin-left:13px; font-weight:400; font-size:11px; color:var(--muted); }

/* P2 · Laufauswahl: Feld plus Übersicht. */
.ow-runselect { display:flex; gap:6px; align-items:center; margin-top:5px; }
.ow-runselect select { margin-top:0 !important; }
.ow-runselect .btn { flex:0 0 auto; white-space:nowrap; }
.ow-runs-tools { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:12px; }
.ow-runs-tools input { flex:1 1 260px; padding:8px; border:1px solid #d7dbd9; border-radius:4px; }
.ow-runs-filter { display:flex; gap:5px; flex-wrap:wrap; }
.ow-runs-filter .btn.aktiv { background:#17191c; color:#fff; border-color:#17191c; }
.ow-runs-row { cursor:pointer; }
.ow-runs-row:hover { background:#f2f5f5; }
.ow-runs-row td small { display:block; color:var(--muted); font-size:10.5px; }

/* P1 · Abschlussdialog: erst bestätigen, dann buchen. */
.ow-modal { position:fixed; inset:0; z-index:9000; background:rgba(17,19,20,.42);
  display:flex; align-items:center; justify-content:center; padding:20px; }
.ow-modal-card { background:#fff; border-radius:7px; padding:20px 22px; width:min(560px,100%);
  max-height:90vh; overflow:auto; box-shadow:0 20px 60px rgba(0,0,0,.28); }
.ow-modal-wide { width:min(920px,100%); }
.ow-modal-card h3 { font-size:18px; margin-bottom:6px; }
.ow-modal-sum { font-size:12.5px; color:#5c6164; margin-bottom:12px; }
.ow-modal-error { color:#b42318; font-size:12.5px; min-height:1.2em; margin:8px 0 0; }
.ow-modal-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:14px; }
.ow-rest-liste { display:grid; gap:9px; margin:10px 0; }
.ow-rest { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1.2fr) minmax(0,1fr); gap:10px;
  align-items:end; border:1px solid var(--line); border-radius:5px; padding:10px 12px; }
.ow-rest.ow-rest-weg { opacity:.5; background:#f7f7f5; }
.ow-rest .ow-check { align-self:center; }
.ow-rest .ow-check small { display:block; color:var(--muted); font-size:10.5px; }
.ow-rest-mass { display:flex; align-items:center; gap:5px; margin-top:5px; }
.ow-rest-mass input { margin-top:0 !important; }
.ow-rest-alle { display:block; margin-top:12px; }
.ow-rest-alle>span { display:flex; gap:6px; align-items:center; margin-top:5px; }
.ow-rest-alle input { margin-top:0 !important; }
@media(max-width:640px){ .ow-rest { grid-template-columns:1fr; } }

/* v9.9.1: «Zusätzliche Gläser» ist der Sonderfall – zugeklappt, damit Teileliste und Parameter
   auf Tablet und Telefon in Reichweite bleiben. */
details.ow-manual>summary { cursor:pointer; list-style:none; }
details.ow-manual>summary::-webkit-details-marker { display:none; }
details.ow-manual>summary::after { content:'\25B8'; margin-left:auto; color:var(--muted); }
details.ow-manual[open]>summary::after { content:'\25BE'; }

/* ==========================================================================================
   v9.9.4 – GLASOPTIMIERUNG IN DREI SCHRITTEN
   Der Arbeitsbereich zeigte bis 9.9.3 Teile, Plan und ein Parameter-Cockpit gleichzeitig in
   drei Spalten. Wer ein paar Gläser schneiden wollte, musste zuerst Materialgruppe, Randschnitt
   und Brechrand verstehen. Der Bildschirm führt jetzt durch zwei Fragen – welche Gläser, dann
   optimieren – und zeigt danach das Ergebnis. Die alten ow-Klassen bleiben, weil Plan,
   Kennzahlen, Meldungen und Dialoge unverändert übernommen sind.
   ========================================================================================== */
.og-workspace { --ow-glass:#246e7a; --ow-paper:#f4f5f2; color:var(--ink); }
.og-workspace .btn { font-size:12px; padding:8px 10px; min-height:33px; line-height:1.3; white-space:normal; }
.og-workspace button:focus-visible,.og-workspace input:focus-visible,.og-workspace select:focus-visible { outline:2px solid var(--ow-glass); outline-offset:2px; }
.og-workspace button:disabled { opacity:.42; cursor:not-allowed; }
.og-workspace label:not(.ow-check):not(.og-auftrag-kopf):not(.og-position):not(.og-umplanen):not(.og-quelle):not(.og-quelle-art):not(.og-quelle-wahl) { display:block; font-size:11px; color:#62676b; font-weight:500; }
.og-workspace label>input:not([type=checkbox]),.og-workspace label>select,.og-such input { display:block; width:100%; padding:8px; border:1px solid #d7dbd9; border-radius:4px; background:white; color:var(--ink); margin-top:5px; min-width:0; font-size:13px; }
.og-workspace input[type=checkbox] { accent-color:var(--ink); width:16px; height:16px; flex:none; }
/* 10.2.1: Auswahlpunkte (Brechhilfen übernehmen/anpassen/Wasserstrahl) wurden von «label>input» auf die ganze Breite gezogen – der
   Punkt stand weit vom Text (Fabian 25.10.2026, Bildschirmfoto) */
.og-workspace label>input[type=radio],.ow-workspace label>input[type=radio] { display:inline-block; width:16px; height:16px; padding:0; margin:0; border:0; flex:none; accent-color:var(--ink); }

.og-kopf { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:14px; flex-wrap:wrap; }
.og-kopf h2 { font-size:27px; line-height:1.2; }
.og-kopf-rechts { display:flex; gap:7px; flex-wrap:wrap; }

/* Schrittleiste: sagt, wo man steht – und dass es nur drei Schritte sind. */
.og-schritte { display:flex; align-items:center; gap:0; list-style:none; margin:0 0 18px; padding:0; flex-wrap:wrap; }
.og-schritte li { display:flex; align-items:center; gap:8px; padding:9px 18px 9px 14px; font-size:12.5px; font-weight:500; color:var(--muted); background:#f4f5f2; border:1px solid var(--line); border-right:0; }
.og-schritte li:first-child { border-radius:4px 0 0 4px; }
.og-schritte li:last-child { border-right:1px solid var(--line); border-radius:0 4px 4px 0; }
.og-schritte li.aktiv { background:var(--ink); color:#fff; border-color:var(--ink); }
.og-schritte li.erledigt { color:#1c7446; background:#e8f4ec; }
.og-schritt-nr { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:50%; background:rgba(0,0,0,.09); font-size:11px; font-weight:600; }
.og-schritte li.aktiv .og-schritt-nr { background:rgba(255,255,255,.22); }

/* Zwei Quellen, zwei Reiter – mehr Wege gibt es nicht. */
.og-reiter { display:flex; gap:0; margin-bottom:0; }
.og-reiter button { flex:0 0 auto; padding:12px 22px; font-size:14px; font-weight:550; background:#f4f5f2; color:#62676b; border:1px solid var(--line); border-bottom:0; border-radius:4px 4px 0 0; cursor:pointer; }
.og-reiter button+button { margin-left:4px; }
.og-reiter button.aktiv { background:#fff; color:var(--ink); box-shadow:inset 0 2px 0 var(--ink); }
.og-reiter-inhalt { background:#fff; border:1px solid var(--line); border-radius:0 4px 4px 4px; padding:16px; }

.og-such { margin-bottom:12px; }
.og-auftraege { display:flex; flex-direction:column; gap:10px; max-height:min(58vh,640px); overflow:auto; }
.og-auftrag { border:1px solid var(--line); border-radius:5px; overflow:hidden; background:#fff; flex-shrink:0; }
.og-auftrag.gewaehlt { border-color:var(--ow-glass); box-shadow:0 0 0 1px var(--ow-glass) inset; }
.og-auftrag-kopf { display:flex; align-items:center; gap:12px; padding:11px 13px; background:#f7f8f6; cursor:pointer; }
.og-auftrag-titel { flex:1 1 auto; min-width:0; font-size:13.5px; }
.og-auftrag-titel small { display:block; font-size:11.5px; color:var(--muted); font-weight:450; margin-top:2px; }
.og-auftrag-termin { font-size:11.5px; color:var(--muted); white-space:nowrap; }
.og-auftrag-zahl { font-size:12px; font-weight:600; white-space:nowrap; }
.og-positionen { display:flex; flex-direction:column; }
.og-position { display:grid; grid-template-columns:auto 72px 1fr 150px 62px auto; align-items:center; gap:10px; padding:8px 13px; border-top:1px solid #eef0ed; cursor:pointer; font-size:12.5px; }
.og-position:hover { background:#fafbf9; }
.og-position.gewaehlt { background:#f2f7f7; }
.og-pos-nr { font-weight:600; }
.og-pos-glas small { display:block; font-size:11px; color:var(--muted); }
.og-pos-mass { font-variant-numeric:tabular-nums; }
.og-pos-stueck { text-align:right; font-variant-numeric:tabular-nums; }
.og-pos-tags { display:flex; gap:4px; flex-wrap:wrap; }
.og-tag { font-size:10px; padding:2px 6px; border-radius:3px; background:#eef0ed; color:#5c6164; white-space:nowrap; }
.og-tag-warn { background:#fdf3e4; color:#8a5a12; }
/* 10.2.0: eingeplant in einem anderen Plan, umplanen, wartet auf Freigabe, gemeldete Tafel */
.og-tag-plan { background:#e7eef5; color:#2f4f6f; }
.og-position-eingeplant { color:#7a7f82; cursor:default; }
.og-position-eingeplant .og-pos-stueck { font-style:italic; }
.og-pos-leer { display:inline-block; width:13px; }
.og-umplanen { grid-column:1 / -1; justify-self:end; display:inline-flex; align-items:center; gap:6px; font-size:11.5px; color:#2f4f6f; cursor:pointer; }
.og-wartet { margin:0 0 10px; border:1px solid #eadfc9; border-radius:6px; background:#fffaf1; }
.og-wartet summary { padding:9px 13px; cursor:pointer; font-size:12.5px; }
.og-wartet summary small { margin-left:8px; color:#8a6d3b; }
.og-wartet-liste { padding:0 13px 10px; }
.og-wartet-zeile { display:flex; flex-wrap:wrap; gap:6px 12px; align-items:center; padding:6px 0; border-top:1px solid #f1e8d6; font-size:12px; }
.ow-sheetbar button.ow-sheet-fertig:not(.active) { color:#4f6b52; border-color:#b7cdb9; background:#f2f8f2; }
.og-bereich-fuss { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:12px; padding-top:12px; border-top:1px solid var(--line); font-size:11.5px; color:var(--muted); }
.og-bereich-fuss span { flex:1 1 260px; }

/* Manuelle Erfassung */
.og-formular { background:#f7f8f6; border:1px solid var(--line); border-radius:5px; padding:14px; }
.og-formular-zeile { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:11px; }
.og-formular-zeile>label { flex:1 1 150px; min-width:0; }
/* v9.10.1: war ein Ja/Nein-Schalter (Schleifzugabe an/aus), ist jetzt eine Auswahl aus drei
   gleichwertigen Rohling-Aufmassen – kein Aufmass, Schleifzugabe, oder allseitig 5 cm. */
.og-zugabe { display:block; margin:4px 0 13px; font-size:11px; color:#62676b; font-weight:500; }
.og-zugabe select { display:block; margin-top:4px; font-size:12.5px; font-weight:400; color:var(--ink); }
.og-zugabe small { display:block; font-size:11px; color:var(--muted); font-weight:450; margin-top:5px; max-width:62ch; }
/* v9.10.1: Bestätigung «Rohling trotzdem schneiden – Wasserstrahl», direkt in der Sperrmeldung. */
.og-wasserstrahl-ok { margin-top:10px!important; padding-top:10px; border-top:1px dashed #d8c9a3; }
.og-formular-aktionen { display:flex; gap:8px; }
.og-manuell-liste { margin-top:14px; width:100%; }
.og-zeilen-aktionen { white-space:nowrap; text-align:right; }
.og-zeilen-aktionen .btn+.btn { margin-left:4px; }
.og-leer { padding:26px 18px; text-align:center; color:var(--muted); font-size:13px; }
.og-leer b { display:block; color:var(--ink); font-size:15px; margin-bottom:6px; }
.og-leer p { max-width:52ch; margin:0 auto; }
.og-leer-klein { padding:16px; }

/* Der eine Knopf, der weiterführt. */
.og-start { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:16px; padding:15px 18px; background:#fff; border:1px solid var(--line); border-top:2px solid var(--ink); border-radius:4px; }
.og-start-zahl { font-size:14px; }
.og-start-zahl b { font-size:21px; }
.og-start-knopf { margin-left:auto; font-size:15px !important; padding:13px 26px !important; min-height:46px !important; }
.og-hinweis { flex:1 1 100%; font-size:11.5px; color:var(--muted); margin:0; }

/* Ergebnis */
.og-plan-reiter { display:flex; gap:4px; flex-wrap:wrap; margin-bottom:14px; }
.og-plan-reiter button { padding:9px 16px; text-align:left; background:#f4f5f2; border:1px solid var(--line); border-radius:4px; cursor:pointer; }
.og-plan-reiter button.aktiv { background:var(--ink); color:#fff; border-color:var(--ink); }
.og-plan-reiter b { display:block; font-size:13px; }
.og-plan-reiter small { display:block; font-size:11px; opacity:.8; margin-top:2px; }
.og-plan-kopf { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:12px; flex-wrap:wrap; }
.og-plan-kopf h3 { font-size:19px; }
.og-plan-kopf small { display:block; font-size:12px; color:var(--muted); margin-top:3px; }
.og-aktionen { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:14px 0; padding:13px 15px; background:#fff; border:1px solid var(--line); border-radius:4px; }
.og-fein { display:flex; flex-direction:column; gap:16px; padding-top:12px; }
.og-fein-aktionen { display:flex; gap:8px; }

@media (max-width:900px) {
  .og-position { grid-template-columns:auto 1fr auto; row-gap:4px; }
  .og-pos-glas,.og-pos-mass { grid-column:2; }
  .og-pos-tags { grid-column:2/-1; }
  .og-start-knopf { margin-left:0; width:100%; }
  .og-reiter button { flex:1 1 auto; padding:12px 10px; font-size:13px; }
}

/* ---------- v9.20.0: drei Eingabewege, Brechhilfen-Nachfrage, Etiketten ---------- */
.og-filter { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; margin-bottom:12px; }
.og-filter .og-such { flex:1 1 260px; margin:0; }
.og-filter>label { flex:0 1 210px; font-size:12px; color:#62676b; }
.og-filter>label small { display:block; margin-top:3px; font-size:11px; }
.og-filter .btn.aktiv { background:var(--ink); color:#fff; }
.og-nummer-feld { display:block; font-size:13px; font-weight:550; }
.og-nummer-feld input { font-size:22px; padding:12px 14px; letter-spacing:.04em; font-family:ui-monospace,monospace; }
.og-nummer-hilfe { margin:8px 0 12px; font-size:12px; color:#62676b; }
.og-nummer-protokoll { list-style:none; padding:0; margin:0 0 12px; display:grid; gap:4px; }
.og-nummer-protokoll li { padding:6px 10px; border-radius:4px; background:#f0fdf4; color:#166534; font-size:13px; }
.og-nummer-protokoll li.nein { background:#fef2f2; color:#991b1b; }
.og-nummer-liste table { width:100%; margin-top:6px; }
.og-zeile-skizze { max-width:260px; margin:4px 0 0; }
.og-formular-aktionen { align-self:flex-end; display:flex; gap:8px; }
.og-excel { margin-top:12px; }
.og-excel textarea { width:100%; font-family:ui-monospace,monospace; font-size:13px; padding:8px; border:1px solid #d7dbd9; border-radius:4px; }
.og-brech .og-brech-liste { display:grid; gap:12px; max-height:60vh; overflow:auto; padding-right:4px; }
.og-brech-teil { border:1px solid var(--line); border-radius:6px; padding:10px 12px; }
.og-brech-teil.wasserstrahl { border-color:#1d6fa5; background:#f3f8fc; }
.og-brech-teil.anpassen { border-color:#b45309; background:#fffbeb; }
.og-brech-teil.systron { border-color:#1b4a5e; background:#f1f6f8; }   /* 5.11.2026: Weg 3 Rohzuschnitt → Systron */
.og-brech-kopf { display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; margin-bottom:8px; }
.og-brech-kopf small { color:#62676b; }
.og-brech-inhalt { display:grid; grid-template-columns:minmax(180px,280px) 1fr; gap:16px; align-items:start; }
.og-brech-svg { width:100%; height:auto; max-height:220px; background:#fff; border:1px solid #e6e8eb; }
.og-brech-svg .ow-blank { fill:#f4f5f2; stroke:#9aa0a6; stroke-width:var(--ow-stroke); }
.og-brech-svg .ow-finish { fill:rgba(27,74,94,.10); stroke:#17181c; stroke-width:var(--ow-stroke); }
.og-brech-svg .ow-break { stroke:#b42318; stroke-width:var(--ow-stroke); stroke-dasharray:6 4; }
.og-brech-svg .og-brech-ws { fill:#1d6fa5; font-weight:700; }
.og-brech-wahl { display:grid; gap:8px; }
.og-brech-wahl .ow-check { font-size:14px; }
.og-brech-zugaben { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.og-brech-zugaben.aus { opacity:.5; }
.og-brech-zugaben label { font-size:12px; color:#62676b; }
.og-etiketten-raster { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.og-etikett { border:1px solid #333; border-radius:4px; padding:8px 10px; position:relative; page-break-inside:avoid; font-size:12px; }
.og-etikett-nr { position:absolute; right:8px; top:6px; font-size:22px; font-weight:800; }
.og-etikett-kopf b { display:block; font-size:14px; }
.og-etikett-mass { font-size:20px; font-weight:700; margin:4px 0; }
.og-etikett-code { font-family:ui-monospace,monospace; margin-top:4px; }
@media (max-width:900px){ .og-brech-inhalt{grid-template-columns:1fr;} .og-etiketten-raster{grid-template-columns:1fr 1fr;} }
.og-brech-wahl .ow-check { display:flex; align-items:center; gap:8px; justify-content:flex-start; }
.og-brech-svg .ow-break { stroke-width:calc(var(--ow-stroke) * 2); }
.og-brech-sperre { display:block; margin-top:4px; color:#b45309; font-weight:600; font-size:12px; }
.og-brech-min { display:block; margin-top:2px; color:#62676b; font-size:11px; }

/* ---------- 6.11.2026: drei Schritte – Material und Weg prüfen, Bestand immer sichtbar, Bilanz, nächster Schritt ---------- */
.og-hauptgrid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:16px; align-items:start; }
.og-bestand { position:sticky; top:12px; background:#fff; border:1px solid var(--line); border-radius:5px; padding:12px 13px; font-size:12.5px; }
.og-bestand-kopf { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:8px; }
.og-bestand-kopf b { font-size:13.5px; }
.og-bestand-glas { border-top:1px solid var(--line); padding-top:8px; margin-top:8px; }
.og-bestand-glas:first-of-type { border-top:0; padding-top:0; margin-top:0; }
.og-bestand-titel { font-weight:600; margin-bottom:6px; }
.og-bestand-liste { display:grid; gap:4px; }
.og-bestand-zeile { display:grid; grid-template-columns:auto 1fr auto; gap:2px 8px; align-items:baseline; padding:5px 7px; background:#f7f8f6; border-radius:4px; }
.og-bestand-zeile span:first-child { font-variant-numeric:tabular-nums; }
.og-bestand-zeile span:nth-child(2) { color:var(--muted); overflow-wrap:anywhere; }
.og-bestand-zeile b { font-variant-numeric:tabular-nums; white-space:nowrap; }
.og-bestand-zeile small { grid-column:1 / -1; color:var(--muted); font-size:11px; }
.og-bestand-zeile.rest { border-left:3px solid #e2b96a; }
.og-bestand-leer { color:var(--muted); font-size:12px; padding:4px 0; }
.og-bestand-fehler { margin-top:6px; padding:7px 9px; border-radius:4px; background:#fdf4f2; color:#8a271d; border:1px solid #e3bdb7; font-size:12px; }
.og-bestand-stand { margin-top:7px; font-size:11px; color:var(--muted); }
.og-bestand-link { display:block; margin-top:10px; padding-top:10px; border-top:1px solid var(--line); color:var(--ink); font-size:12.5px; text-decoration:underline; }
.og-material { display:grid; gap:14px; min-width:0; }
.og-mat { background:#fff; border:1px solid var(--line); border-radius:5px; padding:14px 16px; }
.og-mat-kopf { display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.og-mat-kopf h3 { font-size:17px; margin:0; }
.og-mat-kopf small { color:var(--muted); font-size:12px; }
.og-mat-quelle { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:12px; }
/* label.… mit .ow-workspace davor: die Grundregel «.ow-workspace label:not(.ow-check)» (Block, Eingabe volle Breite) gilt sonst auch hier */
.og-workspace label.og-quelle-art { display:flex; align-items:center; gap:10px; padding:11px 13px; border:1px solid var(--line); border-radius:5px; cursor:pointer; background:#f7f8f6; font-size:14px; color:var(--ink); }
.og-quelle-art.aktiv { border-color:var(--ink); background:#fff; box-shadow:inset 0 0 0 1px var(--ink); }
.og-workspace label.og-quelle-art>input, .og-workspace label.og-quelle>input, .og-workspace label.og-quelle-wahl>input { display:inline-block; width:16px; height:16px; margin:0; padding:0; accent-color:var(--ink); }
.og-quelle-art small { display:block; font-size:11.5px; color:var(--muted); margin-top:2px; }
.og-quellen { display:grid; gap:6px; margin-bottom:12px; }
.og-workspace label.og-quelle, .og-quelle { display:grid; grid-template-columns:auto minmax(130px,1fr) minmax(110px,1fr) minmax(150px,1.3fr) auto; gap:4px 12px; align-items:center; padding:8px 11px; border:1px solid var(--line); border-radius:4px; cursor:pointer; font-size:13px; color:var(--ink); }
.og-quelle.gewaehlt { border-color:var(--ink); background:#f7f8f6; }
.og-quelle-rest { display:block; }
.og-workspace label.og-quelle-wahl { display:grid; grid-template-columns:auto minmax(130px,1fr) minmax(110px,1fr) minmax(150px,1.3fr) auto; gap:4px 12px; align-items:center; cursor:pointer; font-size:13px; color:var(--ink); }
.og-best-mass { font-weight:600; font-variant-numeric:tabular-nums; }
.og-best-ort { color:var(--muted); overflow-wrap:anywhere; }
.og-best-zahlen { font-variant-numeric:tabular-nums; }
.og-best-zahlen b { font-size:15px; }
.og-best-zahlen small { display:block; font-size:11px; color:var(--muted); }
.og-rest-rand { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:flex-end; margin-top:8px; padding-top:8px; border-top:1px dashed var(--line); }
.og-rest-rand>span { flex:1 1 100%; font-size:11.5px; color:#62676b; }
.og-rest-rand label { flex:0 1 110px; font-size:11px; color:#62676b; }
.og-mat-rand { margin-bottom:12px; }
.og-mat-zeile { display:grid; gap:8px; padding:10px 0; border-top:1px solid var(--line); }
.og-mat-info { font-size:12.5px; color:#3c4145; }
.og-mat-info b { margin-right:6px; }
.og-bilanz { margin-bottom:12px; }
.og-bilanz-satz { font-size:14px; line-height:1.55; margin:0 0 10px; padding:12px 14px; background:#fff; border:1px solid var(--line); border-radius:5px; }
.og-quelle-zeile { color:var(--ink) !important; }
.og-naechster { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:12px; padding:13px 16px; background:#fff; border:1px solid var(--line); border-left:4px solid var(--ink); border-radius:4px; }
.og-naechster b { font-size:14.5px; }
.og-naechster p { margin:4px 0 0; font-size:12.5px; color:#3c4145; max-width:70ch; }
.og-haupt { font-size:15px !important; padding:13px 26px !important; min-height:46px !important; }
@media (max-width:1100px) {
  .og-hauptgrid { grid-template-columns:1fr; }
  .og-bestand { position:sticky; top:0; z-index:2; order:-1; padding:9px 11px; }
  .og-bestand-liste { display:flex; flex-wrap:wrap; gap:6px; }
  .og-bestand-zeile { flex:1 1 220px; }
  .og-bestand-link { margin-top:6px; padding-top:6px; }
}
@media (max-width:900px) {
  .og-workspace label.og-quelle, .og-quelle, .og-workspace label.og-quelle-wahl { grid-template-columns:auto 1fr; }
  .og-best-ort, .og-best-zahlen { grid-column:2; }
  .og-mat-quelle { grid-template-columns:1fr; }
  .og-naechster .og-haupt { width:100%; }
}
.og-bock .ow-check { margin-top:6px; }
.og-bock .ow-check small { display:block; font-size:11px; color:var(--muted); }
/* Schritt «Material und Weg»: Häkchen und Hilfetext untereinander (Einbau «ERP» 6.11.2026) */
.og-material .ow-check { display:flex; gap:10px; align-items:flex-start; margin:10px 0; }
.og-material .ow-check input { width:18px; height:18px; flex:none; margin:2px 0 0; accent-color:var(--ink); }
.og-material .ow-check small { display:block; font-weight:400; color:var(--muted); margin-top:2px; }
/* Zuschnitt in vier Schritten (Fabian 6.11.2026). Markierungen tragen immer auch Text, Farbe allein genügt nicht. */
.og-marke { display:inline-block; padding:2px 7px; border-radius:3px; font-size:11px; font-weight:800; letter-spacing:.4px; white-space:nowrap; }
.og-marke-eil { background:#111; color:#fff; }
.og-marke-bruch { background:#fff; color:#111; border:2px solid #111; }
.og-auftrag-eil { border-left:6px solid #111; }
.og-auftrag-bruch { border-left:6px double #111; }
.og-position-eil .og-pos-nr, .og-position-bruch .og-pos-nr { font-weight:800; }
.og-pos-stueck small { display:block; font-size:11px; font-weight:400; color:var(--muted); }
.og-ergebnis { min-width:0; }
.og-ergebnis .ow-metrics { grid-template-columns:repeat(auto-fit,minmax(128px,1fr)); }
.og-format-hinweis { margin:0 0 8px; }
.og-regeln .btn { margin-top:8px; }
.og-varianten { margin:0 0 14px; }
.og-var-kopf { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:8px; }
.og-var-kopf h3 { margin:0 auto 0 0; font-size:16px; }
.og-anpassen { font-weight:700; }
.og-var-karten { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.og-var-karte { display:flex; flex-direction:column; gap:8px; text-align:left; padding:12px 14px; min-height:44px; background:#fff; border:1px solid #c9cdcb; border-radius:6px; color:var(--ink); font:inherit; cursor:pointer; touch-action:manipulation; }
.og-var-karte.gewaehlt { border:2px solid #111; padding:11px 13px; }
.og-var-titel { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.og-var-titel b { font-size:15px; margin-right:auto; }
.og-var-werte { display:grid; grid-template-columns:auto minmax(0,1fr); gap:3px 10px; margin:0; font-size:13px; }
.og-var-werte dt { color:var(--muted); }
.og-var-werte dd { margin:0; font-weight:600; font-variant-numeric:tabular-nums; }
.og-var-werte small { display:block; font-weight:400; font-size:11.5px; color:var(--muted); }
.og-var-grund { font-size:12.5px; line-height:1.35; }
.og-var-fehler { font-size:12.5px; font-weight:600; color:#8a271d; }
.og-format-vergleich { margin-top:10px; overflow-x:auto; }
.ze-editor { background:#fff; border:1px solid var(--line); border-top:2px solid #111; border-radius:5px; padding:14px 16px; margin-bottom:14px; }
.ze-kopf h3 { margin:0 0 4px; font-size:17px; }
.ze-kopf p { margin:0 0 10px; font-size:13px; color:var(--muted); max-width:70ch; }
.ze-tafelwahl { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.ze-tafelknopf { min-height:44px; text-align:left; }
.ze-tafelknopf small { display:block; font-size:11px; font-weight:400; }
.ze-tafelknopf.aktiv { background:#111; color:#fff; }
.ze-raster { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:14px; align-items:start; }
.ze-bild { min-width:0; }
.ze-svg { display:block; width:100%; height:auto; background:#f7f8f6; border:1px solid var(--line); border-radius:4px; }
.ze-tafel { fill:#eef0ed; stroke:#111; stroke-width:2; vector-effect:non-scaling-stroke; }
.ze-nutzbar { fill:#fff; stroke:#8b8f8d; stroke-dasharray:6 4; stroke-width:1; vector-effect:non-scaling-stroke; }
.ze-teil { cursor:pointer; }
.ze-teil rect { fill:#e7eef5; stroke:#2f4f6f; stroke-width:1; vector-effect:non-scaling-stroke; }
.ze-teil text { fill:#111; pointer-events:none; }
.ze-gewaehlt { cursor:move; touch-action:none; }
.ze-gewaehlt rect { fill:#cfdde9; stroke:#111; stroke-width:3; }
.ze-fehler rect { fill:#fdecea; stroke:#8a271d; stroke-dasharray:8 4; stroke-width:2; }
.ze-rand { margin:6px 0 0; font-size:12px; color:var(--muted); }
.ze-bedien { display:flex; flex-direction:column; gap:12px; }
.ze-auswahl { margin:0; padding:8px 10px; background:#f7f8f6; border-radius:4px; font-size:13px; }
.ze-auswahl b { display:block; }
.ze-meldung { margin:0; padding:8px 10px; border:1px solid #e3bdb7; background:#fdf4f2; color:#8a271d; border-radius:4px; font-size:13px; }
.ze-gruppe { display:flex; flex-direction:column; gap:6px; }
.ze-gruppe > span { font-size:12px; font-weight:600; color:var(--muted); }
.ze-gruppe small { font-size:12px; color:var(--muted); }
.ze-schritt { display:flex; align-items:center; gap:8px; font-size:13px; }
.ze-schritt select { width:auto; min-height:44px; }
.ze-gruppe > select { min-height:44px; width:100%; }
.ze-knopf { min-height:44px; min-width:44px; touch-action:manipulation; }
.ze-pfeile { display:grid; grid-template-columns:repeat(3,48px); grid-template-rows:repeat(3,44px); gap:4px; }
.ze-o { grid-column:2; grid-row:1; } .ze-l { grid-column:1; grid-row:2; } .ze-r { grid-column:3; grid-row:2; } .ze-u { grid-column:2; grid-row:3; }
.ze-zeile { display:flex; flex-wrap:wrap; gap:6px; }
.ze-probleme { margin-top:10px; padding:10px 12px; border:1px solid #e3bdb7; background:#fdf4f2; color:#8a271d; border-radius:4px; font-size:13px; }
.ze-probleme ul { margin:4px 0 0; padding-left:18px; }
.ze-server { border-width:2px; }
.ze-aktionen { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; margin-top:12px; }
.ze-aktionen .btn { min-height:44px; }
@media (max-width:1100px) { .og-var-karten { grid-template-columns:minmax(0,1fr); } .ze-raster { grid-template-columns:minmax(0,1fr); } .ze-bedien { flex-direction:row; flex-wrap:wrap; } .ze-gruppe { flex:1 1 200px; } .ze-auswahl { flex:1 1 100%; } }
/* Fabian 6.11.2026: «alles per Touch». Eigene Kennung, weil programme-workspace.css die Knöpfe im Programmbereich auf 28–30 px setzt und später geladen wird. */
#ogWorkspace .ze-knopf, #ogWorkspace .ze-tafelknopf, #ogWorkspace .ze-aktionen .btn, #ogWorkspace .og-anpassen { min-height:44px; }
@media (pointer:coarse),(max-width:1240px) { #view #ogWorkspace .btn { min-height:44px; padding:8px 12px; font-size:13px; } #ogWorkspace select { min-height:44px; } }

