/* Kompakte Desktop-Ansichten ohne horizontale Seitenüberbreite auf Mobilgeräten. */
.private-header{gap:1.1rem;padding:.45rem clamp(.75rem,1.8vw,1.7rem)}
.private-brand{font-size:1.05rem}.private-brand small{font-size:.58rem}
.brand-mark{width:2rem;height:2rem;border-radius:.48rem}
.private-nav a{padding:.42rem .62rem;font-size:.91rem}
.private-account{gap:.5rem;font-size:.85rem}
.private-content{max-width:1900px;padding:clamp(.75rem,1.5vw,1.55rem)}
.page-heading{margin-bottom:.8rem;align-items:center}
.page-heading h1{font-size:clamp(1.45rem,2.2vw,2rem);margin:.1rem 0}
.page-heading p{font-size:.9rem;margin:.12rem 0}
.eyebrow{font-size:.72rem}
.panel{padding:.85rem 1rem;border-radius:.72rem;margin-bottom:.7rem;box-shadow:0 2px 10px #213a6508}
.panel h2{margin:0 0 .45rem;font-size:1rem}
.button{padding:.45rem .7rem;border-radius:.45rem;font-size:.88rem;white-space:nowrap}
.button-small{padding:.28rem .45rem;font-size:.82rem;min-width:5.7rem}
.notice{padding:.6rem .8rem;margin:.6rem 0;font-size:.88rem}
.field{gap:.2rem}.field>span,.field>label{font-size:.77rem}
.field input,.field select,.field textarea,.search-input{padding:.48rem .58rem;border-radius:.42rem;font-size:.9rem}
.search-row{gap:.5rem}.search-row .field{flex-basis:240px}.search-row .field.short{flex-basis:105px}
.filter-details{margin-top:.6rem;padding-top:.55rem}
.data-table{font-size:.87rem;line-height:1.2}
.data-table th,.data-table td{padding:.38rem .46rem}
.data-table th{font-size:.72rem}
.data-table td{vertical-align:middle}
.data-table td a{overflow-wrap:normal}
.data-table td:nth-child(2),.data-table td:nth-child(3),.data-table td:last-child{white-space:nowrap}
.data-table td:last-child{width:1%;min-width:6.3rem}
.data-table td:nth-child(3) .subline{display:inline;margin-left:.45rem}
.data-table td:nth-child(3) .subline::before{content:'·';margin-right:.45rem;color:#8997aa}
.data-table td:first-child .subline{display:inline;margin-left:.4rem;font-size:.72rem}
.data-table td:first-child .subline::before{content:'·';margin-right:.35rem;color:#a4adba}
.data-table tbody tr:nth-child(even) td{background:#fafbfd}
.data-table tr:hover td{background:#eef4fd}
.person-name{font-size:.88rem}
.pager{margin-top:.55rem;font-size:.82rem}
.contact-page{max-width:1120px;margin:0 auto}
.contact-page .panel{padding:1rem 1.1rem}
.contact-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem 1.2rem;margin:0}
.contact-facts div{min-width:0}
.contact-facts dt{color:#61718a;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.contact-facts dd{margin:.15rem 0 0;font-size:.91rem;overflow-wrap:anywhere}
.contact-facts a{text-decoration:none}
.contact-facts a:hover{text-decoration:underline}
.contact-form .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem 1rem}
.contact-form h2{margin:1.1rem 0 .45rem}
.contact-form .flag-group label{padding:.33rem .48rem;font-size:.8rem}
.contact-form .action-row{margin-top:1rem}
@media(max-width:1100px){.data-table td:nth-child(3) .subline{display:block;margin-left:0}.data-table td:nth-child(3) .subline::before{content:none}}
@media(max-width:700px){.private-header{gap:.45rem;padding:.55rem .75rem}.private-nav{padding-bottom:.2rem}.private-nav a{font-size:.85rem}.private-content{padding:.75rem}.panel{padding:.75rem}.data-table,.data-table tbody,.data-table tr,.data-table td{font-size:.86rem}.data-table td{padding:.36rem 0;white-space:normal!important}.data-table td:last-child{width:auto;min-width:0}.data-table td:nth-child(3) .subline{display:block;margin:0}.data-table td:nth-child(3) .subline::before{content:none}.data-table td:first-child .subline{display:block;margin:0}.data-table td:first-child .subline::before{content:none}.contact-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.contact-form .form-grid{grid-template-columns:1fr 1fr}.contact-page .panel{padding:.9rem}}
@media(max-width:420px){.contact-facts,.contact-form .form-grid{grid-template-columns:1fr}.contact-facts div{border-bottom:1px solid #edf1f6;padding-bottom:.4rem}}

/* Adressbuch: gut lesbare Liste statt maximal verdichteter Verwaltungstabelle. */
.js-hidden{display:none!important}
.contact-search[aria-busy="true"]{opacity:.78}
.contact-search{padding:1rem 1.15rem}
.contact-search .search-row{margin-bottom:.65rem}
.contact-search .search-row .field:first-child{flex:1 1 440px}
.filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.35rem}
.filter-label{min-width:5.8rem;font-size:.75rem;font-weight:750;color:#53657f;text-transform:uppercase;letter-spacing:.035em}
.filter-chip{position:relative;display:inline-flex;align-items:center;gap:.28rem;padding:.23rem .45rem;border:1px solid #d8e2ef;border-radius:.45rem;background:#f7f9fc;color:#34455d;cursor:pointer;font-size:.77rem;line-height:1.2}
.filter-chip input{position:absolute;opacity:0;width:1px;height:1px}
.filter-chip span{display:inline-grid;place-items:center;min-width:1.2rem;height:1.2rem;border-radius:.25rem;background:#e2eaf6;color:#28549b;font-weight:800}
.filter-chip:has(input:checked){background:#e5efff;border-color:#4175c4;color:#183f7c}
.filter-chip:has(input:checked) span{background:#285caa;color:#fff}
.filter-chip:has(input:focus-visible){outline:3px solid #63a0ff;outline-offset:2px}
.contact-results .data-table{line-height:1.35}
.contact-results .data-table th,.contact-results .data-table td{padding:.68rem .6rem}
.contact-results .data-table td:first-child .subline{display:block;margin:.16rem 0 0}
.contact-results .data-table td:first-child .subline::before{content:none}
.contact-results .data-table td:nth-child(3) .subline{display:block;margin:.18rem 0 0}
.contact-results .data-table td:nth-child(3) .subline::before{content:none}
.badge-group{display:flex;flex-wrap:wrap;gap:.2rem;max-width:20rem}
.code-badge{display:inline-grid;place-items:center;min-width:1.25rem;height:1.25rem;padding:0 .18rem;border-radius:.28rem;font-size:.68rem;font-weight:800;text-decoration:none;cursor:help}
.code-badge.role{background:#e9efff;color:#24539f}
.code-badge.interest{background:#e7f4ec;color:#1e7450}
.contact-page{max-width:1080px}
.profile-card{display:flex;align-items:center;gap:1.2rem;margin-bottom:1rem;padding:1.2rem 1.4rem;border:1px solid #dce6f2;border-radius:1rem;background:linear-gradient(120deg,#fff,#f4f8ff)}
.profile-card h2{margin:.1rem 0;font-size:clamp(1.35rem,2.3vw,1.9rem);color:#173254}
.profile-card p{margin:.1rem 0}
.profile-avatar{display:grid;place-items:center;flex:none;width:4.2rem;height:4.2rem;border-radius:50%;background:#dce9fc;color:#205399;font-size:1.35rem;font-weight:750}
.profile-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:1rem}
.profile-grid .panel{margin:0;padding:1.2rem 1.35rem}
.profile-grid .contact-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}
.profile-grid .contact-facts dt{font-size:.75rem}
.profile-grid .contact-facts dd{font-size:.96rem}
/* Benutzerverwaltung bewusst nicht auf das enge Adressbuch-Tabellenmaß zwingen. */
.split-layout .data-table th,.split-layout .data-table td{padding:.7rem .65rem}
.split-layout .panel{padding:1.2rem}
.split-layout .button{padding:.6rem .82rem}
.split-layout .button-small{padding:.4rem .58rem}
.split-layout .form-grid{gap:1rem}
.split-layout .data-table td:first-child .subline{display:block;margin:.2rem 0 0}
.split-layout .data-table td:first-child .subline::before{content:none}
.split-layout .data-table td:last-child .action-row{gap:.8rem}
.split-layout .data-table td:last-child form{margin-left:.25rem;padding-left:.8rem;border-left:1px solid #d8e0ed}
.split-layout .data-table td:last-child form .button{color:#a62a3e;border-color:#e8b8c0;background:#fff7f8}
@media(max-width:850px){.profile-grid{grid-template-columns:1fr}}
@media(max-width:700px){.contact-results .data-table th,.contact-results .data-table td{padding:.45rem 0}.badge-group{justify-content:flex-end}.filter-label{flex-basis:100%;margin-top:.35rem}.filter-chip small{display:none}.filter-chip{min-width:2rem;justify-content:center}.profile-card{padding:1rem;gap:.8rem}.profile-avatar{width:3.3rem;height:3.3rem}.profile-grid .contact-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.profile-grid .contact-facts{grid-template-columns:1fr}}

/* Benutzerverwaltung: Liste als Hauptansicht, Formular nur bei Aktion. */
.user-admin{max-width:1320px;margin:0 auto}
.user-admin>.page-heading{margin-bottom:1rem}
.user-list,.user-editor{padding:1.35rem 1.5rem}
.user-list .page-heading,.user-editor .page-heading{margin-bottom:.8rem}
.user-list .page-heading p{font-size:.85rem}
.user-list .data-table th,.user-list .data-table td{padding:.82rem .75rem}
.user-list .data-table td:first-child .subline{display:block;margin:.2rem 0 0}
.user-list .data-table td:first-child .subline::before{content:none}
.user-list .data-table td:last-child{width:1%;min-width:15rem}
.user-actions{display:flex;align-items:center;justify-content:flex-end;gap:.8rem;white-space:nowrap}
.user-actions form{margin:0;padding-left:.8rem;border-left:1px solid #dce4ef}
.user-actions .button{min-width:6.7rem}
.user-editor{max-width:980px;margin:0 auto 1.3rem}
.user-editor .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.3rem}
.user-editor .field input,.user-editor .field select{padding:.65rem .75rem}
.user-editor .action-row{margin-top:1rem}
@media(max-width:700px){.user-list,.user-editor{padding:1rem}.user-list .data-table td:last-child{width:auto;min-width:0}.user-actions{justify-content:flex-end;flex-wrap:wrap}.user-editor .form-grid{grid-template-columns:1fr}}

/* Ruhigere Bereichsnavigation mit persönlichem Kontomenü. */
.private-header{gap:clamp(1rem,2vw,2rem);padding:.8rem clamp(1rem,2.4vw,2.4rem);background:#fff}
.private-brand{font-size:1.16rem;gap:.7rem}
.brand-mark{width:2.4rem;height:2.4rem;border-radius:.65rem}
.private-nav{gap:.25rem}
.private-nav a{padding:.55rem .78rem;border-radius:.55rem;font-size:.93rem;color:#344761}
.private-nav a:hover,.private-nav a:focus-visible{background:#edf3fd;color:#1e519b}
.account-menu{position:relative;margin-left:auto;z-index:20}
.account-menu>summary{display:flex;align-items:center;gap:.55rem;list-style:none;cursor:pointer;padding:.28rem .55rem .28rem .3rem;border:1px solid #d9e4f2;border-radius:99px;background:#f9fbff;color:#233e65;font-size:.9rem;font-weight:650;white-space:nowrap}
.account-menu>summary::-webkit-details-marker{display:none}
.account-menu>summary:hover,.account-menu[open]>summary{background:#edf4ff;border-color:#a9c4ea}
.account-menu>summary:focus-visible{outline:3px solid #63a0ff;outline-offset:2px}
.account-avatar{display:grid;place-items:center;flex:none;width:1.9rem;height:1.9rem;border-radius:50%;background:#dce9fb;color:#2458a2;font-weight:800;text-transform:uppercase}
.account-dropdown{position:absolute;right:0;top:calc(100% + .45rem);width:240px;padding:.4rem;background:#fff;border:1px solid #d7e2ef;border-radius:.8rem;box-shadow:0 14px 35px #1e3d6a25}
.account-dropdown-title{padding:.65rem .7rem;color:#66758b;font-size:.8rem;border-bottom:1px solid #e6ecf4;margin-bottom:.25rem}
.account-dropdown-title strong{display:block;color:#213c60;font-size:.92rem;margin-top:.13rem;overflow-wrap:anywhere}
.account-dropdown a,.account-dropdown button{display:block;width:100%;padding:.6rem .7rem;border:0;border-radius:.45rem;background:transparent;color:#263e5d;text-align:left;text-decoration:none;font-size:.9rem;font-weight:600;cursor:pointer}
.account-dropdown a:hover,.account-dropdown button:hover{background:#edf3fc}
.account-dropdown form{margin:.2rem 0 0;padding-top:.25rem;border-top:1px solid #e6ecf4}
.account-dropdown form button{color:#9b3346}
.account-page{max-width:1120px;margin:0 auto}
.account-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:1rem}
.account-grid .panel{padding:1.35rem}
.account-grid form{display:grid;gap:.9rem}
.account-grid .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
.account-grid .button{justify-self:start}
@media(max-width:950px){.private-header{gap:.7rem}.private-nav{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap}.account-grid{grid-template-columns:1fr}}
@media(max-width:700px){.private-header{padding:.7rem .85rem}.private-nav a{white-space:nowrap;padding:.45rem .6rem}.account-name{display:none}.account-grid .form-grid{grid-template-columns:1fr}.account-grid .panel{padding:1rem}}
