/* PLANKONFORM project workspace */
.management-icon svg{width:22px;height:22px;stroke:currentColor}
/* Dashboard (/dashboard/): Modulauswahl nach dem Login in der App-Shell, nach Arbeitsart gruppiert */
.portal-dashboard{max-width:1240px;margin:0 auto 3.5rem}
.portal-heading{margin:.5rem 0 2rem}
.portal-heading h1{margin:0 0 .25rem;font-size:var(--fs-2xl);font-weight:600;line-height:1.2;letter-spacing:-.01em}
.portal-heading p{margin:0;font-size:var(--fs-sm);color:var(--muted)}
.portal-group{margin-bottom:1.6rem}
.portal-group h2{margin:0 0 .6rem;font-size:var(--fs-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#8a847e}
/* Alle Kacheln gleich groß, vier je Reihe (Nutzerentscheidung 2026-10-07) */
.portal-module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}
.portal-module{display:flex;align-items:flex-start;gap:.875rem;min-height:86px;padding:.85rem 1rem;color:var(--ink);text-decoration:none;background:var(--paper);border:1px solid #e3e0dc;border-radius:var(--radius-sm);transition:border-color .15s ease-out,box-shadow .15s ease-out}
.portal-module-icon{flex:none;color:var(--accent);margin-top:1px}
.portal-module-icon svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.6}
.portal-module-copy{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.portal-module strong{font-size:var(--fs-md);font-weight:600;line-height:1.3}
.portal-module-copy>span{font-size:var(--fs-xs);line-height:1.45;color:var(--muted)}
a.portal-module:hover{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
a.portal-module:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* Zeile unter der Beschreibung (Nachträge/Rechnungen: „3 neu · 1 Prüffrist überschritten“, bl_tile_count()) */
.portal-module-copy>.portal-module-live{font-weight:600;color:var(--accent)}
.portal-module-copy>.portal-module-live.is-late{color:var(--danger)}
.portal-module.is-locked{cursor:not-allowed;background:transparent;border-style:dashed}
.portal-module.is-locked .portal-module-icon,.portal-module.is-locked strong,.portal-module.is-locked .portal-module-copy>span{color:#b0aaa4}
@media(prefers-reduced-motion:reduce){.portal-module{transition:none}}
@media(max-width:1200px){.portal-module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.portal-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.portal-heading{margin:1rem 0 1.5rem}.portal-heading h1{font-size:var(--fs-xl)}.portal-module-grid{grid-template-columns:1fr}.portal-project{flex-wrap:wrap}.portal-project-title{flex-basis:100%;order:3}}
/* Projektkopf (Dashboard mit Projekt) */
.portal-project{display:flex;align-items:center;gap:1rem;padding:.8rem 1.1rem;margin-bottom:1.4rem;background:var(--paper);border:1px solid #e3e0dc;border-left:4px solid var(--accent);border-radius:var(--radius-sm)}
.portal-project .portal-pick-no{font-size:12px;padding:.2rem .55rem;border:1px solid var(--line);border-radius:var(--radius-pill);background:#fafaf9;align-self:center}
.portal-project-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}
.portal-project-title b{font-size:var(--fs-lg);font-weight:600;line-height:1.25}
.portal-project-title span{font-size:var(--fs-xs);color:var(--muted)}
.portal-project-team{display:flex}
.portal-project-team .avatar{width:26px;height:26px;font-size:10px;margin-left:-6px;border:2px solid #fff}
.portal-project-switch{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .8rem;border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink);text-decoration:none;font-size:var(--fs-xs);font-weight:600;white-space:nowrap}
.portal-project-switch svg{width:15px;height:15px;stroke:currentColor}
.portal-project-switch:hover{border-color:var(--accent);color:var(--accent)}
.portal-pick-no{display:inline-block;align-self:flex-start;font-size:11px;font-weight:700;color:var(--accent);letter-spacing:.02em}
/* Projektbereich (Nutzerentscheidung 2026-10-12): Projektkopf + Bauleitung + Dateien in einem Rahmen; kein overflow:hidden, sonst wird „Projekt wechseln“ abgeschnitten */
.portal-area{margin:0 0 1.9rem;background:color-mix(in srgb,var(--accent) 4%,var(--paper));border:1px solid color-mix(in srgb,var(--accent) 28%,#e3e0dc);border-radius:var(--radius)}
.portal-area>.portal-project{margin:0;padding:.95rem 1.25rem;border:0;border-bottom:1px solid color-mix(in srgb,var(--accent) 20%,#e3e0dc);border-radius:var(--radius) var(--radius) 0 0;box-shadow:inset 4px 0 0 var(--accent)}
.portal-area>.portal-project .portal-project-title b{font-size:var(--fs-xl)}
.portal-area-eyebrow{font-size:var(--fs-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.portal-area-body{padding:1.1rem 1.25rem .2rem}
.portal-area-body .portal-group h2{color:color-mix(in srgb,var(--accent) 70%,#8a847e)}
.sidebar-area-project{margin:.9rem .5rem .35rem;padding:.55rem .65rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 8%,transparent);box-shadow:inset 3px 0 0 var(--accent)}
.sidebar-area-project small{display:block;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.sidebar-area-project b{display:block;font-size:var(--fs-sm);line-height:1.3;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-area-group{margin-left:.5rem;border-left:1px solid color-mix(in srgb,var(--accent) 25%,var(--line))}
@media(max-width:600px){.portal-area>.portal-project,.portal-area-body{padding-left:.9rem;padding-right:.9rem}.portal-area>.portal-project{gap:.5rem .75rem}.portal-area>.portal-project .portal-project-title{flex:0 0 100%;order:1}.portal-area>.portal-project .portal-project-team{order:2}.portal-area>.portal-project .portal-switch{order:2;margin-left:auto}}
/* „Projekt wechseln“ (portal_project_switch_html()): Aufklappliste mit Suche unter dem Knopf */
.portal-switch{position:relative}
.portal-switch>summary{list-style:none;cursor:pointer}
.portal-switch>summary::-webkit-details-marker{display:none}
.portal-switch[open]>summary{border-color:var(--accent);color:var(--accent)}
.portal-switch-pop{position:absolute;right:0;top:calc(100% + .4rem);z-index:30;width:min(460px,calc(100vw - 2rem));padding:.6rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:0 10px 30px rgba(0,0,0,.12)}
.portal-switch-search{display:flex;align-items:center;gap:.5rem;padding:0 .7rem;border:1px solid var(--line);border-radius:var(--radius-sm)}
.portal-switch-search:focus-within{border-color:var(--accent)}
.portal-switch-search svg{width:16px;height:16px;stroke:var(--accent);flex:none}
.portal-switch-search input{flex:1;min-width:0;margin:0;padding:.5rem 0;border:0;background:transparent;font:inherit;font-size:var(--fs-sm);min-height:0}
.portal-switch-search input:focus{outline:none}
.portal-switch-list{max-height:360px;overflow-y:auto;margin-top:.4rem}
.portal-switch-list a{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:.6rem;align-items:center;padding:.5rem .6rem;border-radius:6px;color:var(--ink);text-decoration:none;font-size:var(--fs-sm)}
.portal-switch-list a .portal-pick-no{align-self:center;padding:0;border:0;background:none;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.portal-switch-list a b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.portal-switch-list a i{font-style:normal;font-size:11px;color:var(--muted)}
.portal-switch-list a:hover,.portal-switch-list a:focus-visible,.portal-switch-list a.is-first{background:var(--info-bg);outline:none}
.portal-switch-list a.is-current{box-shadow:inset 3px 0 0 var(--accent)}
.portal-switch-list a.is-current b{font-weight:700}
.portal-switch-list a[data-switch-archiv] b,.portal-switch-list a[data-switch-archiv] .portal-pick-no{color:var(--muted)}
.portal-switch .ws-empty{margin:.5rem .3rem 0}
@media(max-width:600px){.portal-project{position:relative}.portal-switch{position:static}.portal-switch-pop{left:0;right:0;width:auto}}
.ws-module-hub{margin-bottom:2rem}.ws-module-hub h2{font-size:var(--fs-lg);margin:1.5rem 0 .75rem}.ws-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}.ws-module-card{display:flex;flex-direction:column;gap:.4rem;padding:1.1rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);text-decoration:none;color:var(--ink)}.ws-module-card strong{font-size:var(--fs-md)}.ws-module-card>span{font-size:var(--fs-xs);color:var(--muted)}.ws-module-card .ws-module-open{margin-top:auto;padding-top:.5rem;color:var(--accent)}.ws-module-card:hover{border-color:var(--accent)}#dashboard-projects{scroll-margin-top:1rem}@media(max-width:480px){.ws-module-grid{grid-template-columns:1fr}}
.ws-home,.ws-workspace{font-size:var(--fs-md);color:var(--ink)}
.management-group{display:flex;align-items:baseline;gap:.6rem;margin:1.4rem 0 .6rem}.management-group h2{margin:0;font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.management-group span{font-size:var(--fs-xs);color:var(--muted)}.management-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.management-card{min-height:0;padding:1.15rem;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:1rem;align-items:start;color:var(--ink);text-decoration:none;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm)}.management-card:hover{border-color:var(--accent);box-shadow:0 6px 18px rgba(23,119,139,.1)}.management-card:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.management-card>span:nth-child(2){display:flex;flex-direction:column;gap:.35rem}.management-card strong{font-size:var(--fs-lg)}.management-card small{font-size:var(--fs-xs);line-height:1.45;color:var(--muted)}.management-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:.35rem}.management-card b{font-size:var(--fs-2xl);color:#8ba0b6}.management-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:var(--radius-sm);background:#e4f1f3;color:var(--accent);font-weight:800}.management-list-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 0;border-top:1px solid var(--line)}.management-list-row form,.management-list-row button{margin:0}@media(max-width:700px){.management-grid{grid-template-columns:1fr}.management-list-row{align-items:flex-start}}
.master-data{margin:1.5rem 0 2rem}.master-data>.ws-heading{margin-bottom:.75rem}.master-data-row{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:1.5rem;align-items:center;padding:1.15rem 0;border-top:1px solid var(--line)}.master-data-row:last-child{border-bottom:1px solid var(--line)}.master-data-row>div{display:flex;flex-direction:column;gap:.25rem}.master-data-row>div span{color:var(--muted)}.master-data-row nav{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.master-data-row nav a:not(.btn){padding:.65rem .75rem}.master-data-row .btn{margin:0}@media(max-width:700px){.master-data-row{grid-template-columns:1fr;gap:.75rem}.master-data-row nav{align-items:stretch}.master-data-row nav a{flex:1;text-align:center;min-width:100px}}
.ws-home{max-width:1200px;margin:auto}.ws-heading{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin:1.5rem 0}.ws-heading h1,.ws-heading h2{margin:0}.ws-heading h1{font-size:var(--fs-2xl)}.ws-heading h2{font-size:var(--fs-xl)}.ws-heading a{font-size:var(--fs-sm)}
.ws-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.ws-metrics .card{margin:0}.ws-number{font-size:2rem;font-weight:650;margin:.7rem 0}.ws-number small{font-size:var(--fs-sm);font-weight:400;color:var(--muted)}
.ws-bars{height:165px;display:flex;align-items:flex-end;gap:.8rem;margin-top:1.5rem}.ws-bars>div{flex:1;text-align:center;min-width:0}.ws-bars small{display:block;font-size:var(--fs-xs)}.ws-bar{display:block;min-height:2px;width:70%;margin:0 auto .3rem;background:#b1cddf;border-radius:3px 3px 0 0}
.ws-shortcuts{display:flex;gap:1rem;flex-wrap:wrap;margin:1.5rem 0}.ws-shortcuts a{flex:1;min-width:180px;border:1px solid var(--line);padding:.7rem 1rem;background:var(--paper);text-align:center;text-decoration:none;border-radius:var(--radius-sm)}
.ws-filter{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin:1.25rem 0}.ws-filter label{flex:1;min-width:180px}.ws-filter button{margin:0}.ws-filter input,.ws-filter select{width:100%}
/* Listen-Werkzeugleisten (Tickets, Pläne): sekundäre Rahmen-Buttons, primärer Akzent-Button, Suchfeld – Maße wie im freigegebenen Design */






input[type=search].ws-search{width:auto;min-width:220px;margin:0;padding:.5rem .8rem;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:var(--fs-xs);background:var(--paper);color:var(--ink);min-height:0;line-height:1.2}
.ws-sort-arrow{opacity:.5;font-size:var(--fs-xs);margin-left:1px}.ws-sort-arrow.is-active{opacity:.9}
/* Pläne: Ordner-Akkordeon (Karte je Ordner, Kopfzeile mit Pfeil, Ordnersymbol, Anzahl, Ungelesen-Punkt) */
.ws-plans-accordion{display:grid;gap:.7rem}.ws-plans-folder{padding:0;overflow:hidden;margin:0}.ws-plans-folder>summary{list-style:none;cursor:pointer;user-select:none;display:flex;align-items:center;gap:.6rem;padding:.85rem 1rem}.ws-plans-folder>summary:hover{background:color-mix(in srgb,var(--accent) 5%,var(--paper))}.ws-plans-folder>summary::-webkit-details-marker,.ws-plans-folder>summary::marker{display:none;content:''}.ws-plans-chev,.ws-plans-ic{display:inline-flex;flex-shrink:0}.ws-plans-chev svg{width:16px;height:16px;stroke:currentColor;stroke-width:2.5;color:var(--muted);transition:transform .15s}.ws-plans-folder[open]>summary .ws-plans-chev svg{transform:rotate(90deg)}.ws-plans-ic svg{width:19px;height:19px;stroke:currentColor;color:var(--accent)}.ws-plans-folder>summary strong{flex:none;font-size:var(--fs-sm);font-weight:700}.ws-plans-folder>summary .muted{font-size:var(--fs-xs);margin-left:.2rem}.ws-plans-folder-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-left:.3rem}.ws-plans-folder-tag{font-size:var(--fs-xs);font-weight:700;color:var(--muted);background:color-mix(in srgb,var(--muted) 12%,var(--paper));padding:1px 7px;border-radius:var(--radius-pill)}.ws-plans-folder.is-unsorted>summary strong,.ws-plans-folder.is-unsorted>summary .ws-plans-ic svg{color:var(--muted)}.ws-plans-folder>.dpr-table-form{margin:0;border-top:1px solid var(--line)}.ws-plans-crumbs{margin:-.5rem 0 1rem;font-size:var(--fs-xs)}
.ws-project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.ws-project-card{display:flex;flex-direction:column;gap:.6rem;border:1px solid var(--line);border-radius:var(--radius-sm);padding:1.25rem;text-decoration:none;color:var(--ink);background:var(--paper)}.ws-project-card:hover{border-color:var(--accent);box-shadow:0 3px 16px #00000009}.ws-project-card strong{font-size:var(--fs-lg)}.ws-project-card .badge{align-self:flex-start}
.ws-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.ws-view-toggle{display:flex;gap:.6rem;margin:0}.ws-view-toggle a{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .9rem;border:1px solid var(--line);border-radius:var(--radius-sm);text-decoration:none;color:var(--ink);background:var(--paper);font-size:var(--fs-xs);font-weight:600;line-height:1.2}.ws-view-toggle a:hover{background:var(--bg)}.ws-view-toggle a.active,.ws-view-toggle a.active:hover{color:var(--accent);border-color:var(--accent);background:var(--paper)}.ws-view-toggle a svg{width:16px;height:16px;stroke:currentColor}
.ws-plans-status{display:inline;margin:0}.ws-plans-status select{margin:0;font-size:var(--fs-xs);padding:.25rem .4rem}
@media(max-width:640px){.ws-toolbar{flex-direction:column;align-items:stretch}.ws-toolbar .dpr-search{width:100%}.ws-toolbar .dpr-search input{flex:1;min-width:0}}
.ws-tabs{display:flex;gap:1rem;border-bottom:1px solid var(--line);flex-wrap:wrap;margin-bottom:1rem}.ws-tabs a{padding:.7rem .4rem;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent;font-size:var(--fs-sm)}.ws-tabs a.active{color:var(--ink);border-color:var(--accent);font-weight:650}.ws-main-tabs{gap:2rem}.ws-sub-tabs{margin-bottom:2rem}.ws-switch{display:flex;align-items:flex-end;gap:.6rem;max-width:100%}.ws-switch select{max-width:24rem;width:100%}
.ws-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.ws-actions form{margin:0}.ws-actions button{margin:0}.ws-save{margin-top:1.5rem}
.ws-form-grid,.ws-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.5rem}.ws-form-grid label,.ws-line-grid label{display:flex;flex-direction:column;gap:.3rem;font-size:var(--fs-sm)}.ws-wide{grid-column:1/-1}.ws-form-grid input,.ws-form-grid textarea,.ws-form-grid select,.ws-line-grid input,.ws-line-grid select{width:100%;max-width:none}.ws-data-grid dt{font-size:var(--fs-sm);color:var(--muted)}.ws-data-grid dd{margin:.2rem 0 .6rem;white-space:normal;overflow-wrap:anywhere}
.ws-lines{display:grid;gap:1rem}.ws-lines fieldset{min-width:0;border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem}.ws-lines legend{padding:0 .4rem}.ws-line-grid{display:grid;grid-template-columns:1.3fr 3fr 1fr 1fr 1fr;gap:.8rem}.ws-lines button{margin-top:.8rem}.ws-table{width:100%;min-width:560px;border-collapse:collapse;font-size:var(--fs-sm)}.ws-table th,.ws-table td{padding:.8rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.ws-table th{font-weight:600}.ws-table tfoot{font-weight:650;background:var(--bg)}.ws-table td{max-width:440px;overflow-wrap:break-word}.ws-empty{padding:2rem!important;text-align:center;color:var(--muted)}
.ws-totals{max-width:360px;margin:1rem 0 1rem auto}.ws-totals p{display:flex;justify-content:space-between;gap:1rem}.ws-file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.ws-photo{width:100%;height:200px;object-fit:contain;background:var(--bg)}.ws-file-grid h3{overflow-wrap:anywhere}.ws-document{max-width:1100px;margin:1rem auto}.ws-editor summary,details.card>summary{cursor:pointer;font-weight:600}.ws-document .badge{display:inline-block}
.ws-photo-toolbar{margin:0 0 1rem}.ws-photo-year{display:flex;align-items:baseline;gap:.5rem;margin:1.5rem 0 .75rem}.ws-photo-year span{color:var(--muted);font-weight:400;font-size:var(--fs-xs)}.ws-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}.ws-photo-card{display:flex;flex-direction:column;gap:.35rem}.ws-photo-card label{position:relative;display:block;cursor:pointer}.ws-photo-card img{width:100%;height:140px;object-fit:cover;border-radius:var(--radius-sm);background:var(--bg)}.ws-photo-card input[type=checkbox]{position:absolute;top:.4rem;left:.4rem;width:1.1rem;height:1.1rem}.ws-photo-meta{font-size:var(--fs-xs);color:var(--muted);overflow-wrap:anywhere}.ws-photo-archive-btn{font-size:var(--fs-xs);padding:.3rem .5rem}
.ws-plan-canvas{position:relative;display:inline-block;max-width:100%;width:100%;margin:.5rem 0;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;line-height:0}.ws-plan-canvas img,.ws-plan-canvas canvas{display:block;max-width:100%;width:100%;height:auto;cursor:crosshair}.ws-plan-canvas-readonly img,.ws-plan-canvas-readonly canvas{cursor:default}[data-ws-plan-view][data-error]::after{content:"Plan konnte nicht geladen werden.";display:block;padding:1rem;color:var(--muted);font-size:var(--fs-xs)}.ws-plan-marker{position:absolute;width:30px;height:38px;transform:translate(-50%,-100%);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 38'%3E%3Cpath d='M15 1.5C8.1 1.5 2.5 7 2.5 13.9c0 9.3 11 21.3 11.6 21.9a1.3 1.3 0 0 0 1.8 0c.6-.6 11.6-12.6 11.6-21.9C27.5 7 21.9 1.5 15 1.5z' fill='%23d62828' stroke='%23fff' stroke-width='2'/%3E%3Ccircle cx='15' cy='14' r='5' fill='%23fff'/%3E%3C/svg%3E") no-repeat center/contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35));pointer-events:none}
.ws-ticket-photos{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.75rem}.ws-ticket-photos form{display:flex;flex-direction:column;gap:.4rem;min-width:220px;flex:1}
.ws-workspace .table-wrap{overflow:auto}.ws-workspace input:focus-visible,.ws-workspace select:focus-visible,.ws-workspace textarea:focus-visible,.ws-workspace a:focus-visible,.ws-home a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.ws-no-scroll{overflow:hidden}
.ws-company-overlay{position:fixed;inset:0;z-index:1000;background:var(--paper);display:flex;justify-content:center}
.ws-company-overlay-panel{width:100%;max-width:560px;height:100%;display:flex;flex-direction:column;gap:1rem;padding:1.25rem 1.25rem 1.5rem}
.ws-company-overlay-head{display:flex;align-items:center;gap:.9rem}.ws-company-overlay-head h2{margin:0;font-size:var(--fs-lg);flex:1}
.ws-company-overlay-close{display:grid;place-items:center;width:2.25rem;height:2.25rem;border:none;background:none;color:var(--ink);cursor:pointer;border-radius:var(--radius-pill);flex-shrink:0}.ws-company-overlay-close:hover{background:var(--bg)}.ws-company-overlay-close svg{width:20px;height:20px;stroke:currentColor}
.ws-company-overlay-confirm{padding:.5rem .9rem;border:none;border-radius:var(--radius-pill);background:var(--line);color:var(--muted);font-weight:650;cursor:not-allowed;flex-shrink:0}
.ws-company-overlay-confirm:not(:disabled){background:var(--accent);color:var(--accent-contrast,#fff);cursor:pointer}
.ws-company-overlay .bl-search{margin:0}
.ws-company-search-icon svg{width:18px;height:18px;stroke:currentColor}
.ws-company-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1;border-top:1px solid var(--line)}
.ws-company-option{display:flex;align-items:center;gap:.75rem;width:100%;padding:.9rem .3rem;border-bottom:1px solid var(--line);color:var(--ink);font-size:var(--fs-sm);cursor:pointer}
.ws-company-option input[type=checkbox]{width:1.15rem;height:1.15rem;flex-shrink:0}
.ws-company-option span:not(.ws-company-check){flex:1}
.ws-company-check svg{width:18px;height:18px;stroke:var(--accent);flex-shrink:0}
.ws-company-option.is-selected{font-weight:650;color:var(--accent)}
.ws-company-card{display:flex;flex-direction:column;gap:.75rem;border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem}
.ws-company-card-top{display:flex;align-items:center;gap:.85rem}
.ws-company-photo-btn{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:var(--radius-sm);background:var(--bg);color:var(--accent);flex-shrink:0}
.ws-company-photo-btn svg{width:20px;height:20px;stroke:currentColor}
.ws-company-photo-btn.is-disabled{color:var(--muted);cursor:not-allowed}
.ws-company-card-info{display:flex;flex-direction:column;gap:.3rem;flex:1;min-width:0}
.ws-company-card-info strong{overflow-wrap:anywhere}
.ws-company-people{display:flex;align-items:center;gap:.4rem;color:var(--muted);font-size:var(--fs-xs)}
.ws-company-people svg{width:16px;height:16px;stroke:currentColor;flex-shrink:0}
.ws-company-step{display:grid;place-items:center;width:1.5rem;height:1.5rem;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--paper);color:var(--ink);line-height:1;cursor:pointer;font-size:var(--fs-md)}
.ws-company-step:disabled{opacity:.4;cursor:not-allowed}
.ws-remove-company{margin:0;flex-shrink:0}
.ws-company-note textarea{width:100%}
.ws-company-card-link{flex-direction:row;align-items:center;text-decoration:none;color:inherit}
.ws-company-card-link:hover{border-color:var(--accent)}
.ws-company-card-link b{color:var(--muted);font-size:var(--fs-lg);flex-shrink:0}
.ws-company-detail h3{margin-top:1.5rem}
.ws-company-detail h3:first-of-type{margin-top:.5rem}
.ws-company-photo-upload{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem;border:1px dashed var(--line);border-radius:var(--radius-sm);color:var(--muted);text-decoration:none}
.ws-company-photo-upload svg{width:28px;height:28px;stroke:currentColor}
.ws-company-people-detail{display:flex;align-items:center;gap:.75rem}
.ws-company-people-detail form{margin:0}
@media(max-width:760px){.ws-metrics,.ws-form-grid,.ws-data-grid{grid-template-columns:1fr}.ws-line-grid{grid-template-columns:1fr 1fr}.ws-line-grid label:nth-child(2){grid-column:1/-1;grid-row:1}.ws-main-tabs{gap:.6rem}.ws-tabs a{padding:.6rem .1rem}.ws-heading h1{font-size:var(--fs-xl)}.ws-switch{width:100%}.ws-number{font-size:var(--fs-2xl)}.ws-bars{gap:.2rem}.ws-project-grid{grid-template-columns:1fr}.ws-file-grid{grid-template-columns:1fr}}
@media print{body{background:white!important;color:black!important}.topstrip,.topbar,.sidebar,.sidebar-backdrop,.module-rail,.mobile-tabs,.ws-no-print,.ws-tabs,.ws-heading,.ws-workspace>.flash{display:none!important}.content{max-width:none!important;margin:0!important;padding:0!important}.ws-document{border:0;box-shadow:none;max-width:none;margin:0;padding:0}.ws-workspace .table-wrap{overflow:visible}.ws-table{font-size:10pt}.ws-table tr{break-inside:avoid}.ws-table thead{display:table-header-group}.ws-data-grid{grid-template-columns:1fr 1fr}.ws-document a{color:black}.ws-document .muted{font-size:9pt}.ws-document~*{display:none!important}}

/* PLANKONFORM tool landing pages */
.tool-landing{max-width:1100px;margin:0 auto;padding:1.5rem 0 3rem}.tool-heading{min-height:118px;padding:1.35rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;color:#fff;background:linear-gradient(110deg,#26383d,var(--accent));border-radius:var(--radius-sm)}.tool-heading h1{margin:0 0 .35rem;font-size:var(--fs-2xl)}.tool-heading p{max-width:65ch;margin:0;color:#e3f0f2}.tool-heading>span{padding:.45rem .7rem;border:1px solid rgba(255,255,255,.5);border-radius:var(--radius-sm);font-size:var(--fs-xs);white-space:nowrap}.tool-section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin:1.4rem 0 .8rem}.tool-section-heading h2,.tool-section-heading p{margin:0}.tool-section-heading h2{font-size:var(--fs-lg)}.tool-section-heading p{font-size:var(--fs-xs);color:var(--muted)}.tool-landing .ws-project-grid{gap:.8rem}.tool-landing .ws-project-card{min-height:124px;padding:1rem;border-radius:var(--radius-sm);border-left:4px solid var(--accent);box-shadow:0 4px 12px rgba(38,56,61,.05)}.tool-landing .ws-project-card:hover{transform:translateY(-1px);border-color:var(--accent);box-shadow:0 7px 17px rgba(38,56,61,.1)}.tool-landing .ws-project-card .eyebrow{color:var(--accent)}@media(max-width:700px){.tool-landing{padding-top:.75rem}.tool-heading{align-items:flex-start;flex-direction:column;gap:.8rem}.tool-section-heading{align-items:flex-start;flex-direction:column;gap:.25rem}}

/* AVA feature overview */
.ava-overview{margin:1.35rem 0 1.75rem}.ava-intro{padding:1.25rem 1.35rem;background:color-mix(in srgb,var(--accent) 8%,var(--paper));border-left:4px solid var(--accent)}.ava-intro .eyebrow{margin-bottom:.35rem}.ava-intro h2{margin:0;font-size:clamp(1.35rem,2.5vw,2rem)}.ava-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}.ava-feature-card{position:relative;padding:1.35rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:0 4px 12px rgba(38,56,61,.05)}.ava-feature-card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--accent);border-radius:8px 0 0 8px}.ava-feature-number{display:block;margin-bottom:.45rem;color:var(--accent);font-weight:700;font-size:var(--fs-xs);letter-spacing:.08em}.ava-feature-card h3{margin:0 0 .8rem;color:var(--ink);font-size:var(--fs-lg)}.ava-feature-card h3 small{color:var(--muted);font-size:var(--fs-xs);font-weight:500;white-space:nowrap}.ava-feature-card ul{margin:0;padding-left:1.15rem}.ava-feature-card li{margin:.45rem 0;color:var(--muted);line-height:1.5}.ava-feature-card li strong{color:var(--ink)}.ava-feature-card li ul{margin-top:.35rem}.ava-feature-wide{grid-column:1/-1}.ava-feature-wide>ul{columns:2;column-gap:2.5rem}.ava-feature-wide>ul>li{break-inside:avoid}@media(max-width:760px){.ava-feature-grid{grid-template-columns:1fr}.ava-feature-wide{grid-column:auto}.ava-feature-wide>ul{columns:1}.ava-feature-card{padding:1.15rem}.ava-intro{padding:1rem 1.1rem}}


/* Ticket-Drawer (Bauleitung › Tickets): rechtsseitiges Panel statt ganzseitigem Formular. */
.ws-drawer-backdrop{position:fixed;inset:0;background:rgba(20,24,26,.45);z-index:60;opacity:0;pointer-events:none;transition:opacity .2s ease}
html.ws-drawer-open .ws-drawer-backdrop{pointer-events:auto}
.ws-drawer{position:fixed;top:0;right:0;bottom:0;width:680px;max-width:100vw;background:var(--paper);box-shadow:-8px 0 24px rgba(20,24,26,.18);z-index:61;display:flex;flex-direction:column;transition:transform .25s ease}
/* Ohne JS bleibt der Drawer ein normal sichtbares Panel (progressive enhancement); erst JS blendet ihn
   initial per Inline-Style aus und lässt ihn dann hereingleiten (siehe ticket-drawer.js). */
html.ws-drawer-open .ws-drawer-backdrop{opacity:1}
.ws-drawer form{display:flex;flex-direction:column;min-height:0;flex:1}
.ws-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.35rem;border-bottom:1px solid var(--line)}
.ws-drawer-head h2{margin:0;font-size:var(--fs-lg)}
.ws-drawer-close{font-size:var(--fs-2xl);line-height:1;color:var(--muted);text-decoration:none;padding:.1rem .4rem}
.ws-drawer-close:hover{color:var(--ink)}
.ws-drawer-tabs{display:flex;gap:.25rem;padding:0 1.35rem;border-bottom:1px solid var(--line)}
.ws-drawer-tabs button{border:0;background:none;padding:.85rem .2rem;margin-right:1.25rem;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}
.ws-drawer-tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}
.ws-drawer-body{flex:1;overflow-y:auto;padding:1.35rem;display:flex;flex-direction:column;gap:1.1rem}
.ws-drawer-body label{display:flex;flex-direction:column;gap:.35rem;font-weight:600;font-size:var(--fs-xs)}
.ws-drawer-body input,.ws-drawer-body select,.ws-drawer-body textarea{font:inherit;padding:.55rem .65rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg)}
.ws-wide{width:100%}
.ws-drawer-foot{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.35rem;border-top:1px solid var(--line);background:var(--paper)}
.ws-checkbox-row{flex-direction:row!important;align-items:center;gap:.5rem!important;font-weight:500!important}

/* Ticketdetail zweispaltig: links Kurztext/Beschreibung/Verlinkungen/Anhänge, rechts die Attribute. */
[data-ws-drawer-panel="detail"]:not([hidden]){display:flex;flex-direction:column;gap:1.1rem}
.ws-ticket-grid{display:grid;grid-template-columns:minmax(0,1fr) 222px;gap:1.1rem;align-items:start}
.ws-ticket-main,.ws-ticket-side{display:flex;flex-direction:column;gap:1.1rem;min-width:0}
/* Umrandete Felder mit Beschriftung im Rahmen; bei leerer Auswahl steht die Beschriftung als Platzhalter im Feld. */
.ws-drawer-body .ws-float{position:relative;display:block;font-weight:400;font-size:var(--fs-sm)}
.ws-float>span{position:absolute;top:0;left:.6rem;z-index:1;transform:translateY(-50%);padding:0 .25rem;background:var(--paper);color:var(--muted);font-size:.7rem;line-height:1;pointer-events:none}
.ws-drawer-body .ws-float input,.ws-drawer-body .ws-float select{box-sizing:border-box;width:100%;height:2.75rem;min-height:0;margin:0;padding:0 .7rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink)}
.ws-drawer-body .ws-float input:focus,.ws-drawer-body .ws-float select:focus{outline:0;border-color:var(--accent)}
.ws-float:not(.is-fixed):has(option[value=""]:checked)>span,.ws-float:not(.is-fixed):has(input:placeholder-shown)>span{display:none}
.ws-drawer-body .ws-float:has(option[value=""]:checked) select,.ws-float input::placeholder{color:var(--muted)}
.ws-float-money i{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);font-style:normal;color:var(--muted)}
.ws-drawer-body .ws-float-money input{padding-left:1.6rem}
.ws-drawer-foot{gap:1rem}
.ws-drawer-foot .ws-checkbox-row{margin-left:auto;font-size:var(--fs-xs);color:var(--ink)}


.ws-drawer-foot .ws-drawer-pdf{order:1}.ws-drawer-foot .btn{order:2}
/* Ticket-Drawer im Aussehen der Vorlage (Hausfarbe --accent), 14px in den Feldern. */
.ws-drawer[data-ws-drawer]{font-size:var(--fs-md)}
.ws-drawer[data-ws-drawer] .ws-drawer-head h2{font-size:1.25rem;font-weight:600}
.ws-drawer[data-ws-drawer] .ws-drawer-tabs button{display:inline-flex;align-items:center;gap:.45rem;font-size:var(--fs-sm);color:var(--muted)}
.ws-drawer[data-ws-drawer] .ws-drawer-tabs button.active{color:var(--accent)}
.ws-drawer-tabs button svg{width:16px;height:16px;stroke:currentColor;fill:none}
.ws-drawer[data-ws-drawer] .ws-float{font-size:var(--fs-md)}
.ws-drawer[data-ws-drawer] .ws-drawer-foot .btn{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;padding:.45rem 1rem}
.ws-drawer[data-ws-drawer] .ws-drawer-foot .btn:hover{filter:brightness(.95)}
/* Fußleiste einzeilig: Abbrechen | Checkbox (darf umbrechen) | Als PDF speichern (Umriss) | Speichern (Hauptknopf), alle gleich hoch. */
.ws-drawer[data-ws-drawer] .ws-drawer-foot{flex-wrap:nowrap}
.ws-drawer[data-ws-drawer] .ws-drawer-foot .ws-checkbox-row{flex:1 1 auto;min-width:0;justify-content:flex-end;text-align:right;line-height:1.3}
.ws-drawer[data-ws-drawer] .ws-drawer-foot .btn,.ws-drawer[data-ws-drawer] .ws-drawer-foot .ws-drawer-pdf,.ws-drawer[data-ws-drawer] .ws-drawer-foot .ws-btn-outline{flex:0 0 auto;box-sizing:border-box;height:2.5rem;min-height:0;white-space:nowrap}
.ws-drawer[data-ws-drawer] .ws-drawer-foot .ws-drawer-pdf{padding:0 1rem;background:var(--paper);color:var(--accent);border:1px solid var(--accent);font-weight:600}
.ws-drawer[data-ws-drawer] .ws-drawer-foot .ws-drawer-pdf:hover{background:color-mix(in srgb,var(--accent) 8%,var(--paper));opacity:1}
.ws-drawer[data-ws-drawer] .ws-plan-area-empty button{min-height:0;color:var(--ink)}
.ws-drawer[data-ws-drawer] .ws-btn-outline{padding:.35rem .9rem;font-size:var(--fs-sm)}
.ws-drawer[data-ws-drawer] .ws-plan-area-empty button{border-color:var(--ink);font-size:var(--fs-sm)}
.ws-drawer[data-ws-drawer] .ws-richtext-toolbar input[type=color]{width:16px;height:16px}
@media (max-width: 640px){.ws-ticket-grid{grid-template-columns:1fr}.ws-drawer-foot,.ws-drawer[data-ws-drawer] .ws-drawer-foot{flex-wrap:wrap}.ws-drawer[data-ws-drawer] .ws-drawer-foot .btn,.ws-drawer[data-ws-drawer] .ws-drawer-foot .ws-drawer-pdf,.ws-drawer[data-ws-drawer] .ws-drawer-foot .ws-btn-outline{flex:1 1 auto;justify-content:center}.ws-drawer-foot .ws-checkbox-row{order:-1;width:100%;margin-left:0}}

.ws-plan-area{position:relative}
.ws-plan-area-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:1.6rem 1rem;background:var(--bg);border-radius:var(--radius-sm);color:var(--muted)}
.ws-plan-area-empty svg{width:38px;height:38px;fill:var(--accent);stroke:var(--bg)}
.ws-plan-area-empty button{min-height:0;height:auto;font-size:var(--fs-xs);padding:.3rem .7rem;border:1px solid var(--muted);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font-weight:500;cursor:pointer}
.ws-plan-area-filled{position:relative;height:220px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}
.ws-plan-area-filled .ws-plan-canvas{position:absolute;left:0;top:0;width:300%;max-width:none;margin:0;border:0;border-radius:0;overflow:visible}
.ws-plan-area-filled .ws-plan-canvas[data-error]{left:0!important;top:0!important;width:100%;line-height:1.4}
.ws-plan-area-filled .ws-plan-canvas[data-error] .ws-plan-marker{display:none}
.ws-plan-area-filled .ws-plan-canvas[data-error]::after{display:none}
.ws-plan-area-filled .ws-plan-error{margin:0;padding:1rem}
.ws-plan-area-actions{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:.5rem;padding:.6rem .75rem;background:linear-gradient(0deg,rgba(20,24,26,.55),transparent)}
.ws-plan-area-actions button{min-height:0;background:rgba(255,255,255,.92);color:var(--ink);border:0;border-radius:var(--radius-sm);padding:.4rem .7rem;font-weight:600;cursor:pointer}
.ws-plan-remove{color:#b3261e}

.ws-richtext-box{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);overflow:hidden}
.ws-richtext-box:focus-within{border-color:var(--accent)}
.ws-richtext-toolbar{display:flex;gap:.2rem;flex-wrap:wrap;align-items:center;padding:.3rem .45rem;border-bottom:1px solid var(--line);background:var(--bg)}
.ws-richtext-toolbar button{border:0;background:none;border-radius:var(--radius-sm);min-width:28px;height:28px;padding:0 .4rem;cursor:pointer;color:var(--ink);font-size:var(--fs-sm)}
.ws-richtext-toolbar button:hover{background:var(--line)}
.ws-richtext-toolbar input[type=color]{width:22px;height:22px;padding:0;border:0;border-radius:4px;background:none;cursor:pointer;margin:0 .2rem}
.ws-richtext-editable{min-height:66px;padding:.6rem .65rem;outline:0}
.ws-richtext-editable:empty::before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}
.ws-richtext-count{margin:.3rem 0 0;font-size:var(--fs-xs)}

.ws-links{border:1px solid var(--line);border-radius:var(--radius-sm);padding:0 .9rem}
.ws-links[open]{padding-bottom:.6rem}
.ws-links summary{cursor:pointer;font-weight:600;list-style:none;display:flex;align-items:center;gap:.6rem;height:calc(2.75rem - 2px)}
.ws-links-chevron{display:inline-block;font-size:var(--fs-lg);line-height:1;transition:transform .15s}
.ws-links[open] .ws-links-chevron{transform:rotate(90deg)}
.ws-links-add{margin-left:auto;border:0;background:none;font-size:var(--fs-xl);line-height:1;cursor:pointer;color:var(--ink);padding:0 .2rem}
.ws-links select{width:100%}
.ws-links summary::-webkit-details-marker{display:none}
.ws-links-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0}
.ws-ref-chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--info-bg);color:var(--info-ink);border-radius:var(--radius-pill);padding:.2rem .7rem;font-size:var(--fs-xs);font-weight:600}
.ws-ref-chip button{border:0;background:none;cursor:pointer;font-size:var(--fs-md);line-height:1;color:var(--muted)}

.ws-dropzone{position:relative;display:flex;flex-direction:column;align-items:center;gap:.15rem;border:2px dashed var(--line);border-radius:var(--radius);padding:1.6rem 1rem;text-align:center;color:var(--muted);font-size:var(--fs-xs);font-weight:400;cursor:pointer;transition:border-color .15s,background .15s}
.ws-dropzone svg{width:26px;height:26px;stroke:currentColor;margin-bottom:.4rem}
.ws-dropzone small{font-size:var(--fs-xs);opacity:.8}
.ws-dropzone .ws-dropzone-status{font-size:var(--fs-xs);color:var(--accent);font-weight:600}
.ws-dropzone .ws-dropzone-status:empty{display:none}
.ws-dropzone input[type=file]{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}
.ws-dropzone.is-over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--paper))}
.ws-ticket-attachments h3{margin:0 0 .45rem;font-size:var(--fs-sm);font-weight:600}
.ws-drawer .ws-dropzone{display:block;border:1px dashed var(--ink);border-radius:var(--radius-sm);padding:.75rem 1rem;color:var(--ink)}
.ws-drawer .ws-dropzone p{margin:0;font-size:var(--fs-xs)}
.ws-link-button{border:0;background:none;padding:.4rem 0 0;color:var(--accent);font-weight:600;font-size:var(--fs-xs);cursor:pointer}
.ws-dropzone.is-dragover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--paper))}
.ws-dropzone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
/* Einfache Dateifelder als Ablagefläche (app.js, .pk-drop): gleiche Form wie oben, etwas flacher; gewählte Datei = Akzent */
.pk-drop{width:100%;margin:.35rem 0 .75rem;padding:1rem;color:var(--muted);font-size:var(--fs-sm);font-weight:500;cursor:pointer;background:var(--paper)}
.pk-drop svg{width:22px;height:22px;margin-bottom:.2rem;color:var(--accent)}
.pk-drop .pk-drop-text{color:var(--ink)}
.pk-drop:hover,.pk-drop:focus-within{border-color:var(--accent)}
.pk-drop:focus-within{outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:1px}
.pk-drop.has-file{border-style:solid;border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 4%,var(--paper))}
.pk-drop.has-file .pk-drop-text{color:var(--muted)}
/* In einzeiligen Formularen (AVA-Werkzeugleisten, Importe neben einem Knopf) eine Zeile statt einer Fläche */
form:is(.ava-inline-form,.hn-op-actions,.ava-bid-upload) .pk-drop{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:.4rem .6rem;width:auto;min-width:260px;margin:0;padding:.45rem .8rem}
form:is(.ava-inline-form,.hn-op-actions,.ava-bid-upload) .pk-drop svg{width:18px;height:18px;margin:0}
.ws-dropzone-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem}
.ws-dropzone-list li{display:flex;justify-content:space-between;gap:.5rem;font-size:var(--fs-xs)}
.ws-dropzone-list button{border:0;background:none;color:var(--muted);cursor:pointer}

.ws-remarks-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.8rem}
.ws-remark-add{display:flex;flex-direction:column;gap:.5rem}

.ws-modal-overlay{position:fixed;inset:0;background:rgba(20,24,26,.45);z-index:70;display:flex;align-items:center;justify-content:center;padding:1rem}.ws-modal-overlay[hidden]{display:none}
.ws-modal{background:var(--paper);border-radius:var(--radius);width:min(760px,100%);max-height:90vh;overflow-y:auto;padding:1.2rem 1.4rem}
.ws-modal header{display:flex;align-items:center;gap:.6rem;margin-bottom:.3rem}
.ws-modal header h3{margin:0}
.ws-modal-file{color:var(--muted)}
.ws-modal-close{margin-left:auto;background:none;border:0;font-size:var(--fs-xl);cursor:pointer;color:var(--muted)}
.ws-modal input[type=search]{width:100%;margin:.6rem 0;padding:.55rem .65rem;border:1px solid var(--line);border-radius:var(--radius-sm)}
.ws-plan-excerpt{display:block;max-width:420px;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;line-height:0}
.ws-plan-excerpt img{width:100%;height:auto}
.ws-plan-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin:0 0 .5rem;color:var(--muted);font-size:var(--fs-sm)}
.ws-plan-crumbs button{border:0;background:none;padding:.15rem .2rem;color:var(--accent);font-weight:600;cursor:pointer}
.ws-plan-crumbs button:last-child{color:var(--ink);cursor:default}
.ws-plan-folder-row{cursor:pointer}
.ws-plan-folder-row svg{width:22px;height:22px;stroke:var(--accent)}
.ws-modal table img{width:48px;height:36px;object-fit:cover;border-radius:var(--radius-sm)}

.ws-plan-place-frame{position:relative}
/* Nadel steht fest in der Mitte, der Plan wird darunter verschoben/gezoomt (siehe ticket-drawer.js). */
.ws-plan-place-viewport{position:relative;height:min(60vh,480px);overflow:scroll;background:var(--bg);border-radius:var(--radius);cursor:grab;overscroll-behavior:contain}
.ws-plan-place-viewport.is-panning{cursor:grabbing;user-select:none}
.ws-plan-place-pad{display:inline-block;vertical-align:top}
.ws-plan-place-canvas{position:relative;display:block;width:100%;background:var(--paper);box-shadow:0 0 0 1px var(--line)}.ws-plan-place-canvas img,.ws-plan-place-canvas canvas{display:block;width:100%;height:auto;pointer-events:none;-webkit-user-drag:none}
.ws-plan-place-pin{z-index:2}
.ws-plan-zoom{position:absolute;top:.6rem;right:.6rem;z-index:2;display:flex;flex-direction:column;gap:.35rem}
.ws-plan-zoom button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;min-height:0;padding:0;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}.ws-plan-zoom button:hover{color:var(--accent);border-color:var(--accent)}.ws-plan-zoom svg{width:18px;height:18px}

/* Sammelaktionen der Ticketliste (Mehrfachauswahl + Aktionsleiste), siehe public/assets/ticket-bulk.js. */
.ws-bulk-bar{display:flex;align-items:center;gap:.9rem;background:color-mix(in srgb, var(--accent) 12%, var(--paper));color:var(--accent);border-radius:var(--radius);padding:.7rem 1rem;margin-bottom:.8rem;font-weight:600}
.ws-bulk-clear{padding:0 .2rem;min-height:0;border:0;background:none;color:inherit;font-size:var(--fs-lg);cursor:pointer;line-height:1}
.ws-bulk-actions{margin-left:auto;display:flex;gap:.4rem}
.ws-bulk-actions button{padding:0;min-height:0;flex:0 0 auto;border:0;background:rgba(255,255,255,.6);color:inherit;border-radius:var(--radius-sm);width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.ws-bulk-actions button svg{width:18px;height:18px;flex:0 0 auto}
.ws-bulk-actions button:hover{background:#fff}
th.ws-bulk-check,td.ws-bulk-check{width:2.2rem;text-align:center}

@media (max-width: 900px) {
    .ws-drawer{width:100vw}
}
.crm-dash-more { display: inline-block; margin-top: .4rem; font-size: var(--fs-sm); }
/* Ticket-Fenster: Status direkt ändern (auch für Verantwortliche), eine Bemerkung „Status: A → B“ entsteht automatisch */
.ws-quick-status { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 12px; }
.ws-quick-status-btn { padding: 6px 12px; border-radius: var(--radius-pill); border: 1px solid var(--line-strong); background: var(--paper); color: var(--ink); font-size: var(--fs-sm); min-height: 32px; }
.ws-quick-status-btn:hover:not(:disabled) { border-color: var(--accent); color: var(--accent); }
.ws-quick-status-btn.is-active { color: #fff; border-color: transparent; opacity: 1; cursor: default; }
.ws-quick-status-btn.is-active.ws-status-offen { background: var(--warn); }
.ws-quick-status-btn.is-active.ws-status-in_bearbeitung { background: var(--pending-ink); }
.ws-quick-status-btn.is-active.ws-status-freigemeldet { background: var(--accent); }
.ws-quick-status-btn.is-active.ws-status-geschlossen { background: var(--success); }
/* Dashboard: Zähler auf den Kacheln (src/dashboard.php) */
.portal-module{position:relative}
.portal-module-badge{position:absolute;top:.6rem;right:.7rem;min-width:1.5rem;padding:.1rem .45rem;border-radius:var(--radius-pill);background:var(--accent);color:var(--accent-contrast);font-size:var(--fs-xs);font-weight:600;line-height:1.4;text-align:center}
/* Projektbild + Karte im Panel „Projekt bearbeiten“ → Stammdaten (Management und Dashboard, src/project-parties-pages.php) */
.pm-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 1rem; margin-bottom: 1rem; padding: 1rem; }
.pm-image { position: relative; margin: 0; min-height: 220px; border-radius: var(--radius-sm); overflow: hidden; background: var(--bg); display: flex; align-items: center; justify-content: center; }
.pm-image img { width: 100%; height: 100%; max-height: 300px; object-fit: cover; display: block; }
.pm-image-empty { display: flex; flex-direction: column; align-items: center; gap: .4rem; color: var(--muted); font-size: var(--fs-sm); }
.pm-image-empty svg { width: 28px; height: 28px; stroke: currentColor; }
.pm-image-form { position: absolute; right: .6rem; bottom: .6rem; margin: 0; }
.pm-image-form .btn { cursor: pointer; background: var(--paper); }
.pm-map { position: relative; min-height: 220px; border-radius: var(--radius-sm); overflow: hidden; background: var(--bg); border: 1px solid var(--line); }
.pm-map-canvas { position: absolute; inset: 0; }
.pm-map:not(.has-map) .pm-map-canvas { display: none; }
.pm-map-status { position: relative; margin: 0; padding: .8rem 1rem; font-size: var(--fs-sm); }
.pm-map-status.is-overlay { position: absolute; left: .5rem; bottom: .5rem; z-index: 500; padding: .3rem .6rem; border-radius: var(--radius-sm); background: rgba(255, 255, 255, .92); color: var(--ink); font-size: var(--fs-xs); }
@media (max-width: 760px) { .pm-hero { grid-template-columns: 1fr; } }
.emp-card.pm-hero { padding: 1rem; margin-bottom: 0; }
.emp-card.pm-hero .pm-image, .emp-card.pm-hero .pm-map { min-height: 170px; }
/* Projektportal: „✓ Portal“ an der Person (Reiter „Beteiligte“) und Reiter „Zugänge“ (src/project-parties-pages.php, project_section_access) */
.pt-pers { position: relative; }
.pt-pers .emp-tag { max-width: 14rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 0 1 auto; }
.pt-pers small { flex: 1 1 auto; }
.pt-pm-on { flex: none; margin-left: auto; padding: 0 .55rem; border-radius: var(--radius-pill); background: var(--info-bg); color: var(--info-ink); font-size: 11.5px; font-weight: 600; line-height: 22px; white-space: nowrap; text-decoration: none; }
.pt-pm-on:hover { text-decoration: underline; }
.pt-pm-on + .pt-star { margin-left: 0; }
@media (max-width: 760px) { .pt-pers { flex-wrap: wrap; } .pt-pm-on { margin-left: 34px; } }
.pa { display: flex; flex-direction: column; gap: 14px; }
.pa h3 { margin: 0; }
.pa-head { display: flex; align-items: flex-start; gap: 12px; }
.pa-head > div { flex: 1; min-width: 0; }
.pa-head button { flex: none; white-space: nowrap; }
.pa-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 12px 0 4px; }
.pa-kpi { display: flex; flex-direction: column; align-items: flex-start; gap: 0; min-height: 0; height: auto; padding: 7px 10px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); color: var(--ink); box-shadow: none; text-align: left; font-weight: 400; cursor: pointer; }
.pa-kpi b { font-size: 19px; line-height: 1.15; }
.pa-kpi span { color: var(--muted); font-size: 12px; }
.pa-kpi:hover:not(:disabled) { border-color: var(--accent); }
.pa-kpi[aria-pressed="true"] { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.pa-kpi:disabled { opacity: .55; cursor: default; }
.pa-empty { margin: 10px 0 0; font-size: 13px; }
.pa-tbl { width: 100%; border-collapse: collapse; margin-top: 8px; font-size: 13px; }
.pa-tbl th { padding: 6px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 11px; font-weight: 600; letter-spacing: .04em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.pa-tbl td { padding: 7px 6px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.pa-tbl td:last-child, .pa-tbl th:last-child { width: 30px; padding-right: 0; }
.pa-tbl tr.is-off td { color: var(--muted); }
.pa-tbl tr.is-off .pa-who b { color: var(--muted); text-decoration: line-through; }
.pa-tbl small { color: var(--muted); font-size: 11.5px; }
.pa-who { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pa-who .avatar { flex: none; width: 28px; height: 28px; font-size: 11px; }
.pa-who span { display: flex; flex-direction: column; min-width: 0; }
.pa-who small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pa-role { display: inline-block; padding: 1px 8px; border: 1px solid var(--line); border-radius: var(--radius-pill); font-size: 12px; font-weight: 600; white-space: nowrap; }
.pa-note { display: block; margin-top: 2px; }
.tone-muted { background: #eef0f1; color: var(--muted); }
.pa-dots { width: 28px; height: 28px; min-height: 0; padding: 0; border: 1px solid var(--line); border-radius: 6px; background: var(--paper); color: var(--ink); box-shadow: none; font-weight: 700; line-height: 1; cursor: pointer; }
.pa-dots:hover, .pa-dots[aria-expanded="true"] { border-color: var(--accent); color: var(--accent); }
.pa-matrix { width: 100%; border-collapse: collapse; margin-top: 8px; font-size: 12.5px; }
.pa-matrix th, .pa-matrix td { padding: 6px 8px; border-bottom: 1px solid var(--line); text-align: center; }
.pa-matrix th:first-child, .pa-matrix td:first-child { text-align: left; }
.pa-matrix th { color: var(--muted); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.pa-matrix small { color: var(--muted); font-size: 11.5px; }
.pa-y { color: var(--ok); font-weight: 700; }
.pa-n { color: #c3c9cd; }
.pa-log { list-style: none; margin: 8px 0 0; padding: 0; font-size: 12.5px; }
.pa-log li { display: flex; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--line); }
.pa-log li:last-child { border-bottom: 0; }
.pa-log time { flex: none; width: 96px; color: var(--muted); }
.pa-dot { flex: none; width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: var(--accent); }
.pa-dot.is-ok { background: var(--ok); } .pa-dot.is-danger { background: var(--danger); } .pa-dot.is-info { background: var(--info-ink); }
.pa-dlg { width: min(560px, calc(100vw - 32px)); max-height: calc(100vh - 48px); padding: 18px 20px; border: 0; border-radius: 12px; box-shadow: 0 20px 60px rgba(0, 0, 0, .25); }
.pa-dlg::backdrop { background: rgba(15, 36, 48, .35); }
.pa-dlg form { display: flex; flex-direction: column; gap: 10px; margin: 0; }
.pa-dlg h2 { margin: 0; font-size: 17px; }
.pa-step { margin: 6px 0 -2px; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.pa-pick { max-height: 260px; overflow: auto; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.pa-pick label, .pa-roles label { display: flex; align-items: center; gap: 9px; margin: 0; padding: 8px 10px; font-size: 13px; font-weight: 400; cursor: pointer; }
.pa-pick label { border-bottom: 1px solid var(--line); }
.pa-pick label:last-child { border-bottom: 0; }
.pa-pick label:has(input:checked) { background: color-mix(in srgb, var(--accent) 7%, var(--paper)); }
.pa-pick label.is-off { color: var(--muted); cursor: default; }
.pa-pick span, .pa-roles span { display: flex; flex-direction: column; min-width: 0; }
.pa-pick small, .pa-roles small { color: var(--muted); font-size: 11.5px; }
.pa-pick input, .pa-roles input { flex: none; width: auto; margin: 0; accent-color: var(--accent); }
.pa-roles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.pa-roles label { align-items: flex-start; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.pa-roles label:has(input:checked) { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.pa-roles label:has(input:checked) b { color: var(--accent); }
.pa-dlg-foot { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 4px; }
.pa-dlg-foot small { margin-right: auto; color: var(--muted); font-size: 12px; }
@media (max-width: 760px) { .pa-last { display: none; } .pa-kpis, .pa-roles { grid-template-columns: repeat(2, 1fr); } .pa-head { flex-direction: column; } }

/* Bauleitung → Projektbeteiligte (src/beteiligte-pages.php): Kopf, Sofort-Filter, Liste links, Vorschau rechts; unter 1500 px liegt die Vorschau über der Liste */
.pb { display: flex; flex-direction: column; gap: 12px; }
.pb-head { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.pb-head h1 { margin: 0; }
.pb-head p { margin: 2px 0 0; font-size: 13px; }
.pb-head button { white-space: nowrap; }
.pb-sp { flex: 1; }
.pb > .pt-add { margin: 0; }
.pb-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); }
.pb-bar input[type="search"] { flex: 0 1 260px; min-height: 0; height: 32px; padding: 0 10px; font-size: 13px; }
.pb-bar select { width: auto; min-height: 0; height: 32px; padding: 0 28px 0 10px; font-size: 12.5px; }
.pb-chip { min-height: 0; height: auto; padding: 4px 10px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--muted); box-shadow: none; font-size: 12.5px; font-weight: 400; white-space: nowrap; cursor: pointer; }
.pb-chip b { margin-left: 3px; color: var(--ink); font-weight: 600; }
.pb-chip.is-on { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 6%, var(--paper)); color: var(--accent); font-weight: 600; }
.pb-body { display: grid; grid-template-columns: minmax(0, 1fr) 480px; gap: 12px; align-items: start; position: relative; }
.pb-list { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); }
.pb-gh { padding: 8px 12px; border-bottom: 1px solid var(--line); background: var(--bg); color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.pb-gh small { margin-left: 4px; font-weight: 600; }
.pb-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) 110px 150px 14px; gap: 10px; align-items: center; padding: 9px 12px; border-bottom: 1px solid var(--line); color: var(--ink); font-size: 13px; text-decoration: none; }
.pb-row:hover { background: color-mix(in srgb, var(--accent) 4%, var(--paper)); }
.pb-row.is-sel { background: color-mix(in srgb, var(--accent) 7%, var(--paper)); box-shadow: inset 3px 0 0 var(--accent); }
.pb-row.is-done { color: var(--muted); }
.pb-ini { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 8px; background: #e8f2f5; color: var(--accent); font-size: 12px; font-weight: 700; }
.pb-row.is-done .pb-ini { background: #eef0f1; color: var(--muted); }
.pb-n { display: flex; flex-direction: column; min-width: 0; }
.pb-n b, .pb-n small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pb-n small { color: var(--muted); font-size: 12px; }
.pb-avs { display: flex; align-items: center; }
.pb-avs .avatar { width: 24px; height: 24px; margin-left: -6px; border: 2px solid var(--paper); font-size: 9.5px; }
.pb-avs .avatar:first-child { margin-left: 0; }
.pb-avs small { margin-left: 5px; color: var(--muted); font-size: 11.5px; white-space: nowrap; }
.pb-pp { display: flex; flex-wrap: wrap; gap: 4px; }
.pb-pp .badge { font-size: 11px; white-space: nowrap; }
.pb-chev { color: #b7c0c5; }
.pb-none { margin: 0; padding: 12px; font-size: 13px; }
.pb-prev { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); }
.pb-ph { display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px 10px; border-bottom: 1px solid var(--line); }
.pb-ph .pb-ini { flex: none; width: 42px; height: 42px; font-size: 15px; }
.pb-ph h2 { margin: 0; font-size: 18px; }
.pb-ph p { margin: 2px 0 0; color: var(--muted); font-size: 12.5px; }
.pb-arch { flex: none; min-height: 0; height: 32px; padding: 0 12px; white-space: nowrap; }
.pb-x { display: none; flex: none; align-items: center; justify-content: center; width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); }
.pb-x svg { width: 16px; height: 16px; }
.pb-donenote { margin: 0; padding: 8px 16px; border-bottom: 1px solid var(--line); background: var(--warn-bg); color: var(--pending-ink); font-size: 12.5px; }
.pb-sec { padding: 12px 16px; border-bottom: 1px solid var(--line); }
.pb-sec:last-child { border-bottom: 0; }
.pb-sec h3 { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; color: var(--muted); font-size: 12px; letter-spacing: .05em; text-transform: uppercase; }
.pb-sec h3 a { font-size: 12.5px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.pb-kv { display: grid; grid-template-columns: 130px 1fr; gap: 5px 10px; margin: 0; font-size: 13px; }
.pb-kv dt { color: var(--muted); }
.pb-kv dd { margin: 0; }
.pb-small { margin: 0; font-size: 13px; }
/* Firma als Zeile aus dem Panel (project_part_row): Kopf steht schon oben, Bearbeiten/Entfernen bleiben */
.pb-rowwrap .pt-row { padding: 0; border: 0; background: none; box-shadow: none; }
.pb-rowwrap .pt-row > .pt-av, .pb-rowwrap .pt-row > .pt-who { display: none; }
.pb-rowwrap .pt-row > .pt-side { position: absolute; top: 8px; right: 0; }
.pb-rowwrap { position: relative; }
.pb-pstat { flex: none; white-space: nowrap; font-size: 11px; }
.pb-inv { flex: none; min-height: 0; height: 26px; padding: 0 10px; border: 1px solid var(--accent); border-radius: 999px; background: var(--paper); color: var(--accent); box-shadow: none; font-size: 12px; font-weight: 600; white-space: nowrap; cursor: pointer; }
.pb-inv:hover { background: color-mix(in srgb, var(--accent) 8%, var(--paper)); }
.pb-rowwrap .pt-pers .pa-dots { flex: none; width: 26px; height: 26px; }
.pb-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.pb-stat { padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); font-size: 12px; text-decoration: none; }
.pb-stat b { display: block; color: var(--ink); font-size: 18px; }
.pb-stat:hover { border-color: var(--accent); }
@media (max-width: 1499px) {
  .pb-body { grid-template-columns: minmax(0, 1fr); }
  .pb:not(.has-pick) .pb-prev { display: none; }
  .pb.has-pick .pb-prev { position: absolute; top: 0; right: 0; z-index: 5; width: min(480px, 100%); max-height: calc(100vh - 140px); overflow: auto; box-shadow: -12px 0 30px rgba(15, 36, 48, .18); }
  .pb-x { display: inline-flex; }
}
@media (max-width: 760px) {
  .pb-row { grid-template-columns: 34px minmax(0, 1fr) 14px; }
  .pb-avs, .pb-pp { display: none; }
  .pb.has-pick .pb-prev { position: static; width: auto; max-height: none; box-shadow: none; order: -1; }
  .pb-kv { grid-template-columns: 1fr; }
  .pb-stats { grid-template-columns: 1fr; }
}
.pb-rowwrap [data-pt-tag] { display: none; }
.pb-rowwrap .pt-persons { margin-left: 0; }
.pb-rowwrap .pt-row > .pt-side { right: 16px; }
.pb-sub { margin: 10px 0 4px; color: var(--muted); font-size: 12px; }

/* Projektdaten (src/projektdaten-pages.php): Kopf, Überblick mit Vollständigkeit und Gruppen-Karten, Kernangaben zweispaltig */
.pd { display: flex; flex-direction: column; gap: 14px; }
.pd-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.pd-code { display: flex; align-items: center; justify-content: center; flex: none; width: 52px; height: 52px; border-radius: 12px; background: var(--accent); color: #fff; font-size: 13px; font-weight: 800; }
.pd-head h1 { margin: 0; }
.pd-head p { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 2px 0 0; color: var(--muted); font-size: 13px; }
.pd-sp { flex: 1; }
.pd-saved { font-size: 12.5px; }
.pd-top { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 12px; align-items: stretch; }
.pd-top > .emp-card { margin: 0; }
.pd-done { display: flex; flex-direction: column; gap: 10px; }
.pd-ring { display: flex; align-items: center; gap: 12px; }
.pd-ring i { display: flex; align-items: center; justify-content: center; flex: none; width: 58px; height: 58px; border-radius: 50%; background: conic-gradient(var(--accent) 0 var(--pd-done), #e6ecee var(--pd-done) 100%); }
.pd-ring i b { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--paper); font-size: 13px; font-style: normal; }
.pd-ring span { font-size: 13px; }
.pd-ring small { display: block; color: var(--muted); font-size: 12px; }
.pd-todo { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.pd-todo li { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px solid var(--line); }
.pd-todo li::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: #e0a800; }
.pd-todo li.is-ok { color: var(--muted); }
.pd-todo li.is-ok::before { background: var(--ok); }
.pd-todo li a { margin-left: auto; font-size: 12.5px; font-weight: 600; }
.pd-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pd-grid > .emp-card { margin: 0; }
.pd-grid h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; color: var(--muted); font-size: 13px; letter-spacing: .05em; text-transform: uppercase; }
.pd-grid h3 a { margin-left: auto; font-size: 12.5px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.pd-kv { display: grid; grid-template-columns: 140px 1fr; gap: 6px 10px; margin: 0; font-size: 13px; }
.pd-kv dt { color: var(--muted); }
.pd-kv dd { margin: 0; min-width: 0; }
.pd-miss-v { color: var(--pending-ink); font-weight: 600; }
.pd-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.pd-chips span { padding: 3px 9px; border: 1px solid var(--line); border-radius: 999px; font-size: 12px; }
.pd-chips b { color: var(--accent); }
.pd-avs { display: inline-flex; align-items: center; gap: 4px; }
.pd-avs .avatar { width: 26px; height: 26px; font-size: 10px; }
.pd-avs small { color: var(--muted); }
.pd-links { display: flex; flex-direction: column; gap: 6px; }
.pd-links a { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); font-size: 13px; text-decoration: none; }
.pd-links a:hover { border-color: var(--accent); }
.pd-links small { margin-left: auto; color: var(--muted); font-size: 12px; text-align: right; }
.pd-none { margin: 0; font-size: 13px; }
.pd-kern { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 12px; align-items: start; }
.pd-main, .pd-side { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.pd-main > .emp-card, .pd-side > .emp-card { margin: 0; }
.pd-side .pm-hero { grid-template-columns: 1fr; }
.pd-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px; }
.pd-pick a { display: flex; flex-direction: column; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); color: var(--ink); text-decoration: none; }
.pd-pick a:hover { border-color: var(--accent); }
.pd-pick small { color: var(--muted); }
.pd .pb-head h2 { margin: 0; font-size: 18px; }
@media (max-width: 1280px) { .pd-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1100px) { .pd-top, .pd-kern { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .pd-grid { grid-template-columns: 1fr; } .pd-kv { grid-template-columns: 1fr; } }

/* Einladen-Dialog: Berechtigung je Person aus der Gruppe (Adressbuch) */
.pa-perm { flex: none; margin-left: auto; padding: 1px 8px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 11.5px; font-style: normal; font-weight: 600; white-space: nowrap; }
.pa-pick label:has(input:checked) .pa-perm { border-color: var(--accent); color: var(--accent); }
.pa-hint { margin: 0; color: var(--muted); font-size: 12px; }

/* Rechtsklick-Ziele und Dialog „Personen einladen“ (Mehrfachauswahl) */
.pb .pt-pers, .pb [data-pb-gmenu] { -webkit-touch-callout: none; }
.pb-pstat { text-decoration: none; }
.pb-pstat::after { content: " ›"; font-weight: 700; }
.pa-ini { width: 28px; height: 28px; font-size: 11px; flex: none; }
.pa-blocked td:last-child { width: auto; white-space: nowrap; text-align: right; }
.pa-dlg-multi { width: min(680px, calc(100vw - 32px)); }
.pa-q { min-height: 0; height: 34px; padding: 0 10px; font-size: 13px; }
.pa-multi { display: flex; flex-direction: column; gap: 10px; max-height: 52vh; overflow: auto; }
.pa-g { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; }
.pa-gh, .pa-fh, .pa-p { display: flex; align-items: center; gap: 9px; margin: 0; cursor: pointer; }
.pa-gh { padding: 8px 12px; background: var(--bg); color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.pa-gh small { margin-left: auto; font-size: 11.5px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.pa-fh { padding: 7px 12px 4px 34px; font-size: 13px; font-weight: 700; }
.pa-fh small { color: var(--muted); font-weight: 400; }
.pa-p { padding: 6px 12px 6px 58px; border-top: 1px solid #eef1f2; font-size: 13px; font-weight: 400; }
.pa-p span { display: flex; flex-direction: column; min-width: 0; }
.pa-p small { color: var(--muted); font-size: 11.5px; }
.pa-p.is-off { color: #a7b0b5; cursor: default; }
.pa-p.is-off small { color: var(--pending-ink); }
.pa-gh input, .pa-fh input, .pa-p input { flex: none; width: auto; margin: 0; accent-color: var(--accent); }
.pa-sum { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; background: color-mix(in srgb, var(--accent) 7%, var(--paper)); font-size: 13px; }
.pa-sum b { color: var(--accent); }
.pa-sp { flex: 1; }
@media (max-width: 760px) { .pa-sum { flex-wrap: wrap; } .pa-p { padding-left: 34px; } .pa-fh { padding-left: 20px; } }

/* Lesbarkeit (Prüfung 2026-10-09): Tabellen auf dem Handy umbrechen statt über den Rand; Zugänge als Karten */
@media (max-width: 760px) {
  .ws-table { min-width: 0; }
  .ws-table th, .ws-table td { padding: .5rem; overflow-wrap: anywhere; }
  .pa-tbl thead { display: none; }
  .pa-tbl tbody tr { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding: 8px 0; border-bottom: 1px solid var(--line); }
  .pa-tbl tbody td { display: block; padding: 0; border: 0; }
  .pa-tbl tbody td:first-child { flex: 1 1 calc(100% - 44px); min-width: 0; order: 1; }
  .pa-tbl tbody td:last-child { order: 2; margin-left: auto; }
  .pa-tbl tbody td:nth-child(2) { order: 3; }
  .pa-tbl tbody td:nth-child(3) { order: 4; }
  .pa-tbl tbody td.pa-last { display: none; }
  .pa-tbl .badge { white-space: normal; }
}
.pb-gh small { font-size: 11px; }
