/*!
 * Bootstrap Icons v1.11.3 (https://icons.getbootstrap.com/)
 * Copyright 2019-2024 The Bootstrap Authors
 * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE)
 */@font-face{font-display:block;font-family:bootstrap-icons;src:url("/modules/icons/design/css/fonts/bootstrap-icons.woff2?dd67030699838ea613ee6dbda90effa6") format("woff2")}.bi::before,[class*=" bi-"]::before,[class^=bi-]::before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bi-123::before{content:"\f67f"}.bi-alarm-fill::before{content:"\f101"}.bi-alarm::before{content:"\f102"}.bi-align-bottom::before{content:"\f103"}.bi-align-center::before{content:"\f104"}.bi-align-end::before{content:"\f105"}.bi-align-middle::before{content:"\f106"}.bi-align-start::before{content:"\f107"}.bi-align-top::before{content:"\f108"}.bi-alt::before{content:"\f109"}.bi-app-indicator::before{content:"\f10a"}.bi-app::before{content:"\f10b"}.bi-archive-fill::before{content:"\f10c"}.bi-archive::before{content:"\f10d"}.bi-arrow-90deg-down::before{content:"\f10e"}.bi-arrow-90deg-left::before{content:"\f10f"}.bi-arrow-90deg-right::before{content:"\f110"}.bi-arrow-90deg-up::before{content:"\f111"}.bi-arrow-bar-down::before{content:"\f112"}.bi-arrow-bar-left::before{content:"\f113"}.bi-arrow-bar-right::before{content:"\f114"}.bi-arrow-bar-up::before{content:"\f115"}.bi-arrow-clockwise::before{content:"\f116"}.bi-arrow-counterclockwise::before{content:"\f117"}.bi-arrow-down-circle-fill::before{content:"\f118"}.bi-arrow-down-circle::before{content:"\f119"}.bi-arrow-down-left-circle-fill::before{content:"\f11a"}.bi-arrow-down-left-circle::before{content:"\f11b"}.bi-arrow-down-left-square-fill::before{content:"\f11c"}.bi-arrow-down-left-square::before{content:"\f11d"}.bi-arrow-down-left::before{content:"\f11e"}.bi-arrow-down-right-circle-fill::before{content:"\f11f"}.bi-arrow-down-right-circle::before{content:"\f120"}.bi-arrow-down-right-square-fill::before{content:"\f121"}.bi-arrow-down-right-square::before{content:"\f122"}.bi-arrow-down-right::before{content:"\f123"}.bi-arrow-down-short::before{content:"\f124"}.bi-arrow-down-square-fill::before{content:"\f125"}.bi-arrow-down-square::before{content:"\f126"}.bi-arrow-down-up::before{content:"\f127"}.bi-arrow-down::before{content:"\f128"}.bi-arrow-left-circle-fill::before{content:"\f129"}.bi-arrow-left-circle::before{content:"\f12a"}.bi-arrow-left-right::before{content:"\f12b"}.bi-arrow-left-short::before{content:"\f12c"}.bi-arrow-left-square-fill::before{content:"\f12d"}.bi-arrow-left-square::before{content:"\f12e"}.bi-arrow-left::before{content:"\f12f"}.bi-arrow-repeat::before{content:"\f130"}.bi-arrow-return-left::before{content:"\f131"}.bi-arrow-return-right::before{content:"\f132"}.bi-arrow-right-circle-fill::before{content:"\f133"}.bi-arrow-right-circle::before{content:"\f134"}.bi-arrow-right-short::before{content:"\f135"}.bi-arrow-right-square-fill::before{content:"\f136"}.bi-arrow-right-square::before{content:"\f137"}.bi-arrow-right::before{content:"\f138"}.bi-arrow-up-circle-fill::before{content:"\f139"}.bi-arrow-up-circle::before{content:"\f13a"}.bi-arrow-up-left-circle-fill::before{content:"\f13b"}.bi-arrow-up-left-circle::before{content:"\f13c"}.bi-arrow-up-left-square-fill::before{content:"\f13d"}.bi-arrow-up-left-square::before{content:"\f13e"}.bi-arrow-up-left::before{content:"\f13f"}.bi-arrow-up-right-circle-fill::before{content:"\f140"}.bi-arrow-up-right-circle::before{content:"\f141"}.bi-arrow-up-right-square-fill::before{content:"\f142"}.bi-arrow-up-right-square::before{content:"\f143"}.bi-arrow-up-right::before{content:"\f144"}.bi-arrow-up-short::before{content:"\f145"}.bi-arrow-up-square-fill::before{content:"\f146"}.bi-arrow-up-square::before{content:"\f147"}.bi-arrow-up::before{content:"\f148"}.bi-arrows-angle-contract::before{content:"\f149"}.bi-arrows-angle-expand::before{content:"\f14a"}.bi-arrows-collapse::before{content:"\f14b"}.bi-arrows-expand::before{content:"\f14c"}.bi-arrows-fullscreen::before{content:"\f14d"}.bi-arrows-move::before{content:"\f14e"}.bi-aspect-ratio-fill::before{content:"\f14f"}.bi-aspect-ratio::before{content:"\f150"}.bi-asterisk::before{content:"\f151"}.bi-at::before{content:"\f152"}.bi-award-fill::before{content:"\f153"}.bi-award::before{content:"\f154"}.bi-back::before{content:"\f155"}.bi-backspace-fill::before{content:"\f156"}.bi-backspace-reverse-fill::before{content:"\f157"}.bi-backspace-reverse::before{content:"\f158"}.bi-backspace::before{content:"\f159"}.bi-badge-3d-fill::before{content:"\f15a"}.bi-badge-3d::before{content:"\f15b"}.bi-badge-4k-fill::before{content:"\f15c"}.bi-badge-4k::before{content:"\f15d"}.bi-badge-8k-fill::before{content:"\f15e"}.bi-badge-8k::before{content:"\f15f"}.bi-badge-ad-fill::before{content:"\f160"}.bi-badge-ad::before{content:"\f161"}.bi-badge-ar-fill::before{content:"\f162"}.bi-badge-ar::before{content:"\f163"}.bi-badge-cc-fill::before{content:"\f164"}.bi-badge-cc::before{content:"\f165"}.bi-badge-hd-fill::before{content:"\f166"}.bi-badge-hd::before{content:"\f167"}.bi-badge-tm-fill::before{content:"\f168"}.bi-badge-tm::before{content:"\f169"}.bi-badge-vo-fill::before{content:"\f16a"}.bi-badge-vo::before{content:"\f16b"}.bi-badge-vr-fill::before{content:"\f16c"}.bi-badge-vr::before{content:"\f16d"}.bi-badge-wc-fill::before{content:"\f16e"}.bi-badge-wc::before{content:"\f16f"}.bi-bag-check-fill::before{content:"\f170"}.bi-bag-check::before{content:"\f171"}.bi-bag-dash-fill::before{content:"\f172"}.bi-bag-dash::before{content:"\f173"}.bi-bag-fill::before{content:"\f174"}.bi-bag-plus-fill::before{content:"\f175"}.bi-bag-plus::before{content:"\f176"}.bi-bag-x-fill::before{content:"\f177"}.bi-bag-x::before{content:"\f178"}.bi-bag::before{content:"\f179"}.bi-bar-chart-fill::before{content:"\f17a"}.bi-bar-chart-line-fill::before{content:"\f17b"}.bi-bar-chart-line::before{content:"\f17c"}.bi-bar-chart-steps::before{content:"\f17d"}.bi-bar-chart::before{content:"\f17e"}.bi-basket-fill::before{content:"\f17f"}.bi-basket::before{content:"\f180"}.bi-basket2-fill::before{content:"\f181"}.bi-basket2::before{content:"\f182"}.bi-basket3-fill::before{content:"\f183"}.bi-basket3::before{content:"\f184"}.bi-battery-charging::before{content:"\f185"}.bi-battery-full::before{content:"\f186"}.bi-battery-half::before{content:"\f187"}.bi-battery::before{content:"\f188"}.bi-bell-fill::before{content:"\f189"}.bi-bell::before{content:"\f18a"}.bi-bezier::before{content:"\f18b"}.bi-bezier2::before{content:"\f18c"}.bi-bicycle::before{content:"\f18d"}.bi-binoculars-fill::before{content:"\f18e"}.bi-binoculars::before{content:"\f18f"}.bi-blockquote-left::before{content:"\f190"}.bi-blockquote-right::before{content:"\f191"}.bi-book-fill::before{content:"\f192"}.bi-book-half::before{content:"\f193"}.bi-book::before{content:"\f194"}.bi-bookmark-check-fill::before{content:"\f195"}.bi-bookmark-check::before{content:"\f196"}.bi-bookmark-dash-fill::before{content:"\f197"}.bi-bookmark-dash::before{content:"\f198"}.bi-bookmark-fill::before{content:"\f199"}.bi-bookmark-heart-fill::before{content:"\f19a"}.bi-bookmark-heart::before{content:"\f19b"}.bi-bookmark-plus-fill::before{content:"\f19c"}.bi-bookmark-plus::before{content:"\f19d"}.bi-bookmark-star-fill::before{content:"\f19e"}.bi-bookmark-star::before{content:"\f19f"}.bi-bookmark-x-fill::before{content:"\f1a0"}.bi-bookmark-x::before{content:"\f1a1"}.bi-bookmark::before{content:"\f1a2"}.bi-bookmarks-fill::before{content:"\f1a3"}.bi-bookmarks::before{content:"\f1a4"}.bi-bookshelf::before{content:"\f1a5"}.bi-bootstrap-fill::before{content:"\f1a6"}.bi-bootstrap-reboot::before{content:"\f1a7"}.bi-bootstrap::before{content:"\f1a8"}.bi-border-all::before{content:"\f1a9"}.bi-border-bottom::before{content:"\f1aa"}.bi-border-center::before{content:"\f1ab"}.bi-border-inner::before{content:"\f1ac"}.bi-border-left::before{content:"\f1ad"}.bi-border-middle::before{content:"\f1ae"}.bi-border-outer::before{content:"\f1af"}.bi-border-right::before{content:"\f1b0"}.bi-border-style::before{content:"\f1b1"}.bi-border-top::before{content:"\f1b2"}.bi-border-width::before{content:"\f1b3"}.bi-border::before{content:"\f1b4"}.bi-bounding-box-circles::before{content:"\f1b5"}.bi-bounding-box::before{content:"\f1b6"}.bi-box-arrow-down-left::before{content:"\f1b7"}.bi-box-arrow-down-right::before{content:"\f1b8"}.bi-box-arrow-down::before{content:"\f1b9"}.bi-box-arrow-in-down-left::before{content:"\f1ba"}.bi-box-arrow-in-down-right::before{content:"\f1bb"}.bi-box-arrow-in-down::before{content:"\f1bc"}.bi-box-arrow-in-left::before{content:"\f1bd"}.bi-box-arrow-in-right::before{content:"\f1be"}.bi-box-arrow-in-up-left::before{content:"\f1bf"}.bi-box-arrow-in-up-right::before{content:"\f1c0"}.bi-box-arrow-in-up::before{content:"\f1c1"}.bi-box-arrow-left::before{content:"\f1c2"}.bi-box-arrow-right::before{content:"\f1c3"}.bi-box-arrow-up-left::before{content:"\f1c4"}.bi-box-arrow-up-right::before{content:"\f1c5"}.bi-box-arrow-up::before{content:"\f1c6"}.bi-box-seam::before{content:"\f1c7"}.bi-box::before{content:"\f1c8"}.bi-braces::before{content:"\f1c9"}.bi-bricks::before{content:"\f1ca"}.bi-briefcase-fill::before{content:"\f1cb"}.bi-briefcase::before{content:"\f1cc"}.bi-brightness-alt-high-fill::before{content:"\f1cd"}.bi-brightness-alt-high::before{content:"\f1ce"}.bi-brightness-alt-low-fill::before{content:"\f1cf"}.bi-brightness-alt-low::before{content:"\f1d0"}.bi-brightness-high-fill::before{content:"\f1d1"}.bi-brightness-high::before{content:"\f1d2"}.bi-brightness-low-fill::before{content:"\f1d3"}.bi-brightness-low::before{content:"\f1d4"}.bi-broadcast-pin::before{content:"\f1d5"}.bi-broadcast::before{content:"\f1d6"}.bi-brush-fill::before{content:"\f1d7"}.bi-brush::before{content:"\f1d8"}.bi-bucket-fill::before{content:"\f1d9"}.bi-bucket::before{content:"\f1da"}.bi-bug-fill::before{content:"\f1db"}.bi-bug::before{content:"\f1dc"}.bi-building::before{content:"\f1dd"}.bi-bullseye::before{content:"\f1de"}.bi-calculator-fill::before{content:"\f1df"}.bi-calculator::before{content:"\f1e0"}.bi-calendar-check-fill::before{content:"\f1e1"}.bi-calendar-check::before{content:"\f1e2"}.bi-calendar-date-fill::before{content:"\f1e3"}.bi-calendar-date::before{content:"\f1e4"}.bi-calendar-day-fill::before{content:"\f1e5"}.bi-calendar-day::before{content:"\f1e6"}.bi-calendar-event-fill::before{content:"\f1e7"}.bi-calendar-event::before{content:"\f1e8"}.bi-calendar-fill::before{content:"\f1e9"}.bi-calendar-minus-fill::before{content:"\f1ea"}.bi-calendar-minus::before{content:"\f1eb"}.bi-calendar-month-fill::before{content:"\f1ec"}.bi-calendar-month::before{content:"\f1ed"}.bi-calendar-plus-fill::before{content:"\f1ee"}.bi-calendar-plus::before{content:"\f1ef"}.bi-calendar-range-fill::before{content:"\f1f0"}.bi-calendar-range::before{content:"\f1f1"}.bi-calendar-week-fill::before{content:"\f1f2"}.bi-calendar-week::before{content:"\f1f3"}.bi-calendar-x-fill::before{content:"\f1f4"}.bi-calendar-x::before{content:"\f1f5"}.bi-calendar::before{content:"\f1f6"}.bi-calendar2-check-fill::before{content:"\f1f7"}.bi-calendar2-check::before{content:"\f1f8"}.bi-calendar2-date-fill::before{content:"\f1f9"}.bi-calendar2-date::before{content:"\f1fa"}.bi-calendar2-day-fill::before{content:"\f1fb"}.bi-calendar2-day::before{content:"\f1fc"}.bi-calendar2-event-fill::before{content:"\f1fd"}.bi-calendar2-event::before{content:"\f1fe"}.bi-calendar2-fill::before{content:"\f1ff"}.bi-calendar2-minus-fill::before{content:"\f200"}.bi-calendar2-minus::before{content:"\f201"}.bi-calendar2-month-fill::before{content:"\f202"}.bi-calendar2-month::before{content:"\f203"}.bi-calendar2-plus-fill::before{content:"\f204"}.bi-calendar2-plus::before{content:"\f205"}.bi-calendar2-range-fill::before{content:"\f206"}.bi-calendar2-range::before{content:"\f207"}.bi-calendar2-week-fill::before{content:"\f208"}.bi-calendar2-week::before{content:"\f209"}.bi-calendar2-x-fill::before{content:"\f20a"}.bi-calendar2-x::before{content:"\f20b"}.bi-calendar2::before{content:"\f20c"}.bi-calendar3-event-fill::before{content:"\f20d"}.bi-calendar3-event::before{content:"\f20e"}.bi-calendar3-fill::before{content:"\f20f"}.bi-calendar3-range-fill::before{content:"\f210"}.bi-calendar3-range::before{content:"\f211"}.bi-calendar3-week-fill::before{content:"\f212"}.bi-calendar3-week::before{content:"\f213"}.bi-calendar3::before{content:"\f214"}.bi-calendar4-event::before{content:"\f215"}.bi-calendar4-range::before{content:"\f216"}.bi-calendar4-week::before{content:"\f217"}.bi-calendar4::before{content:"\f218"}.bi-camera-fill::before{content:"\f219"}.bi-camera-reels-fill::before{content:"\f21a"}.bi-camera-reels::before{content:"\f21b"}.bi-camera-video-fill::before{content:"\f21c"}.bi-camera-video-off-fill::before{content:"\f21d"}.bi-camera-video-off::before{content:"\f21e"}.bi-camera-video::before{content:"\f21f"}.bi-camera::before{content:"\f220"}.bi-camera2::before{content:"\f221"}.bi-capslock-fill::before{content:"\f222"}.bi-capslock::before{content:"\f223"}.bi-card-checklist::before{content:"\f224"}.bi-card-heading::before{content:"\f225"}.bi-card-image::before{content:"\f226"}.bi-card-list::before{content:"\f227"}.bi-card-text::before{content:"\f228"}.bi-caret-down-fill::before{content:"\f229"}.bi-caret-down-square-fill::before{content:"\f22a"}.bi-caret-down-square::before{content:"\f22b"}.bi-caret-down::before{content:"\f22c"}.bi-caret-left-fill::before{content:"\f22d"}.bi-caret-left-square-fill::before{content:"\f22e"}.bi-caret-left-square::before{content:"\f22f"}.bi-caret-left::before{content:"\f230"}.bi-caret-right-fill::before{content:"\f231"}.bi-caret-right-square-fill::before{content:"\f232"}.bi-caret-right-square::before{content:"\f233"}.bi-caret-right::before{content:"\f234"}.bi-caret-up-fill::before{content:"\f235"}.bi-caret-up-square-fill::before{content:"\f236"}.bi-caret-up-square::before{content:"\f237"}.bi-caret-up::before{content:"\f238"}.bi-cart-check-fill::before{content:"\f239"}.bi-cart-check::before{content:"\f23a"}.bi-cart-dash-fill::before{content:"\f23b"}.bi-cart-dash::before{content:"\f23c"}.bi-cart-fill::before{content:"\f23d"}.bi-cart-plus-fill::before{content:"\f23e"}.bi-cart-plus::before{content:"\f23f"}.bi-cart-x-fill::before{content:"\f240"}.bi-cart-x::before{content:"\f241"}.bi-cart::before{content:"\f242"}.bi-cart2::before{content:"\f243"}.bi-cart3::before{content:"\f244"}.bi-cart4::before{content:"\f245"}.bi-cash-stack::before{content:"\f246"}.bi-cash::before{content:"\f247"}.bi-cast::before{content:"\f248"}.bi-chat-dots-fill::before{content:"\f249"}.bi-chat-dots::before{content:"\f24a"}.bi-chat-fill::before{content:"\f24b"}.bi-chat-left-dots-fill::before{content:"\f24c"}.bi-chat-left-dots::before{content:"\f24d"}.bi-chat-left-fill::before{content:"\f24e"}.bi-chat-left-quote-fill::before{content:"\f24f"}.bi-chat-left-quote::before{content:"\f250"}.bi-chat-left-text-fill::before{content:"\f251"}.bi-chat-left-text::before{content:"\f252"}.bi-chat-left::before{content:"\f253"}.bi-chat-quote-fill::before{content:"\f254"}.bi-chat-quote::before{content:"\f255"}.bi-chat-right-dots-fill::before{content:"\f256"}.bi-chat-right-dots::before{content:"\f257"}.bi-chat-right-fill::before{content:"\f258"}.bi-chat-right-quote-fill::before{content:"\f259"}.bi-chat-right-quote::before{content:"\f25a"}.bi-chat-right-text-fill::before{content:"\f25b"}.bi-chat-right-text::before{content:"\f25c"}.bi-chat-right::before{content:"\f25d"}.bi-chat-square-dots-fill::before{content:"\f25e"}.bi-chat-square-dots::before{content:"\f25f"}.bi-chat-square-fill::before{content:"\f260"}.bi-chat-square-quote-fill::before{content:"\f261"}.bi-chat-square-quote::before{content:"\f262"}.bi-chat-square-text-fill::before{content:"\f263"}.bi-chat-square-text::before{content:"\f264"}.bi-chat-square::before{content:"\f265"}.bi-chat-text-fill::before{content:"\f266"}.bi-chat-text::before{content:"\f267"}.bi-chat::before{content:"\f268"}.bi-check-all::before{content:"\f269"}.bi-check-circle-fill::before{content:"\f26a"}.bi-check-circle::before{content:"\f26b"}.bi-check-square-fill::before{content:"\f26c"}.bi-check-square::before{content:"\f26d"}.bi-check::before{content:"\f26e"}.bi-check2-all::before{content:"\f26f"}.bi-check2-circle::before{content:"\f270"}.bi-check2-square::before{content:"\f271"}.bi-check2::before{content:"\f272"}.bi-chevron-bar-contract::before{content:"\f273"}.bi-chevron-bar-down::before{content:"\f274"}.bi-chevron-bar-expand::before{content:"\f275"}.bi-chevron-bar-left::before{content:"\f276"}.bi-chevron-bar-right::before{content:"\f277"}.bi-chevron-bar-up::before{content:"\f278"}.bi-chevron-compact-down::before{content:"\f279"}.bi-chevron-compact-left::before{content:"\f27a"}.bi-chevron-compact-right::before{content:"\f27b"}.bi-chevron-compact-up::before{content:"\f27c"}.bi-chevron-contract::before{content:"\f27d"}.bi-chevron-double-down::before{content:"\f27e"}.bi-chevron-double-left::before{content:"\f27f"}.bi-chevron-double-right::before{content:"\f280"}.bi-chevron-double-up::before{content:"\f281"}.bi-chevron-down::before{content:"\f282"}.bi-chevron-expand::before{content:"\f283"}.bi-chevron-left::before{content:"\f284"}.bi-chevron-right::before{content:"\f285"}.bi-chevron-up::before{content:"\f286"}.bi-circle-fill::before{content:"\f287"}.bi-circle-half::before{content:"\f288"}.bi-circle-square::before{content:"\f289"}.bi-circle::before{content:"\f28a"}.bi-clipboard-check::before{content:"\f28b"}.bi-clipboard-data::before{content:"\f28c"}.bi-clipboard-minus::before{content:"\f28d"}.bi-clipboard-plus::before{content:"\f28e"}.bi-clipboard-x::before{content:"\f28f"}.bi-clipboard::before{content:"\f290"}.bi-clock-fill::before{content:"\f291"}.bi-clock-history::before{content:"\f292"}.bi-clock::before{content:"\f293"}.bi-cloud-arrow-down-fill::before{content:"\f294"}.bi-cloud-arrow-down::before{content:"\f295"}.bi-cloud-arrow-up-fill::before{content:"\f296"}.bi-cloud-arrow-up::before{content:"\f297"}.bi-cloud-check-fill::before{content:"\f298"}.bi-cloud-check::before{content:"\f299"}.bi-cloud-download-fill::before{content:"\f29a"}.bi-cloud-download::before{content:"\f29b"}.bi-cloud-drizzle-fill::before{content:"\f29c"}.bi-cloud-drizzle::before{content:"\f29d"}.bi-cloud-fill::before{content:"\f29e"}.bi-cloud-fog-fill::before{content:"\f29f"}.bi-cloud-fog::before{content:"\f2a0"}.bi-cloud-fog2-fill::before{content:"\f2a1"}.bi-cloud-fog2::before{content:"\f2a2"}.bi-cloud-hail-fill::before{content:"\f2a3"}.bi-cloud-hail::before{content:"\f2a4"}.bi-cloud-haze-fill::before{content:"\f2a6"}.bi-cloud-haze::before{content:"\f2a7"}.bi-cloud-haze2-fill::before{content:"\f2a8"}.bi-cloud-lightning-fill::before{content:"\f2a9"}.bi-cloud-lightning-rain-fill::before{content:"\f2aa"}.bi-cloud-lightning-rain::before{content:"\f2ab"}.bi-cloud-lightning::before{content:"\f2ac"}.bi-cloud-minus-fill::before{content:"\f2ad"}.bi-cloud-minus::before{content:"\f2ae"}.bi-cloud-moon-fill::before{content:"\f2af"}.bi-cloud-moon::before{content:"\f2b0"}.bi-cloud-plus-fill::before{content:"\f2b1"}.bi-cloud-plus::before{content:"\f2b2"}.bi-cloud-rain-fill::before{content:"\f2b3"}.bi-cloud-rain-heavy-fill::before{content:"\f2b4"}.bi-cloud-rain-heavy::before{content:"\f2b5"}.bi-cloud-rain::before{content:"\f2b6"}.bi-cloud-slash-fill::before{content:"\f2b7"}.bi-cloud-slash::before{content:"\f2b8"}.bi-cloud-sleet-fill::before{content:"\f2b9"}.bi-cloud-sleet::before{content:"\f2ba"}.bi-cloud-snow-fill::before{content:"\f2bb"}.bi-cloud-snow::before{content:"\f2bc"}.bi-cloud-sun-fill::before{content:"\f2bd"}.bi-cloud-sun::before{content:"\f2be"}.bi-cloud-upload-fill::before{content:"\f2bf"}.bi-cloud-upload::before{content:"\f2c0"}.bi-cloud::before{content:"\f2c1"}.bi-clouds-fill::before{content:"\f2c2"}.bi-clouds::before{content:"\f2c3"}.bi-cloudy-fill::before{content:"\f2c4"}.bi-cloudy::before{content:"\f2c5"}.bi-code-slash::before{content:"\f2c6"}.bi-code-square::before{content:"\f2c7"}.bi-code::before{content:"\f2c8"}.bi-collection-fill::before{content:"\f2c9"}.bi-collection-play-fill::before{content:"\f2ca"}.bi-collection-play::before{content:"\f2cb"}.bi-collection::before{content:"\f2cc"}.bi-columns-gap::before{content:"\f2cd"}.bi-columns::before{content:"\f2ce"}.bi-command::before{content:"\f2cf"}.bi-compass-fill::before{content:"\f2d0"}.bi-compass::before{content:"\f2d1"}.bi-cone-striped::before{content:"\f2d2"}.bi-cone::before{content:"\f2d3"}.bi-controller::before{content:"\f2d4"}.bi-cpu-fill::before{content:"\f2d5"}.bi-cpu::before{content:"\f2d6"}.bi-credit-card-2-back-fill::before{content:"\f2d7"}.bi-credit-card-2-back::before{content:"\f2d8"}.bi-credit-card-2-front-fill::before{content:"\f2d9"}.bi-credit-card-2-front::before{content:"\f2da"}.bi-credit-card-fill::before{content:"\f2db"}.bi-credit-card::before{content:"\f2dc"}.bi-crop::before{content:"\f2dd"}.bi-cup-fill::before{content:"\f2de"}.bi-cup-straw::before{content:"\f2df"}.bi-cup::before{content:"\f2e0"}.bi-cursor-fill::before{content:"\f2e1"}.bi-cursor-text::before{content:"\f2e2"}.bi-cursor::before{content:"\f2e3"}.bi-dash-circle-dotted::before{content:"\f2e4"}.bi-dash-circle-fill::before{content:"\f2e5"}.bi-dash-circle::before{content:"\f2e6"}.bi-dash-square-dotted::before{content:"\f2e7"}.bi-dash-square-fill::before{content:"\f2e8"}.bi-dash-square::before{content:"\f2e9"}.bi-dash::before{content:"\f2ea"}.bi-diagram-2-fill::before{content:"\f2eb"}.bi-diagram-2::before{content:"\f2ec"}.bi-diagram-3-fill::before{content:"\f2ed"}.bi-diagram-3::before{content:"\f2ee"}.bi-diamond-fill::before{content:"\f2ef"}.bi-diamond-half::before{content:"\f2f0"}.bi-diamond::before{content:"\f2f1"}.bi-dice-1-fill::before{content:"\f2f2"}.bi-dice-1::before{content:"\f2f3"}.bi-dice-2-fill::before{content:"\f2f4"}.bi-dice-2::before{content:"\f2f5"}.bi-dice-3-fill::before{content:"\f2f6"}.bi-dice-3::before{content:"\f2f7"}.bi-dice-4-fill::before{content:"\f2f8"}.bi-dice-4::before{content:"\f2f9"}.bi-dice-5-fill::before{content:"\f2fa"}.bi-dice-5::before{content:"\f2fb"}.bi-dice-6-fill::before{content:"\f2fc"}.bi-dice-6::before{content:"\f2fd"}.bi-disc-fill::before{content:"\f2fe"}.bi-disc::before{content:"\f2ff"}.bi-discord::before{content:"\f300"}.bi-display-fill::before{content:"\f301"}.bi-display::before{content:"\f302"}.bi-distribute-horizontal::before{content:"\f303"}.bi-distribute-vertical::before{content:"\f304"}.bi-door-closed-fill::before{content:"\f305"}.bi-door-closed::before{content:"\f306"}.bi-door-open-fill::before{content:"\f307"}.bi-door-open::before{content:"\f308"}.bi-dot::before{content:"\f309"}.bi-download::before{content:"\f30a"}.bi-droplet-fill::before{content:"\f30b"}.bi-droplet-half::before{content:"\f30c"}.bi-droplet::before{content:"\f30d"}.bi-earbuds::before{content:"\f30e"}.bi-easel-fill::before{content:"\f30f"}.bi-easel::before{content:"\f310"}.bi-egg-fill::before{content:"\f311"}.bi-egg-fried::before{content:"\f312"}.bi-egg::before{content:"\f313"}.bi-eject-fill::before{content:"\f314"}.bi-eject::before{content:"\f315"}.bi-emoji-angry-fill::before{content:"\f316"}.bi-emoji-angry::before{content:"\f317"}.bi-emoji-dizzy-fill::before{content:"\f318"}.bi-emoji-dizzy::before{content:"\f319"}.bi-emoji-expressionless-fill::before{content:"\f31a"}.bi-emoji-expressionless::before{content:"\f31b"}.bi-emoji-frown-fill::before{content:"\f31c"}.bi-emoji-frown::before{content:"\f31d"}.bi-emoji-heart-eyes-fill::before{content:"\f31e"}.bi-emoji-heart-eyes::before{content:"\f31f"}.bi-emoji-laughing-fill::before{content:"\f320"}.bi-emoji-laughing::before{content:"\f321"}.bi-emoji-neutral-fill::before{content:"\f322"}.bi-emoji-neutral::before{content:"\f323"}.bi-emoji-smile-fill::before{content:"\f324"}.bi-emoji-smile-upside-down-fill::before{content:"\f325"}.bi-emoji-smile-upside-down::before{content:"\f326"}.bi-emoji-smile::before{content:"\f327"}.bi-emoji-sunglasses-fill::before{content:"\f328"}.bi-emoji-sunglasses::before{content:"\f329"}.bi-emoji-wink-fill::before{content:"\f32a"}.bi-emoji-wink::before{content:"\f32b"}.bi-envelope-fill::before{content:"\f32c"}.bi-envelope-open-fill::before{content:"\f32d"}.bi-envelope-open::before{content:"\f32e"}.bi-envelope::before{content:"\f32f"}.bi-eraser-fill::before{content:"\f330"}.bi-eraser::before{content:"\f331"}.bi-exclamation-circle-fill::before{content:"\f332"}.bi-exclamation-circle::before{content:"\f333"}.bi-exclamation-diamond-fill::before{content:"\f334"}.bi-exclamation-diamond::before{content:"\f335"}.bi-exclamation-octagon-fill::before{content:"\f336"}.bi-exclamation-octagon::before{content:"\f337"}.bi-exclamation-square-fill::before{content:"\f338"}.bi-exclamation-square::before{content:"\f339"}.bi-exclamation-triangle-fill::before{content:"\f33a"}.bi-exclamation-triangle::before{content:"\f33b"}.bi-exclamation::before{content:"\f33c"}.bi-exclude::before{content:"\f33d"}.bi-eye-fill::before{content:"\f33e"}.bi-eye-slash-fill::before{content:"\f33f"}.bi-eye-slash::before{content:"\f340"}.bi-eye::before{content:"\f341"}.bi-eyedropper::before{content:"\f342"}.bi-eyeglasses::before{content:"\f343"}.bi-facebook::before{content:"\f344"}.bi-file-arrow-down-fill::before{content:"\f345"}.bi-file-arrow-down::before{content:"\f346"}.bi-file-arrow-up-fill::before{content:"\f347"}.bi-file-arrow-up::before{content:"\f348"}.bi-file-bar-graph-fill::before{content:"\f349"}.bi-file-bar-graph::before{content:"\f34a"}.bi-file-binary-fill::before{content:"\f34b"}.bi-file-binary::before{content:"\f34c"}.bi-file-break-fill::before{content:"\f34d"}.bi-file-break::before{content:"\f34e"}.bi-file-check-fill::before{content:"\f34f"}.bi-file-check::before{content:"\f350"}.bi-file-code-fill::before{content:"\f351"}.bi-file-code::before{content:"\f352"}.bi-file-diff-fill::before{content:"\f353"}.bi-file-diff::before{content:"\f354"}.bi-file-earmark-arrow-down-fill::before{content:"\f355"}.bi-file-earmark-arrow-down::before{content:"\f356"}.bi-file-earmark-arrow-up-fill::before{content:"\f357"}.bi-file-earmark-arrow-up::before{content:"\f358"}.bi-file-earmark-bar-graph-fill::before{content:"\f359"}.bi-file-earmark-bar-graph::before{content:"\f35a"}.bi-file-earmark-binary-fill::before{content:"\f35b"}.bi-file-earmark-binary::before{content:"\f35c"}.bi-file-earmark-break-fill::before{content:"\f35d"}.bi-file-earmark-break::before{content:"\f35e"}.bi-file-earmark-check-fill::before{content:"\f35f"}.bi-file-earmark-check::before{content:"\f360"}.bi-file-earmark-code-fill::before{content:"\f361"}.bi-file-earmark-code::before{content:"\f362"}.bi-file-earmark-diff-fill::before{content:"\f363"}.bi-file-earmark-diff::before{content:"\f364"}.bi-file-earmark-easel-fill::before{content:"\f365"}.bi-file-earmark-easel::before{content:"\f366"}.bi-file-earmark-excel-fill::before{content:"\f367"}.bi-file-earmark-excel::before{content:"\f368"}.bi-file-earmark-fill::before{content:"\f369"}.bi-file-earmark-font-fill::before{content:"\f36a"}.bi-file-earmark-font::before{content:"\f36b"}.bi-file-earmark-image-fill::before{content:"\f36c"}.bi-file-earmark-image::before{content:"\f36d"}.bi-file-earmark-lock-fill::before{content:"\f36e"}.bi-file-earmark-lock::before{content:"\f36f"}.bi-file-earmark-lock2-fill::before{content:"\f370"}.bi-file-earmark-lock2::before{content:"\f371"}.bi-file-earmark-medical-fill::before{content:"\f372"}.bi-file-earmark-medical::before{content:"\f373"}.bi-file-earmark-minus-fill::before{content:"\f374"}.bi-file-earmark-minus::before{content:"\f375"}.bi-file-earmark-music-fill::before{content:"\f376"}.bi-file-earmark-music::before{content:"\f377"}.bi-file-earmark-person-fill::before{content:"\f378"}.bi-file-earmark-person::before{content:"\f379"}.bi-file-earmark-play-fill::before{content:"\f37a"}.bi-file-earmark-play::before{content:"\f37b"}.bi-file-earmark-plus-fill::before{content:"\f37c"}.bi-file-earmark-plus::before{content:"\f37d"}.bi-file-earmark-post-fill::before{content:"\f37e"}.bi-file-earmark-post::before{content:"\f37f"}.bi-file-earmark-ppt-fill::before{content:"\f380"}.bi-file-earmark-ppt::before{content:"\f381"}.bi-file-earmark-richtext-fill::before{content:"\f382"}.bi-file-earmark-richtext::before{content:"\f383"}.bi-file-earmark-ruled-fill::before{content:"\f384"}.bi-file-earmark-ruled::before{content:"\f385"}.bi-file-earmark-slides-fill::before{content:"\f386"}.bi-file-earmark-slides::before{content:"\f387"}.bi-file-earmark-spreadsheet-fill::before{content:"\f388"}.bi-file-earmark-spreadsheet::before{content:"\f389"}.bi-file-earmark-text-fill::before{content:"\f38a"}.bi-file-earmark-text::before{content:"\f38b"}.bi-file-earmark-word-fill::before{content:"\f38c"}.bi-file-earmark-word::before{content:"\f38d"}.bi-file-earmark-x-fill::before{content:"\f38e"}.bi-file-earmark-x::before{content:"\f38f"}.bi-file-earmark-zip-fill::before{content:"\f390"}.bi-file-earmark-zip::before{content:"\f391"}.bi-file-earmark::before{content:"\f392"}.bi-file-easel-fill::before{content:"\f393"}.bi-file-easel::before{content:"\f394"}.bi-file-excel-fill::before{content:"\f395"}.bi-file-excel::before{content:"\f396"}.bi-file-fill::before{content:"\f397"}.bi-file-font-fill::before{content:"\f398"}.bi-file-font::before{content:"\f399"}.bi-file-image-fill::before{content:"\f39a"}.bi-file-image::before{content:"\f39b"}.bi-file-lock-fill::before{content:"\f39c"}.bi-file-lock::before{content:"\f39d"}.bi-file-lock2-fill::before{content:"\f39e"}.bi-file-lock2::before{content:"\f39f"}.bi-file-medical-fill::before{content:"\f3a0"}.bi-file-medical::before{content:"\f3a1"}.bi-file-minus-fill::before{content:"\f3a2"}.bi-file-minus::before{content:"\f3a3"}.bi-file-music-fill::before{content:"\f3a4"}.bi-file-music::before{content:"\f3a5"}.bi-file-person-fill::before{content:"\f3a6"}.bi-file-person::before{content:"\f3a7"}.bi-file-play-fill::before{content:"\f3a8"}.bi-file-play::before{content:"\f3a9"}.bi-file-plus-fill::before{content:"\f3aa"}.bi-file-plus::before{content:"\f3ab"}.bi-file-post-fill::before{content:"\f3ac"}.bi-file-post::before{content:"\f3ad"}.bi-file-ppt-fill::before{content:"\f3ae"}.bi-file-ppt::before{content:"\f3af"}.bi-file-richtext-fill::before{content:"\f3b0"}.bi-file-richtext::before{content:"\f3b1"}.bi-file-ruled-fill::before{content:"\f3b2"}.bi-file-ruled::before{content:"\f3b3"}.bi-file-slides-fill::before{content:"\f3b4"}.bi-file-slides::before{content:"\f3b5"}.bi-file-spreadsheet-fill::before{content:"\f3b6"}.bi-file-spreadsheet::before{content:"\f3b7"}.bi-file-text-fill::before{content:"\f3b8"}.bi-file-text::before{content:"\f3b9"}.bi-file-word-fill::before{content:"\f3ba"}.bi-file-word::before{content:"\f3bb"}.bi-file-x-fill::before{content:"\f3bc"}.bi-file-x::before{content:"\f3bd"}.bi-file-zip-fill::before{content:"\f3be"}.bi-file-zip::before{content:"\f3bf"}.bi-file::before{content:"\f3c0"}.bi-files-alt::before{content:"\f3c1"}.bi-files::before{content:"\f3c2"}.bi-film::before{content:"\f3c3"}.bi-filter-circle-fill::before{content:"\f3c4"}.bi-filter-circle::before{content:"\f3c5"}.bi-filter-left::before{content:"\f3c6"}.bi-filter-right::before{content:"\f3c7"}.bi-filter-square-fill::before{content:"\f3c8"}.bi-filter-square::before{content:"\f3c9"}.bi-filter::before{content:"\f3ca"}.bi-flag-fill::before{content:"\f3cb"}.bi-flag::before{content:"\f3cc"}.bi-flower1::before{content:"\f3cd"}.bi-flower2::before{content:"\f3ce"}.bi-flower3::before{content:"\f3cf"}.bi-folder-check::before{content:"\f3d0"}.bi-folder-fill::before{content:"\f3d1"}.bi-folder-minus::before{content:"\f3d2"}.bi-folder-plus::before{content:"\f3d3"}.bi-folder-symlink-fill::before{content:"\f3d4"}.bi-folder-symlink::before{content:"\f3d5"}.bi-folder-x::before{content:"\f3d6"}.bi-folder::before{content:"\f3d7"}.bi-folder2-open::before{content:"\f3d8"}.bi-folder2::before{content:"\f3d9"}.bi-fonts::before{content:"\f3da"}.bi-forward-fill::before{content:"\f3db"}.bi-forward::before{content:"\f3dc"}.bi-front::before{content:"\f3dd"}.bi-fullscreen-exit::before{content:"\f3de"}.bi-fullscreen::before{content:"\f3df"}.bi-funnel-fill::before{content:"\f3e0"}.bi-funnel::before{content:"\f3e1"}.bi-gear-fill::before{content:"\f3e2"}.bi-gear-wide-connected::before{content:"\f3e3"}.bi-gear-wide::before{content:"\f3e4"}.bi-gear::before{content:"\f3e5"}.bi-gem::before{content:"\f3e6"}.bi-geo-alt-fill::before{content:"\f3e7"}.bi-geo-alt::before{content:"\f3e8"}.bi-geo-fill::before{content:"\f3e9"}.bi-geo::before{content:"\f3ea"}.bi-gift-fill::before{content:"\f3eb"}.bi-gift::before{content:"\f3ec"}.bi-github::before{content:"\f3ed"}.bi-globe::before{content:"\f3ee"}.bi-globe2::before{content:"\f3ef"}.bi-google::before{content:"\f3f0"}.bi-graph-down::before{content:"\f3f1"}.bi-graph-up::before{content:"\f3f2"}.bi-grid-1x2-fill::before{content:"\f3f3"}.bi-grid-1x2::before{content:"\f3f4"}.bi-grid-3x2-gap-fill::before{content:"\f3f5"}.bi-grid-3x2-gap::before{content:"\f3f6"}.bi-grid-3x2::before{content:"\f3f7"}.bi-grid-3x3-gap-fill::before{content:"\f3f8"}.bi-grid-3x3-gap::before{content:"\f3f9"}.bi-grid-3x3::before{content:"\f3fa"}.bi-grid-fill::before{content:"\f3fb"}.bi-grid::before{content:"\f3fc"}.bi-grip-horizontal::before{content:"\f3fd"}.bi-grip-vertical::before{content:"\f3fe"}.bi-hammer::before{content:"\f3ff"}.bi-hand-index-fill::before{content:"\f400"}.bi-hand-index-thumb-fill::before{content:"\f401"}.bi-hand-index-thumb::before{content:"\f402"}.bi-hand-index::before{content:"\f403"}.bi-hand-thumbs-down-fill::before{content:"\f404"}.bi-hand-thumbs-down::before{content:"\f405"}.bi-hand-thumbs-up-fill::before{content:"\f406"}.bi-hand-thumbs-up::before{content:"\f407"}.bi-handbag-fill::before{content:"\f408"}.bi-handbag::before{content:"\f409"}.bi-hash::before{content:"\f40a"}.bi-hdd-fill::before{content:"\f40b"}.bi-hdd-network-fill::before{content:"\f40c"}.bi-hdd-network::before{content:"\f40d"}.bi-hdd-rack-fill::before{content:"\f40e"}.bi-hdd-rack::before{content:"\f40f"}.bi-hdd-stack-fill::before{content:"\f410"}.bi-hdd-stack::before{content:"\f411"}.bi-hdd::before{content:"\f412"}.bi-headphones::before{content:"\f413"}.bi-headset::before{content:"\f414"}.bi-heart-fill::before{content:"\f415"}.bi-heart-half::before{content:"\f416"}.bi-heart::before{content:"\f417"}.bi-heptagon-fill::before{content:"\f418"}.bi-heptagon-half::before{content:"\f419"}.bi-heptagon::before{content:"\f41a"}.bi-hexagon-fill::before{content:"\f41b"}.bi-hexagon-half::before{content:"\f41c"}.bi-hexagon::before{content:"\f41d"}.bi-hourglass-bottom::before{content:"\f41e"}.bi-hourglass-split::before{content:"\f41f"}.bi-hourglass-top::before{content:"\f420"}.bi-hourglass::before{content:"\f421"}.bi-house-door-fill::before{content:"\f422"}.bi-house-door::before{content:"\f423"}.bi-house-fill::before{content:"\f424"}.bi-house::before{content:"\f425"}.bi-hr::before{content:"\f426"}.bi-hurricane::before{content:"\f427"}.bi-image-alt::before{content:"\f428"}.bi-image-fill::before{content:"\f429"}.bi-image::before{content:"\f42a"}.bi-images::before{content:"\f42b"}.bi-inbox-fill::before{content:"\f42c"}.bi-inbox::before{content:"\f42d"}.bi-inboxes-fill::before{content:"\f42e"}.bi-inboxes::before{content:"\f42f"}.bi-info-circle-fill::before{content:"\f430"}.bi-info-circle::before{content:"\f431"}.bi-info-square-fill::before{content:"\f432"}.bi-info-square::before{content:"\f433"}.bi-info::before{content:"\f434"}.bi-input-cursor-text::before{content:"\f435"}.bi-input-cursor::before{content:"\f436"}.bi-instagram::before{content:"\f437"}.bi-intersect::before{content:"\f438"}.bi-journal-album::before{content:"\f439"}.bi-journal-arrow-down::before{content:"\f43a"}.bi-journal-arrow-up::before{content:"\f43b"}.bi-journal-bookmark-fill::before{content:"\f43c"}.bi-journal-bookmark::before{content:"\f43d"}.bi-journal-check::before{content:"\f43e"}.bi-journal-code::before{content:"\f43f"}.bi-journal-medical::before{content:"\f440"}.bi-journal-minus::before{content:"\f441"}.bi-journal-plus::before{content:"\f442"}.bi-journal-richtext::before{content:"\f443"}.bi-journal-text::before{content:"\f444"}.bi-journal-x::before{content:"\f445"}.bi-journal::before{content:"\f446"}.bi-journals::before{content:"\f447"}.bi-joystick::before{content:"\f448"}.bi-justify-left::before{content:"\f449"}.bi-justify-right::before{content:"\f44a"}.bi-justify::before{content:"\f44b"}.bi-kanban-fill::before{content:"\f44c"}.bi-kanban::before{content:"\f44d"}.bi-key-fill::before{content:"\f44e"}.bi-key::before{content:"\f44f"}.bi-keyboard-fill::before{content:"\f450"}.bi-keyboard::before{content:"\f451"}.bi-ladder::before{content:"\f452"}.bi-lamp-fill::before{content:"\f453"}.bi-lamp::before{content:"\f454"}.bi-laptop-fill::before{content:"\f455"}.bi-laptop::before{content:"\f456"}.bi-layer-backward::before{content:"\f457"}.bi-layer-forward::before{content:"\f458"}.bi-layers-fill::before{content:"\f459"}.bi-layers-half::before{content:"\f45a"}.bi-layers::before{content:"\f45b"}.bi-layout-sidebar-inset-reverse::before{content:"\f45c"}.bi-layout-sidebar-inset::before{content:"\f45d"}.bi-layout-sidebar-reverse::before{content:"\f45e"}.bi-layout-sidebar::before{content:"\f45f"}.bi-layout-split::before{content:"\f460"}.bi-layout-text-sidebar-reverse::before{content:"\f461"}.bi-layout-text-sidebar::before{content:"\f462"}.bi-layout-text-window-reverse::before{content:"\f463"}.bi-layout-text-window::before{content:"\f464"}.bi-layout-three-columns::before{content:"\f465"}.bi-layout-wtf::before{content:"\f466"}.bi-life-preserver::before{content:"\f467"}.bi-lightbulb-fill::before{content:"\f468"}.bi-lightbulb-off-fill::before{content:"\f469"}.bi-lightbulb-off::before{content:"\f46a"}.bi-lightbulb::before{content:"\f46b"}.bi-lightning-charge-fill::before{content:"\f46c"}.bi-lightning-charge::before{content:"\f46d"}.bi-lightning-fill::before{content:"\f46e"}.bi-lightning::before{content:"\f46f"}.bi-link-45deg::before{content:"\f470"}.bi-link::before{content:"\f471"}.bi-linkedin::before{content:"\f472"}.bi-list-check::before{content:"\f473"}.bi-list-nested::before{content:"\f474"}.bi-list-ol::before{content:"\f475"}.bi-list-stars::before{content:"\f476"}.bi-list-task::before{content:"\f477"}.bi-list-ul::before{content:"\f478"}.bi-list::before{content:"\f479"}.bi-lock-fill::before{content:"\f47a"}.bi-lock::before{content:"\f47b"}.bi-mailbox::before{content:"\f47c"}.bi-mailbox2::before{content:"\f47d"}.bi-map-fill::before{content:"\f47e"}.bi-map::before{content:"\f47f"}.bi-markdown-fill::before{content:"\f480"}.bi-markdown::before{content:"\f481"}.bi-mask::before{content:"\f482"}.bi-megaphone-fill::before{content:"\f483"}.bi-megaphone::before{content:"\f484"}.bi-menu-app-fill::before{content:"\f485"}.bi-menu-app::before{content:"\f486"}.bi-menu-button-fill::before{content:"\f487"}.bi-menu-button-wide-fill::before{content:"\f488"}.bi-menu-button-wide::before{content:"\f489"}.bi-menu-button::before{content:"\f48a"}.bi-menu-down::before{content:"\f48b"}.bi-menu-up::before{content:"\f48c"}.bi-mic-fill::before{content:"\f48d"}.bi-mic-mute-fill::before{content:"\f48e"}.bi-mic-mute::before{content:"\f48f"}.bi-mic::before{content:"\f490"}.bi-minecart-loaded::before{content:"\f491"}.bi-minecart::before{content:"\f492"}.bi-moisture::before{content:"\f493"}.bi-moon-fill::before{content:"\f494"}.bi-moon-stars-fill::before{content:"\f495"}.bi-moon-stars::before{content:"\f496"}.bi-moon::before{content:"\f497"}.bi-mouse-fill::before{content:"\f498"}.bi-mouse::before{content:"\f499"}.bi-mouse2-fill::before{content:"\f49a"}.bi-mouse2::before{content:"\f49b"}.bi-mouse3-fill::before{content:"\f49c"}.bi-mouse3::before{content:"\f49d"}.bi-music-note-beamed::before{content:"\f49e"}.bi-music-note-list::before{content:"\f49f"}.bi-music-note::before{content:"\f4a0"}.bi-music-player-fill::before{content:"\f4a1"}.bi-music-player::before{content:"\f4a2"}.bi-newspaper::before{content:"\f4a3"}.bi-node-minus-fill::before{content:"\f4a4"}.bi-node-minus::before{content:"\f4a5"}.bi-node-plus-fill::before{content:"\f4a6"}.bi-node-plus::before{content:"\f4a7"}.bi-nut-fill::before{content:"\f4a8"}.bi-nut::before{content:"\f4a9"}.bi-octagon-fill::before{content:"\f4aa"}.bi-octagon-half::before{content:"\f4ab"}.bi-octagon::before{content:"\f4ac"}.bi-option::before{content:"\f4ad"}.bi-outlet::before{content:"\f4ae"}.bi-paint-bucket::before{content:"\f4af"}.bi-palette-fill::before{content:"\f4b0"}.bi-palette::before{content:"\f4b1"}.bi-palette2::before{content:"\f4b2"}.bi-paperclip::before{content:"\f4b3"}.bi-paragraph::before{content:"\f4b4"}.bi-patch-check-fill::before{content:"\f4b5"}.bi-patch-check::before{content:"\f4b6"}.bi-patch-exclamation-fill::before{content:"\f4b7"}.bi-patch-exclamation::before{content:"\f4b8"}.bi-patch-minus-fill::before{content:"\f4b9"}.bi-patch-minus::before{content:"\f4ba"}.bi-patch-plus-fill::before{content:"\f4bb"}.bi-patch-plus::before{content:"\f4bc"}.bi-patch-question-fill::before{content:"\f4bd"}.bi-patch-question::before{content:"\f4be"}.bi-pause-btn-fill::before{content:"\f4bf"}.bi-pause-btn::before{content:"\f4c0"}.bi-pause-circle-fill::before{content:"\f4c1"}.bi-pause-circle::before{content:"\f4c2"}.bi-pause-fill::before{content:"\f4c3"}.bi-pause::before{content:"\f4c4"}.bi-peace-fill::before{content:"\f4c5"}.bi-peace::before{content:"\f4c6"}.bi-pen-fill::before{content:"\f4c7"}.bi-pen::before{content:"\f4c8"}.bi-pencil-fill::before{content:"\f4c9"}.bi-pencil-square::before{content:"\f4ca"}.bi-pencil::before{content:"\f4cb"}.bi-pentagon-fill::before{content:"\f4cc"}.bi-pentagon-half::before{content:"\f4cd"}.bi-pentagon::before{content:"\f4ce"}.bi-people-fill::before{content:"\f4cf"}.bi-people::before{content:"\f4d0"}.bi-percent::before{content:"\f4d1"}.bi-person-badge-fill::before{content:"\f4d2"}.bi-person-badge::before{content:"\f4d3"}.bi-person-bounding-box::before{content:"\f4d4"}.bi-person-check-fill::before{content:"\f4d5"}.bi-person-check::before{content:"\f4d6"}.bi-person-circle::before{content:"\f4d7"}.bi-person-dash-fill::before{content:"\f4d8"}.bi-person-dash::before{content:"\f4d9"}.bi-person-fill::before{content:"\f4da"}.bi-person-lines-fill::before{content:"\f4db"}.bi-person-plus-fill::before{content:"\f4dc"}.bi-person-plus::before{content:"\f4dd"}.bi-person-square::before{content:"\f4de"}.bi-person-x-fill::before{content:"\f4df"}.bi-person-x::before{content:"\f4e0"}.bi-person::before{content:"\f4e1"}.bi-phone-fill::before{content:"\f4e2"}.bi-phone-landscape-fill::before{content:"\f4e3"}.bi-phone-landscape::before{content:"\f4e4"}.bi-phone-vibrate-fill::before{content:"\f4e5"}.bi-phone-vibrate::before{content:"\f4e6"}.bi-phone::before{content:"\f4e7"}.bi-pie-chart-fill::before{content:"\f4e8"}.bi-pie-chart::before{content:"\f4e9"}.bi-pin-angle-fill::before{content:"\f4ea"}.bi-pin-angle::before{content:"\f4eb"}.bi-pin-fill::before{content:"\f4ec"}.bi-pin::before{content:"\f4ed"}.bi-pip-fill::before{content:"\f4ee"}.bi-pip::before{content:"\f4ef"}.bi-play-btn-fill::before{content:"\f4f0"}.bi-play-btn::before{content:"\f4f1"}.bi-play-circle-fill::before{content:"\f4f2"}.bi-play-circle::before{content:"\f4f3"}.bi-play-fill::before{content:"\f4f4"}.bi-play::before{content:"\f4f5"}.bi-plug-fill::before{content:"\f4f6"}.bi-plug::before{content:"\f4f7"}.bi-plus-circle-dotted::before{content:"\f4f8"}.bi-plus-circle-fill::before{content:"\f4f9"}.bi-plus-circle::before{content:"\f4fa"}.bi-plus-square-dotted::before{content:"\f4fb"}.bi-plus-square-fill::before{content:"\f4fc"}.bi-plus-square::before{content:"\f4fd"}.bi-plus::before{content:"\f4fe"}.bi-power::before{content:"\f4ff"}.bi-printer-fill::before{content:"\f500"}.bi-printer::before{content:"\f501"}.bi-puzzle-fill::before{content:"\f502"}.bi-puzzle::before{content:"\f503"}.bi-question-circle-fill::before{content:"\f504"}.bi-question-circle::before{content:"\f505"}.bi-question-diamond-fill::before{content:"\f506"}.bi-question-diamond::before{content:"\f507"}.bi-question-octagon-fill::before{content:"\f508"}.bi-question-octagon::before{content:"\f509"}.bi-question-square-fill::before{content:"\f50a"}.bi-question-square::before{content:"\f50b"}.bi-question::before{content:"\f50c"}.bi-rainbow::before{content:"\f50d"}.bi-receipt-cutoff::before{content:"\f50e"}.bi-receipt::before{content:"\f50f"}.bi-reception-0::before{content:"\f510"}.bi-reception-1::before{content:"\f511"}.bi-reception-2::before{content:"\f512"}.bi-reception-3::before{content:"\f513"}.bi-reception-4::before{content:"\f514"}.bi-record-btn-fill::before{content:"\f515"}.bi-record-btn::before{content:"\f516"}.bi-record-circle-fill::before{content:"\f517"}.bi-record-circle::before{content:"\f518"}.bi-record-fill::before{content:"\f519"}.bi-record::before{content:"\f51a"}.bi-record2-fill::before{content:"\f51b"}.bi-record2::before{content:"\f51c"}.bi-reply-all-fill::before{content:"\f51d"}.bi-reply-all::before{content:"\f51e"}.bi-reply-fill::before{content:"\f51f"}.bi-reply::before{content:"\f520"}.bi-rss-fill::before{content:"\f521"}.bi-rss::before{content:"\f522"}.bi-rulers::before{content:"\f523"}.bi-save-fill::before{content:"\f524"}.bi-save::before{content:"\f525"}.bi-save2-fill::before{content:"\f526"}.bi-save2::before{content:"\f527"}.bi-scissors::before{content:"\f528"}.bi-screwdriver::before{content:"\f529"}.bi-search::before{content:"\f52a"}.bi-segmented-nav::before{content:"\f52b"}.bi-server::before{content:"\f52c"}.bi-share-fill::before{content:"\f52d"}.bi-share::before{content:"\f52e"}.bi-shield-check::before{content:"\f52f"}.bi-shield-exclamation::before{content:"\f530"}.bi-shield-fill-check::before{content:"\f531"}.bi-shield-fill-exclamation::before{content:"\f532"}.bi-shield-fill-minus::before{content:"\f533"}.bi-shield-fill-plus::before{content:"\f534"}.bi-shield-fill-x::before{content:"\f535"}.bi-shield-fill::before{content:"\f536"}.bi-shield-lock-fill::before{content:"\f537"}.bi-shield-lock::before{content:"\f538"}.bi-shield-minus::before{content:"\f539"}.bi-shield-plus::before{content:"\f53a"}.bi-shield-shaded::before{content:"\f53b"}.bi-shield-slash-fill::before{content:"\f53c"}.bi-shield-slash::before{content:"\f53d"}.bi-shield-x::before{content:"\f53e"}.bi-shield::before{content:"\f53f"}.bi-shift-fill::before{content:"\f540"}.bi-shift::before{content:"\f541"}.bi-shop-window::before{content:"\f542"}.bi-shop::before{content:"\f543"}.bi-shuffle::before{content:"\f544"}.bi-signpost-2-fill::before{content:"\f545"}.bi-signpost-2::before{content:"\f546"}.bi-signpost-fill::before{content:"\f547"}.bi-signpost-split-fill::before{content:"\f548"}.bi-signpost-split::before{content:"\f549"}.bi-signpost::before{content:"\f54a"}.bi-sim-fill::before{content:"\f54b"}.bi-sim::before{content:"\f54c"}.bi-skip-backward-btn-fill::before{content:"\f54d"}.bi-skip-backward-btn::before{content:"\f54e"}.bi-skip-backward-circle-fill::before{content:"\f54f"}.bi-skip-backward-circle::before{content:"\f550"}.bi-skip-backward-fill::before{content:"\f551"}.bi-skip-backward::before{content:"\f552"}.bi-skip-end-btn-fill::before{content:"\f553"}.bi-skip-end-btn::before{content:"\f554"}.bi-skip-end-circle-fill::before{content:"\f555"}.bi-skip-end-circle::before{content:"\f556"}.bi-skip-end-fill::before{content:"\f557"}.bi-skip-end::before{content:"\f558"}.bi-skip-forward-btn-fill::before{content:"\f559"}.bi-skip-forward-btn::before{content:"\f55a"}.bi-skip-forward-circle-fill::before{content:"\f55b"}.bi-skip-forward-circle::before{content:"\f55c"}.bi-skip-forward-fill::before{content:"\f55d"}.bi-skip-forward::before{content:"\f55e"}.bi-skip-start-btn-fill::before{content:"\f55f"}.bi-skip-start-btn::before{content:"\f560"}.bi-skip-start-circle-fill::before{content:"\f561"}.bi-skip-start-circle::before{content:"\f562"}.bi-skip-start-fill::before{content:"\f563"}.bi-skip-start::before{content:"\f564"}.bi-slack::before{content:"\f565"}.bi-slash-circle-fill::before{content:"\f566"}.bi-slash-circle::before{content:"\f567"}.bi-slash-square-fill::before{content:"\f568"}.bi-slash-square::before{content:"\f569"}.bi-slash::before{content:"\f56a"}.bi-sliders::before{content:"\f56b"}.bi-smartwatch::before{content:"\f56c"}.bi-snow::before{content:"\f56d"}.bi-snow2::before{content:"\f56e"}.bi-snow3::before{content:"\f56f"}.bi-sort-alpha-down-alt::before{content:"\f570"}.bi-sort-alpha-down::before{content:"\f571"}.bi-sort-alpha-up-alt::before{content:"\f572"}.bi-sort-alpha-up::before{content:"\f573"}.bi-sort-down-alt::before{content:"\f574"}.bi-sort-down::before{content:"\f575"}.bi-sort-numeric-down-alt::before{content:"\f576"}.bi-sort-numeric-down::before{content:"\f577"}.bi-sort-numeric-up-alt::before{content:"\f578"}.bi-sort-numeric-up::before{content:"\f579"}.bi-sort-up-alt::before{content:"\f57a"}.bi-sort-up::before{content:"\f57b"}.bi-soundwave::before{content:"\f57c"}.bi-speaker-fill::before{content:"\f57d"}.bi-speaker::before{content:"\f57e"}.bi-speedometer::before{content:"\f57f"}.bi-speedometer2::before{content:"\f580"}.bi-spellcheck::before{content:"\f581"}.bi-square-fill::before{content:"\f582"}.bi-square-half::before{content:"\f583"}.bi-square::before{content:"\f584"}.bi-stack::before{content:"\f585"}.bi-star-fill::before{content:"\f586"}.bi-star-half::before{content:"\f587"}.bi-star::before{content:"\f588"}.bi-stars::before{content:"\f589"}.bi-stickies-fill::before{content:"\f58a"}.bi-stickies::before{content:"\f58b"}.bi-sticky-fill::before{content:"\f58c"}.bi-sticky::before{content:"\f58d"}.bi-stop-btn-fill::before{content:"\f58e"}.bi-stop-btn::before{content:"\f58f"}.bi-stop-circle-fill::before{content:"\f590"}.bi-stop-circle::before{content:"\f591"}.bi-stop-fill::before{content:"\f592"}.bi-stop::before{content:"\f593"}.bi-stoplights-fill::before{content:"\f594"}.bi-stoplights::before{content:"\f595"}.bi-stopwatch-fill::before{content:"\f596"}.bi-stopwatch::before{content:"\f597"}.bi-subtract::before{content:"\f598"}.bi-suit-club-fill::before{content:"\f599"}.bi-suit-club::before{content:"\f59a"}.bi-suit-diamond-fill::before{content:"\f59b"}.bi-suit-diamond::before{content:"\f59c"}.bi-suit-heart-fill::before{content:"\f59d"}.bi-suit-heart::before{content:"\f59e"}.bi-suit-spade-fill::before{content:"\f59f"}.bi-suit-spade::before{content:"\f5a0"}.bi-sun-fill::before{content:"\f5a1"}.bi-sun::before{content:"\f5a2"}.bi-sunglasses::before{content:"\f5a3"}.bi-sunrise-fill::before{content:"\f5a4"}.bi-sunrise::before{content:"\f5a5"}.bi-sunset-fill::before{content:"\f5a6"}.bi-sunset::before{content:"\f5a7"}.bi-symmetry-horizontal::before{content:"\f5a8"}.bi-symmetry-vertical::before{content:"\f5a9"}.bi-table::before{content:"\f5aa"}.bi-tablet-fill::before{content:"\f5ab"}.bi-tablet-landscape-fill::before{content:"\f5ac"}.bi-tablet-landscape::before{content:"\f5ad"}.bi-tablet::before{content:"\f5ae"}.bi-tag-fill::before{content:"\f5af"}.bi-tag::before{content:"\f5b0"}.bi-tags-fill::before{content:"\f5b1"}.bi-tags::before{content:"\f5b2"}.bi-telegram::before{content:"\f5b3"}.bi-telephone-fill::before{content:"\f5b4"}.bi-telephone-forward-fill::before{content:"\f5b5"}.bi-telephone-forward::before{content:"\f5b6"}.bi-telephone-inbound-fill::before{content:"\f5b7"}.bi-telephone-inbound::before{content:"\f5b8"}.bi-telephone-minus-fill::before{content:"\f5b9"}.bi-telephone-minus::before{content:"\f5ba"}.bi-telephone-outbound-fill::before{content:"\f5bb"}.bi-telephone-outbound::before{content:"\f5bc"}.bi-telephone-plus-fill::before{content:"\f5bd"}.bi-telephone-plus::before{content:"\f5be"}.bi-telephone-x-fill::before{content:"\f5bf"}.bi-telephone-x::before{content:"\f5c0"}.bi-telephone::before{content:"\f5c1"}.bi-terminal-fill::before{content:"\f5c2"}.bi-terminal::before{content:"\f5c3"}.bi-text-center::before{content:"\f5c4"}.bi-text-indent-left::before{content:"\f5c5"}.bi-text-indent-right::before{content:"\f5c6"}.bi-text-left::before{content:"\f5c7"}.bi-text-paragraph::before{content:"\f5c8"}.bi-text-right::before{content:"\f5c9"}.bi-textarea-resize::before{content:"\f5ca"}.bi-textarea-t::before{content:"\f5cb"}.bi-textarea::before{content:"\f5cc"}.bi-thermometer-half::before{content:"\f5cd"}.bi-thermometer-high::before{content:"\f5ce"}.bi-thermometer-low::before{content:"\f5cf"}.bi-thermometer-snow::before{content:"\f5d0"}.bi-thermometer-sun::before{content:"\f5d1"}.bi-thermometer::before{content:"\f5d2"}.bi-three-dots-vertical::before{content:"\f5d3"}.bi-three-dots::before{content:"\f5d4"}.bi-toggle-off::before{content:"\f5d5"}.bi-toggle-on::before{content:"\f5d6"}.bi-toggle2-off::before{content:"\f5d7"}.bi-toggle2-on::before{content:"\f5d8"}.bi-toggles::before{content:"\f5d9"}.bi-toggles2::before{content:"\f5da"}.bi-tools::before{content:"\f5db"}.bi-tornado::before{content:"\f5dc"}.bi-trash-fill::before{content:"\f5dd"}.bi-trash::before{content:"\f5de"}.bi-trash2-fill::before{content:"\f5df"}.bi-trash2::before{content:"\f5e0"}.bi-tree-fill::before{content:"\f5e1"}.bi-tree::before{content:"\f5e2"}.bi-triangle-fill::before{content:"\f5e3"}.bi-triangle-half::before{content:"\f5e4"}.bi-triangle::before{content:"\f5e5"}.bi-trophy-fill::before{content:"\f5e6"}.bi-trophy::before{content:"\f5e7"}.bi-tropical-storm::before{content:"\f5e8"}.bi-truck-flatbed::before{content:"\f5e9"}.bi-truck::before{content:"\f5ea"}.bi-tsunami::before{content:"\f5eb"}.bi-tv-fill::before{content:"\f5ec"}.bi-tv::before{content:"\f5ed"}.bi-twitch::before{content:"\f5ee"}.bi-twitter::before{content:"\f5ef"}.bi-type-bold::before{content:"\f5f0"}.bi-type-h1::before{content:"\f5f1"}.bi-type-h2::before{content:"\f5f2"}.bi-type-h3::before{content:"\f5f3"}.bi-type-italic::before{content:"\f5f4"}.bi-type-strikethrough::before{content:"\f5f5"}.bi-type-underline::before{content:"\f5f6"}.bi-type::before{content:"\f5f7"}.bi-ui-checks-grid::before{content:"\f5f8"}.bi-ui-checks::before{content:"\f5f9"}.bi-ui-radios-grid::before{content:"\f5fa"}.bi-ui-radios::before{content:"\f5fb"}.bi-umbrella-fill::before{content:"\f5fc"}.bi-umbrella::before{content:"\f5fd"}.bi-union::before{content:"\f5fe"}.bi-unlock-fill::before{content:"\f5ff"}.bi-unlock::before{content:"\f600"}.bi-upc-scan::before{content:"\f601"}.bi-upc::before{content:"\f602"}.bi-upload::before{content:"\f603"}.bi-vector-pen::before{content:"\f604"}.bi-view-list::before{content:"\f605"}.bi-view-stacked::before{content:"\f606"}.bi-vinyl-fill::before{content:"\f607"}.bi-vinyl::before{content:"\f608"}.bi-voicemail::before{content:"\f609"}.bi-volume-down-fill::before{content:"\f60a"}.bi-volume-down::before{content:"\f60b"}.bi-volume-mute-fill::before{content:"\f60c"}.bi-volume-mute::before{content:"\f60d"}.bi-volume-off-fill::before{content:"\f60e"}.bi-volume-off::before{content:"\f60f"}.bi-volume-up-fill::before{content:"\f610"}.bi-volume-up::before{content:"\f611"}.bi-vr::before{content:"\f612"}.bi-wallet-fill::before{content:"\f613"}.bi-wallet::before{content:"\f614"}.bi-wallet2::before{content:"\f615"}.bi-watch::before{content:"\f616"}.bi-water::before{content:"\f617"}.bi-whatsapp::before{content:"\f618"}.bi-wifi-1::before{content:"\f619"}.bi-wifi-2::before{content:"\f61a"}.bi-wifi-off::before{content:"\f61b"}.bi-wifi::before{content:"\f61c"}.bi-wind::before{content:"\f61d"}.bi-window-dock::before{content:"\f61e"}.bi-window-sidebar::before{content:"\f61f"}.bi-window::before{content:"\f620"}.bi-wrench::before{content:"\f621"}.bi-x-circle-fill::before{content:"\f622"}.bi-x-circle::before{content:"\f623"}.bi-x-diamond-fill::before{content:"\f624"}.bi-x-diamond::before{content:"\f625"}.bi-x-octagon-fill::before{content:"\f626"}.bi-x-octagon::before{content:"\f627"}.bi-x-square-fill::before{content:"\f628"}.bi-x-square::before{content:"\f629"}.bi-x::before{content:"\f62a"}.bi-youtube::before{content:"\f62b"}.bi-zoom-in::before{content:"\f62c"}.bi-zoom-out::before{content:"\f62d"}.bi-bank::before{content:"\f62e"}.bi-bank2::before{content:"\f62f"}.bi-bell-slash-fill::before{content:"\f630"}.bi-bell-slash::before{content:"\f631"}.bi-cash-coin::before{content:"\f632"}.bi-check-lg::before{content:"\f633"}.bi-coin::before{content:"\f634"}.bi-currency-bitcoin::before{content:"\f635"}.bi-currency-dollar::before{content:"\f636"}.bi-currency-euro::before{content:"\f637"}.bi-currency-exchange::before{content:"\f638"}.bi-currency-pound::before{content:"\f639"}.bi-currency-yen::before{content:"\f63a"}.bi-dash-lg::before{content:"\f63b"}.bi-exclamation-lg::before{content:"\f63c"}.bi-file-earmark-pdf-fill::before{content:"\f63d"}.bi-file-earmark-pdf::before{content:"\f63e"}.bi-file-pdf-fill::before{content:"\f63f"}.bi-file-pdf::before{content:"\f640"}.bi-gender-ambiguous::before{content:"\f641"}.bi-gender-female::before{content:"\f642"}.bi-gender-male::before{content:"\f643"}.bi-gender-trans::before{content:"\f644"}.bi-headset-vr::before{content:"\f645"}.bi-info-lg::before{content:"\f646"}.bi-mastodon::before{content:"\f647"}.bi-messenger::before{content:"\f648"}.bi-piggy-bank-fill::before{content:"\f649"}.bi-piggy-bank::before{content:"\f64a"}.bi-pin-map-fill::before{content:"\f64b"}.bi-pin-map::before{content:"\f64c"}.bi-plus-lg::before{content:"\f64d"}.bi-question-lg::before{content:"\f64e"}.bi-recycle::before{content:"\f64f"}.bi-reddit::before{content:"\f650"}.bi-safe-fill::before{content:"\f651"}.bi-safe2-fill::before{content:"\f652"}.bi-safe2::before{content:"\f653"}.bi-sd-card-fill::before{content:"\f654"}.bi-sd-card::before{content:"\f655"}.bi-skype::before{content:"\f656"}.bi-slash-lg::before{content:"\f657"}.bi-translate::before{content:"\f658"}.bi-x-lg::before{content:"\f659"}.bi-safe::before{content:"\f65a"}.bi-apple::before{content:"\f65b"}.bi-microsoft::before{content:"\f65d"}.bi-windows::before{content:"\f65e"}.bi-behance::before{content:"\f65c"}.bi-dribbble::before{content:"\f65f"}.bi-line::before{content:"\f660"}.bi-medium::before{content:"\f661"}.bi-paypal::before{content:"\f662"}.bi-pinterest::before{content:"\f663"}.bi-signal::before{content:"\f664"}.bi-snapchat::before{content:"\f665"}.bi-spotify::before{content:"\f666"}.bi-stack-overflow::before{content:"\f667"}.bi-strava::before{content:"\f668"}.bi-wordpress::before{content:"\f669"}.bi-vimeo::before{content:"\f66a"}.bi-activity::before{content:"\f66b"}.bi-easel2-fill::before{content:"\f66c"}.bi-easel2::before{content:"\f66d"}.bi-easel3-fill::before{content:"\f66e"}.bi-easel3::before{content:"\f66f"}.bi-fan::before{content:"\f670"}.bi-fingerprint::before{content:"\f671"}.bi-graph-down-arrow::before{content:"\f672"}.bi-graph-up-arrow::before{content:"\f673"}.bi-hypnotize::before{content:"\f674"}.bi-magic::before{content:"\f675"}.bi-person-rolodex::before{content:"\f676"}.bi-person-video::before{content:"\f677"}.bi-person-video2::before{content:"\f678"}.bi-person-video3::before{content:"\f679"}.bi-person-workspace::before{content:"\f67a"}.bi-radioactive::before{content:"\f67b"}.bi-webcam-fill::before{content:"\f67c"}.bi-webcam::before{content:"\f67d"}.bi-yin-yang::before{content:"\f67e"}.bi-bandaid-fill::before{content:"\f680"}.bi-bandaid::before{content:"\f681"}.bi-bluetooth::before{content:"\f682"}.bi-body-text::before{content:"\f683"}.bi-boombox::before{content:"\f684"}.bi-boxes::before{content:"\f685"}.bi-dpad-fill::before{content:"\f686"}.bi-dpad::before{content:"\f687"}.bi-ear-fill::before{content:"\f688"}.bi-ear::before{content:"\f689"}.bi-envelope-check-fill::before{content:"\f68b"}.bi-envelope-check::before{content:"\f68c"}.bi-envelope-dash-fill::before{content:"\f68e"}.bi-envelope-dash::before{content:"\f68f"}.bi-envelope-exclamation-fill::before{content:"\f691"}.bi-envelope-exclamation::before{content:"\f692"}.bi-envelope-plus-fill::before{content:"\f693"}.bi-envelope-plus::before{content:"\f694"}.bi-envelope-slash-fill::before{content:"\f696"}.bi-envelope-slash::before{content:"\f697"}.bi-envelope-x-fill::before{content:"\f699"}.bi-envelope-x::before{content:"\f69a"}.bi-explicit-fill::before{content:"\f69b"}.bi-explicit::before{content:"\f69c"}.bi-git::before{content:"\f69d"}.bi-infinity::before{content:"\f69e"}.bi-list-columns-reverse::before{content:"\f69f"}.bi-list-columns::before{content:"\f6a0"}.bi-meta::before{content:"\f6a1"}.bi-nintendo-switch::before{content:"\f6a4"}.bi-pc-display-horizontal::before{content:"\f6a5"}.bi-pc-display::before{content:"\f6a6"}.bi-pc-horizontal::before{content:"\f6a7"}.bi-pc::before{content:"\f6a8"}.bi-playstation::before{content:"\f6a9"}.bi-plus-slash-minus::before{content:"\f6aa"}.bi-projector-fill::before{content:"\f6ab"}.bi-projector::before{content:"\f6ac"}.bi-qr-code-scan::before{content:"\f6ad"}.bi-qr-code::before{content:"\f6ae"}.bi-quora::before{content:"\f6af"}.bi-quote::before{content:"\f6b0"}.bi-robot::before{content:"\f6b1"}.bi-send-check-fill::before{content:"\f6b2"}.bi-send-check::before{content:"\f6b3"}.bi-send-dash-fill::before{content:"\f6b4"}.bi-send-dash::before{content:"\f6b5"}.bi-send-exclamation-fill::before{content:"\f6b7"}.bi-send-exclamation::before{content:"\f6b8"}.bi-send-fill::before{content:"\f6b9"}.bi-send-plus-fill::before{content:"\f6ba"}.bi-send-plus::before{content:"\f6bb"}.bi-send-slash-fill::before{content:"\f6bc"}.bi-send-slash::before{content:"\f6bd"}.bi-send-x-fill::before{content:"\f6be"}.bi-send-x::before{content:"\f6bf"}.bi-send::before{content:"\f6c0"}.bi-steam::before{content:"\f6c1"}.bi-terminal-dash::before{content:"\f6c3"}.bi-terminal-plus::before{content:"\f6c4"}.bi-terminal-split::before{content:"\f6c5"}.bi-ticket-detailed-fill::before{content:"\f6c6"}.bi-ticket-detailed::before{content:"\f6c7"}.bi-ticket-fill::before{content:"\f6c8"}.bi-ticket-perforated-fill::before{content:"\f6c9"}.bi-ticket-perforated::before{content:"\f6ca"}.bi-ticket::before{content:"\f6cb"}.bi-tiktok::before{content:"\f6cc"}.bi-window-dash::before{content:"\f6cd"}.bi-window-desktop::before{content:"\f6ce"}.bi-window-fullscreen::before{content:"\f6cf"}.bi-window-plus::before{content:"\f6d0"}.bi-window-split::before{content:"\f6d1"}.bi-window-stack::before{content:"\f6d2"}.bi-window-x::before{content:"\f6d3"}.bi-xbox::before{content:"\f6d4"}.bi-ethernet::before{content:"\f6d5"}.bi-hdmi-fill::before{content:"\f6d6"}.bi-hdmi::before{content:"\f6d7"}.bi-usb-c-fill::before{content:"\f6d8"}.bi-usb-c::before{content:"\f6d9"}.bi-usb-fill::before{content:"\f6da"}.bi-usb-plug-fill::before{content:"\f6db"}.bi-usb-plug::before{content:"\f6dc"}.bi-usb-symbol::before{content:"\f6dd"}.bi-usb::before{content:"\f6de"}.bi-boombox-fill::before{content:"\f6df"}.bi-displayport::before{content:"\f6e1"}.bi-gpu-card::before{content:"\f6e2"}.bi-memory::before{content:"\f6e3"}.bi-modem-fill::before{content:"\f6e4"}.bi-modem::before{content:"\f6e5"}.bi-motherboard-fill::before{content:"\f6e6"}.bi-motherboard::before{content:"\f6e7"}.bi-optical-audio-fill::before{content:"\f6e8"}.bi-optical-audio::before{content:"\f6e9"}.bi-pci-card::before{content:"\f6ea"}.bi-router-fill::before{content:"\f6eb"}.bi-router::before{content:"\f6ec"}.bi-thunderbolt-fill::before{content:"\f6ef"}.bi-thunderbolt::before{content:"\f6f0"}.bi-usb-drive-fill::before{content:"\f6f1"}.bi-usb-drive::before{content:"\f6f2"}.bi-usb-micro-fill::before{content:"\f6f3"}.bi-usb-micro::before{content:"\f6f4"}.bi-usb-mini-fill::before{content:"\f6f5"}.bi-usb-mini::before{content:"\f6f6"}.bi-cloud-haze2::before{content:"\f6f7"}.bi-device-hdd-fill::before{content:"\f6f8"}.bi-device-hdd::before{content:"\f6f9"}.bi-device-ssd-fill::before{content:"\f6fa"}.bi-device-ssd::before{content:"\f6fb"}.bi-displayport-fill::before{content:"\f6fc"}.bi-mortarboard-fill::before{content:"\f6fd"}.bi-mortarboard::before{content:"\f6fe"}.bi-terminal-x::before{content:"\f6ff"}.bi-arrow-through-heart-fill::before{content:"\f700"}.bi-arrow-through-heart::before{content:"\f701"}.bi-badge-sd-fill::before{content:"\f702"}.bi-badge-sd::before{content:"\f703"}.bi-bag-heart-fill::before{content:"\f704"}.bi-bag-heart::before{content:"\f705"}.bi-balloon-fill::before{content:"\f706"}.bi-balloon-heart-fill::before{content:"\f707"}.bi-balloon-heart::before{content:"\f708"}.bi-balloon::before{content:"\f709"}.bi-box2-fill::before{content:"\f70a"}.bi-box2-heart-fill::before{content:"\f70b"}.bi-box2-heart::before{content:"\f70c"}.bi-box2::before{content:"\f70d"}.bi-braces-asterisk::before{content:"\f70e"}.bi-calendar-heart-fill::before{content:"\f70f"}.bi-calendar-heart::before{content:"\f710"}.bi-calendar2-heart-fill::before{content:"\f711"}.bi-calendar2-heart::before{content:"\f712"}.bi-chat-heart-fill::before{content:"\f713"}.bi-chat-heart::before{content:"\f714"}.bi-chat-left-heart-fill::before{content:"\f715"}.bi-chat-left-heart::before{content:"\f716"}.bi-chat-right-heart-fill::before{content:"\f717"}.bi-chat-right-heart::before{content:"\f718"}.bi-chat-square-heart-fill::before{content:"\f719"}.bi-chat-square-heart::before{content:"\f71a"}.bi-clipboard-check-fill::before{content:"\f71b"}.bi-clipboard-data-fill::before{content:"\f71c"}.bi-clipboard-fill::before{content:"\f71d"}.bi-clipboard-heart-fill::before{content:"\f71e"}.bi-clipboard-heart::before{content:"\f71f"}.bi-clipboard-minus-fill::before{content:"\f720"}.bi-clipboard-plus-fill::before{content:"\f721"}.bi-clipboard-pulse::before{content:"\f722"}.bi-clipboard-x-fill::before{content:"\f723"}.bi-clipboard2-check-fill::before{content:"\f724"}.bi-clipboard2-check::before{content:"\f725"}.bi-clipboard2-data-fill::before{content:"\f726"}.bi-clipboard2-data::before{content:"\f727"}.bi-clipboard2-fill::before{content:"\f728"}.bi-clipboard2-heart-fill::before{content:"\f729"}.bi-clipboard2-heart::before{content:"\f72a"}.bi-clipboard2-minus-fill::before{content:"\f72b"}.bi-clipboard2-minus::before{content:"\f72c"}.bi-clipboard2-plus-fill::before{content:"\f72d"}.bi-clipboard2-plus::before{content:"\f72e"}.bi-clipboard2-pulse-fill::before{content:"\f72f"}.bi-clipboard2-pulse::before{content:"\f730"}.bi-clipboard2-x-fill::before{content:"\f731"}.bi-clipboard2-x::before{content:"\f732"}.bi-clipboard2::before{content:"\f733"}.bi-emoji-kiss-fill::before{content:"\f734"}.bi-emoji-kiss::before{content:"\f735"}.bi-envelope-heart-fill::before{content:"\f736"}.bi-envelope-heart::before{content:"\f737"}.bi-envelope-open-heart-fill::before{content:"\f738"}.bi-envelope-open-heart::before{content:"\f739"}.bi-envelope-paper-fill::before{content:"\f73a"}.bi-envelope-paper-heart-fill::before{content:"\f73b"}.bi-envelope-paper-heart::before{content:"\f73c"}.bi-envelope-paper::before{content:"\f73d"}.bi-filetype-aac::before{content:"\f73e"}.bi-filetype-ai::before{content:"\f73f"}.bi-filetype-bmp::before{content:"\f740"}.bi-filetype-cs::before{content:"\f741"}.bi-filetype-css::before{content:"\f742"}.bi-filetype-csv::before{content:"\f743"}.bi-filetype-doc::before{content:"\f744"}.bi-filetype-docx::before{content:"\f745"}.bi-filetype-exe::before{content:"\f746"}.bi-filetype-gif::before{content:"\f747"}.bi-filetype-heic::before{content:"\f748"}.bi-filetype-html::before{content:"\f749"}.bi-filetype-java::before{content:"\f74a"}.bi-filetype-jpg::before{content:"\f74b"}.bi-filetype-js::before{content:"\f74c"}.bi-filetype-jsx::before{content:"\f74d"}.bi-filetype-key::before{content:"\f74e"}.bi-filetype-m4p::before{content:"\f74f"}.bi-filetype-md::before{content:"\f750"}.bi-filetype-mdx::before{content:"\f751"}.bi-filetype-mov::before{content:"\f752"}.bi-filetype-mp3::before{content:"\f753"}.bi-filetype-mp4::before{content:"\f754"}.bi-filetype-otf::before{content:"\f755"}.bi-filetype-pdf::before{content:"\f756"}.bi-filetype-php::before{content:"\f757"}.bi-filetype-png::before{content:"\f758"}.bi-filetype-ppt::before{content:"\f75a"}.bi-filetype-psd::before{content:"\f75b"}.bi-filetype-py::before{content:"\f75c"}.bi-filetype-raw::before{content:"\f75d"}.bi-filetype-rb::before{content:"\f75e"}.bi-filetype-sass::before{content:"\f75f"}.bi-filetype-scss::before{content:"\f760"}.bi-filetype-sh::before{content:"\f761"}.bi-filetype-svg::before{content:"\f762"}.bi-filetype-tiff::before{content:"\f763"}.bi-filetype-tsx::before{content:"\f764"}.bi-filetype-ttf::before{content:"\f765"}.bi-filetype-txt::before{content:"\f766"}.bi-filetype-wav::before{content:"\f767"}.bi-filetype-woff::before{content:"\f768"}.bi-filetype-xls::before{content:"\f76a"}.bi-filetype-xml::before{content:"\f76b"}.bi-filetype-yml::before{content:"\f76c"}.bi-heart-arrow::before{content:"\f76d"}.bi-heart-pulse-fill::before{content:"\f76e"}.bi-heart-pulse::before{content:"\f76f"}.bi-heartbreak-fill::before{content:"\f770"}.bi-heartbreak::before{content:"\f771"}.bi-hearts::before{content:"\f772"}.bi-hospital-fill::before{content:"\f773"}.bi-hospital::before{content:"\f774"}.bi-house-heart-fill::before{content:"\f775"}.bi-house-heart::before{content:"\f776"}.bi-incognito::before{content:"\f777"}.bi-magnet-fill::before{content:"\f778"}.bi-magnet::before{content:"\f779"}.bi-person-heart::before{content:"\f77a"}.bi-person-hearts::before{content:"\f77b"}.bi-phone-flip::before{content:"\f77c"}.bi-plugin::before{content:"\f77d"}.bi-postage-fill::before{content:"\f77e"}.bi-postage-heart-fill::before{content:"\f77f"}.bi-postage-heart::before{content:"\f780"}.bi-postage::before{content:"\f781"}.bi-postcard-fill::before{content:"\f782"}.bi-postcard-heart-fill::before{content:"\f783"}.bi-postcard-heart::before{content:"\f784"}.bi-postcard::before{content:"\f785"}.bi-search-heart-fill::before{content:"\f786"}.bi-search-heart::before{content:"\f787"}.bi-sliders2-vertical::before{content:"\f788"}.bi-sliders2::before{content:"\f789"}.bi-trash3-fill::before{content:"\f78a"}.bi-trash3::before{content:"\f78b"}.bi-valentine::before{content:"\f78c"}.bi-valentine2::before{content:"\f78d"}.bi-wrench-adjustable-circle-fill::before{content:"\f78e"}.bi-wrench-adjustable-circle::before{content:"\f78f"}.bi-wrench-adjustable::before{content:"\f790"}.bi-filetype-json::before{content:"\f791"}.bi-filetype-pptx::before{content:"\f792"}.bi-filetype-xlsx::before{content:"\f793"}.bi-1-circle-fill::before{content:"\f796"}.bi-1-circle::before{content:"\f797"}.bi-1-square-fill::before{content:"\f798"}.bi-1-square::before{content:"\f799"}.bi-2-circle-fill::before{content:"\f79c"}.bi-2-circle::before{content:"\f79d"}.bi-2-square-fill::before{content:"\f79e"}.bi-2-square::before{content:"\f79f"}.bi-3-circle-fill::before{content:"\f7a2"}.bi-3-circle::before{content:"\f7a3"}.bi-3-square-fill::before{content:"\f7a4"}.bi-3-square::before{content:"\f7a5"}.bi-4-circle-fill::before{content:"\f7a8"}.bi-4-circle::before{content:"\f7a9"}.bi-4-square-fill::before{content:"\f7aa"}.bi-4-square::before{content:"\f7ab"}.bi-5-circle-fill::before{content:"\f7ae"}.bi-5-circle::before{content:"\f7af"}.bi-5-square-fill::before{content:"\f7b0"}.bi-5-square::before{content:"\f7b1"}.bi-6-circle-fill::before{content:"\f7b4"}.bi-6-circle::before{content:"\f7b5"}.bi-6-square-fill::before{content:"\f7b6"}.bi-6-square::before{content:"\f7b7"}.bi-7-circle-fill::before{content:"\f7ba"}.bi-7-circle::before{content:"\f7bb"}.bi-7-square-fill::before{content:"\f7bc"}.bi-7-square::before{content:"\f7bd"}.bi-8-circle-fill::before{content:"\f7c0"}.bi-8-circle::before{content:"\f7c1"}.bi-8-square-fill::before{content:"\f7c2"}.bi-8-square::before{content:"\f7c3"}.bi-9-circle-fill::before{content:"\f7c6"}.bi-9-circle::before{content:"\f7c7"}.bi-9-square-fill::before{content:"\f7c8"}.bi-9-square::before{content:"\f7c9"}.bi-airplane-engines-fill::before{content:"\f7ca"}.bi-airplane-engines::before{content:"\f7cb"}.bi-airplane-fill::before{content:"\f7cc"}.bi-airplane::before{content:"\f7cd"}.bi-alexa::before{content:"\f7ce"}.bi-alipay::before{content:"\f7cf"}.bi-android::before{content:"\f7d0"}.bi-android2::before{content:"\f7d1"}.bi-box-fill::before{content:"\f7d2"}.bi-box-seam-fill::before{content:"\f7d3"}.bi-browser-chrome::before{content:"\f7d4"}.bi-browser-edge::before{content:"\f7d5"}.bi-browser-firefox::before{content:"\f7d6"}.bi-browser-safari::before{content:"\f7d7"}.bi-c-circle-fill::before{content:"\f7da"}.bi-c-circle::before{content:"\f7db"}.bi-c-square-fill::before{content:"\f7dc"}.bi-c-square::before{content:"\f7dd"}.bi-capsule-pill::before{content:"\f7de"}.bi-capsule::before{content:"\f7df"}.bi-car-front-fill::before{content:"\f7e0"}.bi-car-front::before{content:"\f7e1"}.bi-cassette-fill::before{content:"\f7e2"}.bi-cassette::before{content:"\f7e3"}.bi-cc-circle-fill::before{content:"\f7e6"}.bi-cc-circle::before{content:"\f7e7"}.bi-cc-square-fill::before{content:"\f7e8"}.bi-cc-square::before{content:"\f7e9"}.bi-cup-hot-fill::before{content:"\f7ea"}.bi-cup-hot::before{content:"\f7eb"}.bi-currency-rupee::before{content:"\f7ec"}.bi-dropbox::before{content:"\f7ed"}.bi-escape::before{content:"\f7ee"}.bi-fast-forward-btn-fill::before{content:"\f7ef"}.bi-fast-forward-btn::before{content:"\f7f0"}.bi-fast-forward-circle-fill::before{content:"\f7f1"}.bi-fast-forward-circle::before{content:"\f7f2"}.bi-fast-forward-fill::before{content:"\f7f3"}.bi-fast-forward::before{content:"\f7f4"}.bi-filetype-sql::before{content:"\f7f5"}.bi-fire::before{content:"\f7f6"}.bi-google-play::before{content:"\f7f7"}.bi-h-circle-fill::before{content:"\f7fa"}.bi-h-circle::before{content:"\f7fb"}.bi-h-square-fill::before{content:"\f7fc"}.bi-h-square::before{content:"\f7fd"}.bi-indent::before{content:"\f7fe"}.bi-lungs-fill::before{content:"\f7ff"}.bi-lungs::before{content:"\f800"}.bi-microsoft-teams::before{content:"\f801"}.bi-p-circle-fill::before{content:"\f804"}.bi-p-circle::before{content:"\f805"}.bi-p-square-fill::before{content:"\f806"}.bi-p-square::before{content:"\f807"}.bi-pass-fill::before{content:"\f808"}.bi-pass::before{content:"\f809"}.bi-prescription::before{content:"\f80a"}.bi-prescription2::before{content:"\f80b"}.bi-r-circle-fill::before{content:"\f80e"}.bi-r-circle::before{content:"\f80f"}.bi-r-square-fill::before{content:"\f810"}.bi-r-square::before{content:"\f811"}.bi-repeat-1::before{content:"\f812"}.bi-repeat::before{content:"\f813"}.bi-rewind-btn-fill::before{content:"\f814"}.bi-rewind-btn::before{content:"\f815"}.bi-rewind-circle-fill::before{content:"\f816"}.bi-rewind-circle::before{content:"\f817"}.bi-rewind-fill::before{content:"\f818"}.bi-rewind::before{content:"\f819"}.bi-train-freight-front-fill::before{content:"\f81a"}.bi-train-freight-front::before{content:"\f81b"}.bi-train-front-fill::before{content:"\f81c"}.bi-train-front::before{content:"\f81d"}.bi-train-lightrail-front-fill::before{content:"\f81e"}.bi-train-lightrail-front::before{content:"\f81f"}.bi-truck-front-fill::before{content:"\f820"}.bi-truck-front::before{content:"\f821"}.bi-ubuntu::before{content:"\f822"}.bi-unindent::before{content:"\f823"}.bi-unity::before{content:"\f824"}.bi-universal-access-circle::before{content:"\f825"}.bi-universal-access::before{content:"\f826"}.bi-virus::before{content:"\f827"}.bi-virus2::before{content:"\f828"}.bi-wechat::before{content:"\f829"}.bi-yelp::before{content:"\f82a"}.bi-sign-stop-fill::before{content:"\f82b"}.bi-sign-stop-lights-fill::before{content:"\f82c"}.bi-sign-stop-lights::before{content:"\f82d"}.bi-sign-stop::before{content:"\f82e"}.bi-sign-turn-left-fill::before{content:"\f82f"}.bi-sign-turn-left::before{content:"\f830"}.bi-sign-turn-right-fill::before{content:"\f831"}.bi-sign-turn-right::before{content:"\f832"}.bi-sign-turn-slight-left-fill::before{content:"\f833"}.bi-sign-turn-slight-left::before{content:"\f834"}.bi-sign-turn-slight-right-fill::before{content:"\f835"}.bi-sign-turn-slight-right::before{content:"\f836"}.bi-sign-yield-fill::before{content:"\f837"}.bi-sign-yield::before{content:"\f838"}.bi-ev-station-fill::before{content:"\f839"}.bi-ev-station::before{content:"\f83a"}.bi-fuel-pump-diesel-fill::before{content:"\f83b"}.bi-fuel-pump-diesel::before{content:"\f83c"}.bi-fuel-pump-fill::before{content:"\f83d"}.bi-fuel-pump::before{content:"\f83e"}.bi-0-circle-fill::before{content:"\f83f"}.bi-0-circle::before{content:"\f840"}.bi-0-square-fill::before{content:"\f841"}.bi-0-square::before{content:"\f842"}.bi-rocket-fill::before{content:"\f843"}.bi-rocket-takeoff-fill::before{content:"\f844"}.bi-rocket-takeoff::before{content:"\f845"}.bi-rocket::before{content:"\f846"}.bi-stripe::before{content:"\f847"}.bi-subscript::before{content:"\f848"}.bi-superscript::before{content:"\f849"}.bi-trello::before{content:"\f84a"}.bi-envelope-at-fill::before{content:"\f84b"}.bi-envelope-at::before{content:"\f84c"}.bi-regex::before{content:"\f84d"}.bi-text-wrap::before{content:"\f84e"}.bi-sign-dead-end-fill::before{content:"\f84f"}.bi-sign-dead-end::before{content:"\f850"}.bi-sign-do-not-enter-fill::before{content:"\f851"}.bi-sign-do-not-enter::before{content:"\f852"}.bi-sign-intersection-fill::before{content:"\f853"}.bi-sign-intersection-side-fill::before{content:"\f854"}.bi-sign-intersection-side::before{content:"\f855"}.bi-sign-intersection-t-fill::before{content:"\f856"}.bi-sign-intersection-t::before{content:"\f857"}.bi-sign-intersection-y-fill::before{content:"\f858"}.bi-sign-intersection-y::before{content:"\f859"}.bi-sign-intersection::before{content:"\f85a"}.bi-sign-merge-left-fill::before{content:"\f85b"}.bi-sign-merge-left::before{content:"\f85c"}.bi-sign-merge-right-fill::before{content:"\f85d"}.bi-sign-merge-right::before{content:"\f85e"}.bi-sign-no-left-turn-fill::before{content:"\f85f"}.bi-sign-no-left-turn::before{content:"\f860"}.bi-sign-no-parking-fill::before{content:"\f861"}.bi-sign-no-parking::before{content:"\f862"}.bi-sign-no-right-turn-fill::before{content:"\f863"}.bi-sign-no-right-turn::before{content:"\f864"}.bi-sign-railroad-fill::before{content:"\f865"}.bi-sign-railroad::before{content:"\f866"}.bi-building-add::before{content:"\f867"}.bi-building-check::before{content:"\f868"}.bi-building-dash::before{content:"\f869"}.bi-building-down::before{content:"\f86a"}.bi-building-exclamation::before{content:"\f86b"}.bi-building-fill-add::before{content:"\f86c"}.bi-building-fill-check::before{content:"\f86d"}.bi-building-fill-dash::before{content:"\f86e"}.bi-building-fill-down::before{content:"\f86f"}.bi-building-fill-exclamation::before{content:"\f870"}.bi-building-fill-gear::before{content:"\f871"}.bi-building-fill-lock::before{content:"\f872"}.bi-building-fill-slash::before{content:"\f873"}.bi-building-fill-up::before{content:"\f874"}.bi-building-fill-x::before{content:"\f875"}.bi-building-fill::before{content:"\f876"}.bi-building-gear::before{content:"\f877"}.bi-building-lock::before{content:"\f878"}.bi-building-slash::before{content:"\f879"}.bi-building-up::before{content:"\f87a"}.bi-building-x::before{content:"\f87b"}.bi-buildings-fill::before{content:"\f87c"}.bi-buildings::before{content:"\f87d"}.bi-bus-front-fill::before{content:"\f87e"}.bi-bus-front::before{content:"\f87f"}.bi-ev-front-fill::before{content:"\f880"}.bi-ev-front::before{content:"\f881"}.bi-globe-americas::before{content:"\f882"}.bi-globe-asia-australia::before{content:"\f883"}.bi-globe-central-south-asia::before{content:"\f884"}.bi-globe-europe-africa::before{content:"\f885"}.bi-house-add-fill::before{content:"\f886"}.bi-house-add::before{content:"\f887"}.bi-house-check-fill::before{content:"\f888"}.bi-house-check::before{content:"\f889"}.bi-house-dash-fill::before{content:"\f88a"}.bi-house-dash::before{content:"\f88b"}.bi-house-down-fill::before{content:"\f88c"}.bi-house-down::before{content:"\f88d"}.bi-house-exclamation-fill::before{content:"\f88e"}.bi-house-exclamation::before{content:"\f88f"}.bi-house-gear-fill::before{content:"\f890"}.bi-house-gear::before{content:"\f891"}.bi-house-lock-fill::before{content:"\f892"}.bi-house-lock::before{content:"\f893"}.bi-house-slash-fill::before{content:"\f894"}.bi-house-slash::before{content:"\f895"}.bi-house-up-fill::before{content:"\f896"}.bi-house-up::before{content:"\f897"}.bi-house-x-fill::before{content:"\f898"}.bi-house-x::before{content:"\f899"}.bi-person-add::before{content:"\f89a"}.bi-person-down::before{content:"\f89b"}.bi-person-exclamation::before{content:"\f89c"}.bi-person-fill-add::before{content:"\f89d"}.bi-person-fill-check::before{content:"\f89e"}.bi-person-fill-dash::before{content:"\f89f"}.bi-person-fill-down::before{content:"\f8a0"}.bi-person-fill-exclamation::before{content:"\f8a1"}.bi-person-fill-gear::before{content:"\f8a2"}.bi-person-fill-lock::before{content:"\f8a3"}.bi-person-fill-slash::before{content:"\f8a4"}.bi-person-fill-up::before{content:"\f8a5"}.bi-person-fill-x::before{content:"\f8a6"}.bi-person-gear::before{content:"\f8a7"}.bi-person-lock::before{content:"\f8a8"}.bi-person-slash::before{content:"\f8a9"}.bi-person-up::before{content:"\f8aa"}.bi-scooter::before{content:"\f8ab"}.bi-taxi-front-fill::before{content:"\f8ac"}.bi-taxi-front::before{content:"\f8ad"}.bi-amd::before{content:"\f8ae"}.bi-database-add::before{content:"\f8af"}.bi-database-check::before{content:"\f8b0"}.bi-database-dash::before{content:"\f8b1"}.bi-database-down::before{content:"\f8b2"}.bi-database-exclamation::before{content:"\f8b3"}.bi-database-fill-add::before{content:"\f8b4"}.bi-database-fill-check::before{content:"\f8b5"}.bi-database-fill-dash::before{content:"\f8b6"}.bi-database-fill-down::before{content:"\f8b7"}.bi-database-fill-exclamation::before{content:"\f8b8"}.bi-database-fill-gear::before{content:"\f8b9"}.bi-database-fill-lock::before{content:"\f8ba"}.bi-database-fill-slash::before{content:"\f8bb"}.bi-database-fill-up::before{content:"\f8bc"}.bi-database-fill-x::before{content:"\f8bd"}.bi-database-fill::before{content:"\f8be"}.bi-database-gear::before{content:"\f8bf"}.bi-database-lock::before{content:"\f8c0"}.bi-database-slash::before{content:"\f8c1"}.bi-database-up::before{content:"\f8c2"}.bi-database-x::before{content:"\f8c3"}.bi-database::before{content:"\f8c4"}.bi-houses-fill::before{content:"\f8c5"}.bi-houses::before{content:"\f8c6"}.bi-nvidia::before{content:"\f8c7"}.bi-person-vcard-fill::before{content:"\f8c8"}.bi-person-vcard::before{content:"\f8c9"}.bi-sina-weibo::before{content:"\f8ca"}.bi-tencent-qq::before{content:"\f8cb"}.bi-wikipedia::before{content:"\f8cc"}.bi-alphabet-uppercase::before{content:"\f2a5"}.bi-alphabet::before{content:"\f68a"}.bi-amazon::before{content:"\f68d"}.bi-arrows-collapse-vertical::before{content:"\f690"}.bi-arrows-expand-vertical::before{content:"\f695"}.bi-arrows-vertical::before{content:"\f698"}.bi-arrows::before{content:"\f6a2"}.bi-ban-fill::before{content:"\f6a3"}.bi-ban::before{content:"\f6b6"}.bi-bing::before{content:"\f6c2"}.bi-cake::before{content:"\f6e0"}.bi-cake2::before{content:"\f6ed"}.bi-cookie::before{content:"\f6ee"}.bi-copy::before{content:"\f759"}.bi-crosshair::before{content:"\f769"}.bi-crosshair2::before{content:"\f794"}.bi-emoji-astonished-fill::before{content:"\f795"}.bi-emoji-astonished::before{content:"\f79a"}.bi-emoji-grimace-fill::before{content:"\f79b"}.bi-emoji-grimace::before{content:"\f7a0"}.bi-emoji-grin-fill::before{content:"\f7a1"}.bi-emoji-grin::before{content:"\f7a6"}.bi-emoji-surprise-fill::before{content:"\f7a7"}.bi-emoji-surprise::before{content:"\f7ac"}.bi-emoji-tear-fill::before{content:"\f7ad"}.bi-emoji-tear::before{content:"\f7b2"}.bi-envelope-arrow-down-fill::before{content:"\f7b3"}.bi-envelope-arrow-down::before{content:"\f7b8"}.bi-envelope-arrow-up-fill::before{content:"\f7b9"}.bi-envelope-arrow-up::before{content:"\f7be"}.bi-feather::before{content:"\f7bf"}.bi-feather2::before{content:"\f7c4"}.bi-floppy-fill::before{content:"\f7c5"}.bi-floppy::before{content:"\f7d8"}.bi-floppy2-fill::before{content:"\f7d9"}.bi-floppy2::before{content:"\f7e4"}.bi-gitlab::before{content:"\f7e5"}.bi-highlighter::before{content:"\f7f8"}.bi-marker-tip::before{content:"\f802"}.bi-nvme-fill::before{content:"\f803"}.bi-nvme::before{content:"\f80c"}.bi-opencollective::before{content:"\f80d"}.bi-pci-card-network::before{content:"\f8cd"}.bi-pci-card-sound::before{content:"\f8ce"}.bi-radar::before{content:"\f8cf"}.bi-send-arrow-down-fill::before{content:"\f8d0"}.bi-send-arrow-down::before{content:"\f8d1"}.bi-send-arrow-up-fill::before{content:"\f8d2"}.bi-send-arrow-up::before{content:"\f8d3"}.bi-sim-slash-fill::before{content:"\f8d4"}.bi-sim-slash::before{content:"\f8d5"}.bi-sourceforge::before{content:"\f8d6"}.bi-substack::before{content:"\f8d7"}.bi-threads-fill::before{content:"\f8d8"}.bi-threads::before{content:"\f8d9"}.bi-transparency::before{content:"\f8da"}.bi-twitter-x::before{content:"\f8db"}.bi-type-h4::before{content:"\f8dc"}.bi-type-h5::before{content:"\f8dd"}.bi-type-h6::before{content:"\f8de"}.bi-backpack-fill::before{content:"\f8df"}.bi-backpack::before{content:"\f8e0"}.bi-backpack2-fill::before{content:"\f8e1"}.bi-backpack2::before{content:"\f8e2"}.bi-backpack3-fill::before{content:"\f8e3"}.bi-backpack3::before{content:"\f8e4"}.bi-backpack4-fill::before{content:"\f8e5"}.bi-backpack4::before{content:"\f8e6"}.bi-brilliance::before{content:"\f8e7"}.bi-cake-fill::before{content:"\f8e8"}.bi-cake2-fill::before{content:"\f8e9"}.bi-duffle-fill::before{content:"\f8ea"}.bi-duffle::before{content:"\f8eb"}.bi-exposure::before{content:"\f8ec"}.bi-gender-neuter::before{content:"\f8ed"}.bi-highlights::before{content:"\f8ee"}.bi-luggage-fill::before{content:"\f8ef"}.bi-luggage::before{content:"\f8f0"}.bi-mailbox-flag::before{content:"\f8f1"}.bi-mailbox2-flag::before{content:"\f8f2"}.bi-noise-reduction::before{content:"\f8f3"}.bi-passport-fill::before{content:"\f8f4"}.bi-passport::before{content:"\f8f5"}.bi-person-arms-up::before{content:"\f8f6"}.bi-person-raised-hand::before{content:"\f8f7"}.bi-person-standing-dress::before{content:"\f8f8"}.bi-person-standing::before{content:"\f8f9"}.bi-person-walking::before{content:"\f8fa"}.bi-person-wheelchair::before{content:"\f8fb"}.bi-shadows::before{content:"\f8fc"}.bi-suitcase-fill::before{content:"\f8fd"}.bi-suitcase-lg-fill::before{content:"\f8fe"}.bi-suitcase-lg::before{content:"\f8ff"}.bi-suitcase::before{content:"\f900"}.bi-suitcase2-fill::before{content:"\f901"}.bi-suitcase2::before{content:"\f902"}.bi-vignette::before{content:"\f903"}
/* Icon-Ausrichtung/-Größe — Baustein Core\Design::icon(). Das Icon erbt die Schriftgröße seines
   Kontexts (Typo-Token), sitzt aber sauber auf der Grundlinie. Kein Modul stylt Icons selbst. */
.cc-ico { display: inline-block; line-height: 1; vertical-align: -.125em; }
.cc-ico + * { margin-left: .1em; }
/* Gedämpftes Icon (Design::icon ['muted'=>true]) — Typ-Symbol vor einem Namen, das nicht mit dem Text konkurriert. */
.cc-ico.cc-ico-muted { color: var(--muted); }
/* BILD-ICON (Design::icon mit Bildpfad statt Glyph): ein App-Bild, kein Glyph — es steht etwas grösser
   als ein Glyph, damit man es erkennt, und braucht keinen eigenen Hintergrund (das Bild ist selbst die
   Kachel, transparent aussenherum). Kontexte mit fester Slot-Grösse (Nav-Rail, Kopf-Kachel) setzen die
   Grösse gezielt (nav.css/layout.css). */
img.cc-ico.cc-ico-img { width: 1.35em; height: 1.35em; object-fit: contain; vertical-align: middle; }

@font-face{font-family:"Exo 2";font-style:normal;font-weight:200 600;font-display:swap;src:url(data:font/woff2;base64,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) format("woff2")}
/* ============================================================================
   Typo — das Schrift-Kernmodul. DIE EINE Quelle für jedes Schriftbild.
   Kein anderes Modul darf font-size / font-weight / font-family / Textfarbe
   setzen (der Compliance-Scanner erzwingt das). Größen/Stärken kommen aus den
   Tokens im Kern (--fs-*, --fw-*, --mono); hier werden sie ANGEWENDET.
   Bausteine, die diese Klassen ausgeben: Core\Design::strong/em/muted/mono/
   code/danger/dash/label + block()/intro() für Überschriften.
   ============================================================================ */

body { font-size: var(--fs-base); line-height: var(--lh); }

/* Überschriften — EINE Skala fürs ganze System. */
h1, h2, h3, h4, h5, h6 { margin: 0 0 .4em; font-weight: var(--fw-bold); color: var(--ink); line-height: 1.3; }
h1 { font-size: var(--fs-xxl); }
h2 { font-size: var(--fs-xl); }
h3 { font-size: var(--fs-lg); }
h4 { font-size: var(--fs-md); }
h5, h6 { font-size: var(--fs-base); }

p { margin: 0 0 .6em; }
p:last-child { margin-bottom: 0; }

/* Betonung — Rolle, nicht Deko. */
strong, b { font-weight: var(--fw-bold); }
em, i     { font-style: italic; }
small     { font-size: var(--fs-sm); }

/* Code / Kennung / Kommando. */
code, kbd, samp {
    font-family: var(--mono);
    font-size: .92em;
    background: var(--grey-100);
    color: var(--grey-700);
    padding:var(--sp-0) var(--sp-2);
    border-radius: var(--radius);
}

a { color: var(--o); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ── Text-Rollen (Design::muted/mono/danger/label/strong) ─────────────────── */
/* Stiller TEXT (typo 1.7.1, auch .txt-mono/.txt-caps): --grey-500 statt --muted. --muted trägt auf Weiss nur 2,53:1 (axe, KI-Chat R4); --grey-500
   hell 4,8:1, dunkel derselbe Wert wie --muted. --muted bleibt der Ton für Icons, Linien und Text auf dunklen Köpfen. */
.txt-muted  { color: var(--grey-500); font-size: var(--fs-sm); }
.txt-mono   { font-family: var(--mono); font-size: var(--fs-sm); color: var(--grey-500); }
.txt-danger { color: var(--danger); }
.txt-strong { font-weight: var(--fw-bold); }
.txt-label  { font-size: var(--fs-sm); font-weight: var(--fw-med); color: var(--ink); }
.txt-medium { font-weight: var(--fw-med); }
/* Rubrik-Beschriftung (Design::label ['caps'=>true]) — klein, versal, grau; steht NACH .txt-label und gewinnt. */
.txt-caps   { font-size: var(--fs-2xs); text-transform: uppercase; letter-spacing: var(--tracking); color: var(--grey-500); }
/* Ton-Rollen für Text und Icons (…['class'=>'txt-ok'] an muted/icon) — zugesagt, Vorbehalt, Markenakzent.
   Stehen NACH .txt-muted und gewinnen dessen Farbe (z.B. „Öffentlich" grün). */
.txt-ok     { color: var(--ok); }
.txt-warn   { color: var(--warn-fg); }
.txt-brand  { color: var(--o); }

/* ── Vereinheitlichte Alt-Klassen ─────────────────────────────────────────────
   Historisch stylte JEDES Modul diese selbst (mod-id mal 12px, mdd-empty mal
   13px, text-danger mal var(--danger) / mal var(--danger)). Ab hier: EINE Definition, damit
   dieselbe Rolle überall gleich aussieht. Neue Markup nutzt die .txt-*-Rollen. */
.mod-id     { font-family: var(--mono); font-size: var(--fs-sm); color: var(--muted); }
.mdd-empty  { color: var(--muted); font-size: var(--fs-sm); }
.text-danger { color: var(--danger); }
/* Mono-/Kategorie-Chips (grauer Hintergrund) — vorher in core/Ui.php bzw. modules.css verstreut. */
.cs-mod  { font-family: var(--mono); font-size: var(--fs-xs); color: var(--muted); background: var(--grey-100); padding:var(--sp-0) var(--sp-2); border-radius: var(--radius); }
.mod-cat { display: inline-block; background: var(--grey-100); color: var(--grey-700); font-size: var(--fs-xs); padding:var(--sp-0) var(--sp-3); border-radius: var(--radius); }

/* ── Listen (Design::list/descList) ──────────────────────────────────────────
   Aufzählungen sind typografisch → Heimat hier. Kein Modul stylt <ul>/<ol>/<dl> selbst. */
.cc-list { margin: 0 0 var(--sp-5); padding-left: 1.3em; }
.cc-list li { margin: 0 0 .3em; }
.cc-list li:last-child { margin-bottom: 0; }
/* BEGRIFF → WERT (Design::descList / Design::kv) im FORMULAR-LOOK wie ein Kern-Feld: Begriff links in
   fester Spalte, rechtsbündig, fett; Wert rechts daneben. Anzeige und Eingabe sehen damit gleich aus.
   ['compact'=>true] = alte enge Variante (auto-Spalte, grauer Begriff) für Widgets/Seitenspalten. */
.cc-dl { margin: 0 0 var(--sp-5); display: grid; grid-template-columns: var(--sz-180) minmax(0, 1fr); gap: var(--sp-3) var(--sp-8); align-items: start; }
.cc-dl dt { text-align: right; padding-right: var(--sp-6); font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--grey-800); min-width: 0; overflow-wrap: anywhere; line-height: 1.5; }
.cc-dl dd { margin: 0; min-width: 0; overflow-wrap: anywhere; line-height: 1.5; }   /* MD5, URLs, Pfade laufen sonst aus der Spalte */
.cc-dl-compact { grid-template-columns: auto 1fr; gap: var(--sp-1) var(--sp-6); }
.cc-dl-compact dt { text-align: left; padding-right: 0; font-size: var(--fs-sm); font-weight: var(--fw-normal); color: var(--muted); }

/* Link (Design::link) — EIN Linkbild im System: Markenfarbe, unterstrichen erst beim Zeigen,
   kürzt sich in engen Zeilen (Listen/Tabellen) statt die Zeile zu sprengen. */
.cc-link { color: var(--o); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.cc-link:hover { text-decoration: underline; }

/* Bildmarke (Design::brandMark) — EIN Logo im System. Grösse erbt vom Kontext (font-size),
   Farben aus den Kern-Tokens. */
.cc-brand { display: inline-flex; align-items: center; justify-content: center; line-height: 0; }
.cc-brand svg { width: 1em; height: 1em; }
.cc-brand-a { fill: var(--o); }
.cc-brand-q { fill: var(--ink); }
/* N-Monogramm (Design::brandMark ['mark'=>'n']) — einfarbig in der Textfarbe, damit es auf hellem
   wie dunklem Grund trägt. Seitenverhältnis leicht hochkant, deshalb Breite aus der Höhe ableiten. */
.cc-brand-nmark svg { width: auto; height: 1em; }
.cc-brand-n { fill: var(--ink); }
/* Grössen-Stufe der Bildmarke (Design::brandMark ['size'=>'display']) — gross wie auf der Anmelde-Seite. */
.cc-brand.cc-brand-display { font-size: var(--fs-display); }

/* Nebentext eine Stufe kleiner (Design::muted ['size'=>'xs']) — Dateiname/Kennzeile unter einem Titel. */
.txt-muted.txt-xs { font-size: var(--fs-xs); }
/* Bearbeitbarer Titel (Design::editTitle) — gestrichelte Unterkante erst beim Bearbeiten. */
.cc-etitle { font-size: var(--fs-lg); font-weight: var(--fw-heavy); color: var(--ink); line-height: 1.3; word-break: break-word;
             outline: none; border-bottom: 1px dashed transparent; transition: border-color var(--dur); }
.cc-etitle:focus { border-bottom-color: var(--o); }
/* Text-Seite (Design::textPage) — Klartext als weisses, gerahmtes Blatt, Umbrüche bleiben. */
.cc-textpage { padding: var(--sp-9); font-size: var(--fs-base); line-height: 1.5; white-space: pre-wrap; word-break: break-all;
               background: var(--surface); border: 1px solid var(--grey-300); box-sizing: border-box; overflow: auto; }

/* ── RICH-TEXT-ANSICHT (Design::richText) ────────────────────────────────────────────────────
   Das Schriftbild GESPEICHERTEN HTML: Grösse, Zeilenhöhe, Farbe, Überschriften, Code, Listen.
   Sie lag bis zum 15.09.2026 beim WYSIWYG-Editor — obwohl sie auch dort gilt, wo nie ein Editor
   stand (Controlling-Aufgaben, Dokumenten-Ansicht, Ticket-Kommentare). Wer den Editor abschaltete,
   nahm allen diesen Stellen ihr Schriftbild mit. Schrift gehört diesem Modul. */
.cc-rich{font-size:var(--fs-base);line-height:var(--lh);color:var(--grey-800)}
.cc-rich-md{font-size:var(--fs-md)}
.cc-rich > :first-child{margin-top:0}
.cc-rich > :last-child{margin-bottom:0}
.cc-rich img{max-width:100%;height:auto}
/* ['thumbs'=>true]: eingefügte Bilder (Screenshots) als 72px-Vorschau; den Klick (gross öffnen) fängt das Modul. */
.cc-rich-thumbs img:not(.cc-rich-avatar){max-width:var(--sz-72);max-height:var(--sz-72);width:auto;height:auto;object-fit:cover;
  border:1px solid var(--border);border-radius:var(--radius);cursor:zoom-in;vertical-align:middle;
  margin:var(--sp-1) var(--sp-1) var(--sp-1) 0;transition:border-color var(--dur-fast)}
.cc-rich-thumbs img:not(.cc-rich-avatar):hover{border-color:var(--o)}
/* Kleine Avatare in übernommenen Systemeinträgen bleiben klein und rund. */
.cc-rich img.cc-rich-avatar{width:var(--sz-20);height:var(--sz-20);border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:var(--sp-1)}
/* ['doc'=>true]: ganzes Dokument (gerendertes Markdown) als zentriertes weisses Blatt mit Lese-Typografie. */
.cc-rich.cc-rich-doc{padding:var(--sp-10) var(--sp-11);font-size:var(--fs-md);line-height:1.7;max-width:var(--sz-820);margin:0 auto;
  background:var(--surface);box-sizing:border-box;color:var(--ink)}
.cc-rich-doc h1{font-size:var(--fs-xxl);font-weight:var(--fw-heavy);margin:0 0 var(--sp-7);border-bottom:1px solid var(--grey-200);padding-bottom:var(--sp-3)}
.cc-rich-doc h2{font-size:var(--fs-xl);font-weight:var(--fw-bold);margin:var(--sp-9) 0 var(--sp-5)}
.cc-rich-doc h3{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin:var(--sp-8) 0 var(--sp-3)}
.cc-rich-doc h4{font-size:var(--fs-md);font-weight:var(--fw-bold);margin:var(--sp-7) 0 var(--sp-2)}
.cc-rich-doc p{margin:0 0 var(--sp-5)}
.cc-rich-doc code{background:var(--grey-100);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius);font-size:var(--fs-base)}
.cc-rich-doc pre{background:var(--grey-100);padding:var(--sp-7);border:1px solid var(--grey-300);border-radius:var(--radius);overflow-x:auto;
  margin:var(--sp-5) 0;font-size:var(--fs-base);line-height:1.5;white-space:pre-wrap;word-break:break-all}
.cc-rich-doc pre code{background:none;padding:0}
.cc-rich-doc ul,.cc-rich-doc ol{margin:0 0 var(--sp-5);padding-left:var(--sp-9)}
.cc-rich-doc li{margin-bottom:var(--sp-1)}
.cc-rich-doc a{color:var(--o)}
.cc-rich-doc blockquote{border-left:3px solid var(--grey-300);margin:var(--sp-5) 0;padding:var(--sp-1) var(--sp-7);color:var(--grey-500)}
.cc-rich-doc hr{border:none;border-top:1px solid var(--grey-200);margin:var(--sp-8) 0}
.cc-rich-doc strong{font-weight:var(--fw-heavy)}
/* ['lese'=>true] (typo 1.7.0, Markup seit Kern 2.5.0): Lese-Typografie für gerendertes Markdown in einer
   BLASE (Chat-Antwort) — kein Blatt: Überschriften auf die Kern-Skala herabgestuft (h1 = --fs-lg … h6 =
   --fs-base, ohne Unterstrich), Listen mit Einzug, Zitat, Trennlinie, Code im Text. Die Farbe kommt vom
   Behälter (Blase). Tabellen bringen ihr Aussehen aus datatable (.cc-ptable), Code-Blöcke aus syntax;
   hier nur deren Ausrichtung je Spalte (von CC.markdown.into gesetzt, kein style aus dem Text). */
.cc-rich.cc-rich-lese{color:inherit;line-height:1.6}
.cc-rich-lese h1,.cc-rich-lese h2,.cc-rich-lese h3,.cc-rich-lese h4,.cc-rich-lese h5,.cc-rich-lese h6{font-weight:var(--fw-bold);line-height:1.3;margin:var(--sp-5) 0 var(--sp-2);border:0;padding:0}
.cc-rich-lese h1{font-size:var(--fs-lg)}
.cc-rich-lese h2{font-size:var(--fs-lg)}
.cc-rich-lese h3{font-size:var(--fs-md)}
.cc-rich-lese h4{font-size:var(--fs-md)}
.cc-rich-lese h5,.cc-rich-lese h6{font-size:var(--fs-base)}
.cc-rich-lese p{margin:0 0 var(--sp-3)}
.cc-rich-lese ul,.cc-rich-lese ol{margin:0 0 var(--sp-3);padding-left:var(--sp-9)}
.cc-rich-lese li{margin-bottom:var(--sp-1)}
.cc-rich-lese li > ul,.cc-rich-lese li > ol{margin:var(--sp-1) 0 0}
.cc-rich-lese blockquote{border-left:3px solid var(--grey-300);margin:0 0 var(--sp-3);padding:var(--sp-1) var(--sp-5);color:inherit}
.cc-rich-lese hr{border:none;border-top:1px solid var(--grey-300);margin:var(--sp-5) 0}
.cc-rich-lese a{color:var(--o)}
.cc-rich-lese strong{font-weight:var(--fw-heavy)}
.cc-rich-lese :not(pre) > code{background:var(--grey-100);padding:0 var(--sp-1);border-radius:var(--radius);font-family:var(--mono);font-size:var(--fs-base)}
.cc-rich-lese pre:not(.cc-code){margin:0 0 var(--sp-3);white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:var(--fs-base)}
.cc-rich-lese .cc-codewrap,.cc-rich-lese .cc-ptable-wrap{margin:0 0 var(--sp-3)}
.cc-rich-lese .cc-md-mitte{text-align:center}
.cc-rich-lese .cc-md-rechts{text-align:right}

/* ============================================================================
   Layout — Raster/Zeile/Stapel/Split. Bausteine: Core\Design::grid/row/stack/split.
   Anordnung geteilter Muster kommt HIER her, damit Karten-Raster & Split-Ansichten
   überall gleich aussehen und gleich umbrechen. Abstände aus den Gap-Tokens.
   ============================================================================ */

/* Karten-Raster — Standard: auto-fit ab 220px. Feste Spalten via cc-grid-2/3/4. */
.cc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--gap-md); }
.cc-grid-2 { grid-template-columns: repeat(2, 1fr); }
.cc-grid-3 { grid-template-columns: repeat(3, 1fr); }
.cc-grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width:720px) { .cc-grid-2, .cc-grid-3, .cc-grid-4 { grid-template-columns: 1fr; } }
.cc-cell { min-width: 0; }

/* Zeile — Flex mit Gap. */
.cc-row { display: flex; align-items: center; gap: var(--gap-sm); }
/* BLOCK-ABSTAND (Kern-Regel): eine Zeile/Chip-Reihe/Kennzahlen-Reihe/Liste und der nächste Block
   (Datentabelle, Formular, Raster, nächste Zeile) haben IMMER Luft. Niedrige Spezifität (:where) —
   ein Modul mit engem Stapel (gap-gesteuert) oder ein Kern-Stapel überschreibt das schmerzfrei.

   WARUM ZWEI VERSCHIEDENE LISTEN UND KEIN GEMEINSAMES MERKMAL (15.09.2026 nachgemessen):
   Die Frage lag nahe — ein data-cc-block an jedem Block-Baustein, die Regel dann schlicht
   '[data-cc-block] + [data-cc-block]'. Sie geht nicht, und zwar nachweisbar: die beiden Listen sind
   ABSICHTLICH nicht deckungsgleich. Links steht, was einen Abstand ÖFFNEN darf, rechts, was einen
   NIMMT — eine Datentabelle etwa nimmt Luft von einer Zeile darüber, öffnet aber keine zu dem, was
   unter ihr steht. Im Browser über sechs Fenster gezählt: heute greift die Regel an 25 Stellen;
   mit einem gemeinsamen Merkmal wären es 185 — 160 Stellen bekämen einen Abstand, den heute
   niemand dort will. Die Namensliste ist also keine Schlamperei, sondern die Aussage selbst.

   Was BLEIBT ist die Sorge des Befunds: benennt eines der genannten Module seine Wurzelklasse um,
   fällt der Abstand lautlos aus. Dagegen steht jetzt tests/kaskade_gate.php — es prüft, dass jede
   hier genannte Klasse im System auch wirklich definiert wird.
   (.cc-segmented stand hier und wird von niemandem mehr ausgegeben — gestrichen.) */
:where(.cc-row, .cc-chips, .cc-grid, .cc-dl, .cc-kv, .cc-searchbar, .cs-intro, .cc-infobox, .cc-empty)
  + :where(.dataTables_wrapper, .mage-table, .cc-row, .cc-grid, .mage-field, .cc-dl, .cc-kv, .cc-chips, .cc-infobox, .cc-codewrap, .cc-empty) { margin-top: var(--sp-5); }
/* EIN FORMULARFELD UNTER EINER TABELLE (24.09.2026). Florian: „Feld «Neuer Status» klebt an der
   Tabelle darüber, «Neue Kategorie» genauso." Die Regel oben lässt eine Tabelle bewusst keinen Abstand
   nach unten öffnen — gilt weiter für alles andere. Ein FELD unter einer Tabelle ist aber immer ein
   eigener Schritt (anlegen, hinzufügen) und braucht dieselbe Luft wie zwischen zwei Feldern.
   Links beide Formen: roh (.mage-table) und nachdem das Tabellen-Modul sie eingepackt hat. */
:where(.dataTables_wrapper, .mage-table, .cc-hint) + :where(.mage-field) { margin-top: var(--sp-7); }
:where(.cc-stack) > * + * { margin-top: 0; }
.cc-row-between { justify-content: space-between; }
.cc-row-end { justify-content: flex-end; }
.cc-row-center { justify-content: center; }
.cc-align-start { align-items: flex-start; }
.cc-align-center { align-items: center; }
.cc-wrap { flex-wrap: wrap; }

/* Stapel — senkrecht mit gleichmäßigem Abstand. */
.cc-stack { display: flex; flex-direction: column; gap: var(--gap-md); }
.cc-stack-xs { gap: var(--gap-xs); }
.cc-stack-sm { gap: var(--gap-sm); }
.cc-stack-md { gap: var(--gap-md); }
.cc-stack-lg { gap: var(--gap-lg); }

/* Split — geteilte Flächen nebeneinander (Grid-Template kommt vom Baustein). Mobil 1-spaltig. */
.cc-split { display: grid; gap: var(--gap-md); align-items: start; }
.cc-split-pane { min-width: 0; }
@media (max-width:720px) { .cc-split { grid-template-columns: 1fr !important; } }

/* Entitäts-Zelle (Design::entityCell): Avatar/Icon links, Titel + Metazeile rechts.
   DIE Standard-Rolle für „Wer/Was"-Spalten in Listen (Kontakte, User, Tickets …). */
.cc-ent { display: flex; align-items: center; gap: var(--sp-5); min-height: var(--sz-40); min-width: var(--sz-280); }
.cc-ent-info { display: flex; flex-direction: column; gap: var(--sp-1); min-width: 0; }
/* Der Titel kürzt IMMER; wie viele Zeilen er dafür bekommt, sagt der BEHÄLTER über --cc-ent-lines
   (1 = einzeilig mit Auslassungspunkten, 2 = Tabellenzelle, 3 = Brett-Karte). Die Regel selbst steht
   nur hier: vorher setzten datatable und board sie je neu, mit eigenen Werten — drei Mitbesitzer
   derselben Rolle (Befund _ui-kernmodule[25]). */
.cc-ent-title { font-size: var(--fs-base); font-weight: var(--fw-bold); color: var(--ink);
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: var(--cc-ent-lines, 1);
  overflow: hidden; text-overflow: ellipsis; line-height: 1.25; }
.cc-ent-meta { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }
.cc-ent-meta-text { font-size: var(--fs-xs); color: var(--muted); white-space: nowrap; }
.cc-ent-tags { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2); }
.cc-ent-sep { color: var(--grey-300); font-size: var(--fs-2xs); }
.cc-ent-actions { display: flex; gap: var(--sp-3); }   /* 8 px statt 6 (layout 1.7.3): Knöpfe in einer Zeile nie enger als 8 px */

/* Stat-/KPI-Kachel (Design::stat): grosse Zahl + Beschriftung — EINE Kachel fürs ganze System. */
.cc-stat { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: var(--sp-5) var(--sp-6); }
.cc-stat-num { font-size: var(--fs-xl); font-weight: var(--fw-heavy); color: var(--ink); line-height: 1.2; }
.cc-stat-brand { color: var(--o); }
.cc-stat-label { font-size: var(--fs-xs); color: var(--muted); margin-top: var(--sp-1); }

/* Listenzeile (Design::listRow): Inhalt links, Aktionen IMMER rechtsbündig — EIN Muster für
   jede Aufzählung in Sidebars/Panels. Der Inhalt kürzt sich, die Knöpfe wandern nie. */
.cc-lrow { display: flex; align-items: center; gap: var(--gap-sm); padding: var(--sp-2) 0; min-width: 0; }
.cc-lrow + .cc-lrow { border-top: 1px solid var(--border); }
.cc-lrow-main { display: flex; align-items: center; gap: var(--gap-xs); flex: 1 1 auto; min-width: 0; overflow: hidden; }
.cc-lrow-main > * { min-width: 0; }
.cc-lrow-act { margin-left: auto; display: flex; align-items: center; gap: var(--sp-2); flex: 0 0 auto; }

/* Auswahl-Sperre während eines Zieh-Vorgangs (Trenner, Fenster) — als Klasse, nicht per JS-Stil. */
.cc-noselect, .cc-noselect * { user-select: none !important; }

/* Datenblatt (Design::sheetHead / Design::sheet) — EIN Kopf + EIN Akkordeon für Modul-Info,
   Systemansichten und Datensatz-Details in der Sidebar. Kein Modul baut seinen Kopf selbst. */
.cc-sheet { min-width: 0; }
.cc-sheet-head { display: flex; align-items: flex-start; gap: var(--sp-6); margin-bottom: var(--sp-6); }
.cc-sheet-ico { flex: 0 0 var(--sz-48); width: var(--sz-48); height: var(--sz-48); border-radius: var(--radius);
                background: var(--grey-100); color: var(--o); font-size: var(--fs-xl);
                display: inline-flex; align-items: center; justify-content: center; }
/* Bild-Kachel im Kopf (Design::sheetHead 'media'): Avatar/Bild füllt die Kachel randlos aus. */
.cc-sheet-ico-media { background: transparent; overflow: hidden; padding: 0; }
.cc-sheet-ico-media > * { width: 100%; height: 100%; font-size: inherit; }
/* Doppelte Klasse: .cc-avatar (avatar.css, später geladen) setzt sonst seine feste Grösse durch — der runde
   Avatar ragte über die kompakte Kachel (28 px) hinaus und wurde von ihrem overflow eckig abgeschnitten. */
.cc-sheet-ico.cc-sheet-ico-media > * { width: 100%; height: 100%; }
/* Trägt der Kopf ein Bild-ICON (Modul liefert ein App-Bild statt Glyph), ist das Bild selbst die Kachel:
   keine graue Fläche darunter, randlos füllend — sonst sähe man einen grauen Kasten um das App-Icon. */
.cc-sheet-ico:has(> img.cc-ico-img) { background: transparent; overflow: hidden; padding: 0; }
.cc-sheet-ico > img.cc-ico-img { width: 100%; height: 100%; }
.cc-sheet-main { flex: 1 1 auto; min-width: 0; }
.cc-sheet-title { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; min-width: 0; min-height: var(--sz-48); }
.cc-sheet-title h2 { margin: 0; font-size: var(--fs-xl); font-weight: var(--fw-heavy); color: var(--ink); line-height: 1.2; }
.cc-sheet-badges { display: inline-flex; align-items: center; gap: var(--sp-2); }
.cc-sheet-badges .badge-status { white-space: nowrap; }   /* im Kopf bricht eine Plakette nie um (in engen Tabellenzellen darf sie) */
.cc-sheet-intro { margin: var(--sp-2) 0 0; color: var(--muted); font-size: var(--fs-md); line-height: 1.5; }
/* Aktionsleiste: Knöpfe UND Schalter auf einer Mittellinie, umbrechend, mit Trennlinie zum Kopf. */
.cc-sheet-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-3);
                    padding: var(--sp-5) 0; border-top: 1px solid var(--grey-100); margin-bottom: var(--sp-6); }
/* KONTEXT-Regeln: wie sich Datenblatt-Teile IN einem Akkordeon-Körper verhalten (Klasse von acctab,
   im Manifest als ui_contract.uses genannt). Kein Besitz an fremdem Markup — fehlt acctab, greift
   der Selektor schlicht nicht. */
.accordion-body .cc-sheet-actions { border-top: 0; padding: 0; margin: 0; }
.accordion-body > .cs-intro + .cc-sheet-actions { margin-top: var(--sp-5); }
/* Kästchen mit Beschriftung (Design::check) — gilt ÜBERALL, nicht nur in der Fussleiste eines
   Datenblatts. Bis zum 15.09.2026 stand die Regel nur unter .cc-sheet-actions; wer die Klasse
   anderswo benutzte (das modules-Fenster tat es), bekam ein Kästchen ohne Ausrichtung. */
.cc-check { display: inline-flex; align-items: center; gap: var(--sp-3); margin: 0; cursor: pointer; }
/* Das Kästchen selbst: Markenfarbe und ohne Browser-Aussenrand (sonst sitzt es 3-4 px neben der
   Mittellinie) — genau wie das Radio (forms.css .cc-radio input). layout 1.7.3. */
.cc-check > input[type="checkbox"] { accent-color: var(--o); margin: 0; flex: 0 0 auto; }
/* ['after'] (Kern 2.9.5): Zusatz hinter der Beschriftung, z. B. Projekt-Labels — gleicher Abstand wie zwischen Häkchen und Text. */
.cc-check-after { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); }
/* Abhakliste (Design::check mit labelClass 'cc-check-strike'): Erledigtes bleibt stehen, durchgestrichen. */
.cc-check.cc-check-strike > input[type="checkbox"]:checked + span { text-decoration: line-through; color: var(--muted); }
.cc-sheet-spacer { flex: 1 1 auto; }
/* KOMPAKTE VARIANTE des Kopfes (.cc-sheet-kompakt) — für den Sidebar-Header: einzeilig, kleines
   Symbol, kein Einleitungstext. Sie steht HIER, weil der Datenblatt-Kopf hier definiert ist; bis
   13.09.2026 schrieb sidebar.css dieselben Teile noch einmal um (Befund _ui-kernmodule[24]: zwei
   Module besassen eine Rolle gemeinsam, niemand konnte sie allein ändern). Wer die Variante braucht,
   setzt die KLASSE — sidebar.js tut das beim Hochheben des Kopfes.
   GOLDENE REGEL G1 (Florian 12.09.2026): der Sidebar-Kopf ist IMMER EINZEILIG — Symbol, Titel,
   Kennung, Plaketten, Schliessen. Sonst nichts. Die Einleitung entfällt deshalb; ihr Text bleibt als
   Zeigetext am Titel erreichbar (Design::sheetHead). Die Aktionen stehen im FUSS (G2). */
.cc-sheet-kompakt .cc-sheet-head { margin: 0; align-items: center; gap: var(--sp-4); }
.cc-sheet-kompakt .cc-sheet-ico { flex-basis: var(--sz-28); width: var(--sz-28); height: var(--sz-28); font-size: var(--fs-md); }
.cc-sheet-kompakt .cc-sheet-title { min-height: var(--sz-28); flex-wrap: nowrap; }
.cc-sheet-kompakt .cc-sheet-intro { display: none; }
.cc-sheet-kompakt .cc-sheet-title h2 { min-width: 0; flex: 0 1 auto; white-space: nowrap; overflow: hidden;
                                       text-overflow: ellipsis; font-size: var(--fs-md); font-weight: var(--fw-bold); line-height: 1.3; }
.cc-sheet-kompakt .cc-sheet-title > .txt-mono, .cc-sheet-kompakt .cc-sheet-badges { flex: 0 0 auto; }

/* Im Sektionskörper: der letzte Block/die letzte Liste ohne Nachlauf — nichts klebt, nichts hängt über. */
.cc-sheet-body .accordion-body > .cs-sec:last-child { margin-bottom: 0; }
.cc-sheet-body .accordion-body > .cc-dl:last-child { margin-bottom: 0; }

/* Kachel (Design::tile / Design::tileGrid) — EINE klickbare Karte für Hubs und Raster
   (System, Programme, Flaggen). Rahmen, Hover, Schatten, Icon-Farbe NUR hier. */
.cc-tile-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--sz-260), 1fr)); gap: var(--sp-4); }
.cc-tile-grid-sm { grid-template-columns: repeat(auto-fill, minmax(var(--sz-120), 1fr)); gap: var(--sp-3); }
/* Wahl-Kacheln (tileGrid size md): ab 160px, damit vier Wahlen in einer Karte nebeneinander stehen. */
.cc-tile-grid-md { grid-template-columns: repeat(auto-fill, minmax(var(--sz-160), 1fr)); gap: var(--sp-3); }
.cc-tile { display: flex; flex-direction: column; gap: var(--sp-3); padding: var(--sp-5); min-width: 0;
           border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); cursor: pointer;
           transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
.cc-tile:hover { border-color: var(--o); box-shadow: var(--shadow-sm); }
.cc-tile-top { display: flex; align-items: center; gap: var(--sp-3); min-width: 0; }
.cc-tile-top > .txt-strong { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cc-tile-ico { font-size: var(--fs-lg); color: var(--o); flex: 0 0 auto; }
.cc-tile > .txt-muted { font-size: var(--fs-sm); line-height: 1.45; }
.cc-tile-off .cc-tile-ico { color: var(--muted); }
.cc-tile-disabled { cursor: default; opacity: var(--op-dim); }
.cc-tile-disabled:hover { border-color: var(--border); box-shadow: none; }
/* Bild-Kachel: kompakt, Bild oben, Text zentriert und einzeilig. */
.cc-tile-media { gap: var(--sp-1); padding: var(--sp-2); text-align: center; }
.cc-tile-media .cc-tile-top { justify-content: center; }
.cc-tile-media .cc-tile-top > .txt-strong { flex: 0 1 auto; }
.cc-tile-media > .txt-muted { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cc-tile-img { display: flex; align-items: center; justify-content: center; height: var(--sz-64); }
.cc-tile-img > img { max-width: 100%; max-height: 100%; object-fit: contain; }

/* Listenzeilen-Varianten (Design::listRow): compact = eng, ohne Trennlinie (Seitenspalten); reveal = Aktionen
   erst beim Zeigen; clickable = ganze Zeile klickbar (Zeiger + Hover-Fläche). */
.cc-lrow-compact { padding: var(--sp-1) 0; }
.cc-lrow-compact + .cc-lrow-compact { border-top: 0; }
.cc-lrow-reveal .cc-lrow-act { opacity: 0; transition: opacity var(--dur-fast); }
.cc-lrow-reveal:hover .cc-lrow-act, .cc-lrow-reveal:focus-within .cc-lrow-act { opacity: 1; }
.cc-lrow-click { cursor: pointer; border-radius: var(--radius); padding-left: var(--sp-2); padding-right: var(--sp-2); }
.cc-lrow-click:hover { background: var(--grey-100); }
.cc-lrow-wrap > .cc-lrow-main { flex-wrap: wrap; }

/* Auswahl-Zeile (Design::pickRow) — EINE gilt: Farbpunkt + Name, Zeigen grau, gewählt grün mit Häkchen. */
.cc-pick { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-2); margin: 0 calc(-1 * var(--sp-2));
           border-radius: var(--radius); cursor: pointer; color: var(--grey-700); font-size: var(--fs-base); }
.cc-pick:hover { background: var(--grey-100); color: var(--ink); }
.cc-pick .cc-swatch { width: var(--sz-12); height: var(--sz-12); border-radius: 50%; flex: none; }
.cc-pick-label { flex: 1 1 auto; }
.cc-pick-on, .cc-pick-on:hover { background: var(--ok-bg); color: var(--ink); font-weight: var(--fw-bold); }
.cc-pick-check { color: var(--ok); }

/* Beitrag (Design::comment) — Avatar links, Kopfzeile (Name · Zeit · #Nr · Plaketten · Aktionen beim Zeigen), Inhalt. */
.cc-cmt { display: flex; gap: var(--sp-4); padding: var(--sp-5) 0; border-bottom: 1px solid var(--grey-100); }
.cc-cmt-lead { flex: 0 0 auto; }
.cc-cmt-main { flex: 1 1 auto; min-width: 0; }
.cc-cmt-head { display: flex; align-items: center; gap: var(--sp-3); margin-bottom: var(--sp-2); flex-wrap: wrap; }
.cc-cmt-author { font-weight: var(--fw-bold); color: var(--ink); }
.cc-cmt-date, .cc-cmt-num { color: var(--muted); font-size: var(--fs-sm); }
.cc-cmt-acts { display: inline-flex; align-items: center; gap: var(--sp-1); opacity: 0; transition: opacity var(--dur-fast); }
.cc-cmt:hover .cc-cmt-acts, .cc-cmt:focus-within .cc-cmt-acts { opacity: 1; }
/* Antwort: eingerückt unter ihrem Beitrag, hellere Trennlinie. Systemeintrag: kompakt, Inhalt kursiv + grau. */
.cc-cmt-reply { margin-left: var(--sz-52); border-bottom-color: var(--grey-50); }
.cc-cmt-sys { padding: var(--sp-3) 0; }
.cc-cmt-sys .cc-rich { font-style: italic; color: var(--muted); }

/* Ereignis-Zeile (Design::feedItem) — Uhrzeit · Avatar · Satz (+ Auszug) · rechts der Ort. */
.cc-feed { display: flex; align-items: flex-start; gap: var(--sp-4); padding: var(--sp-3) 0; border-bottom: 1px solid var(--grey-100); }
.cc-feed-time { flex: 0 0 var(--sz-44); color: var(--muted); font-size: var(--fs-sm); padding-top: var(--sp-1); }
.cc-feed-main { flex: 1 1 auto; min-width: 0; }
.cc-feed-line { color: var(--ink); }
.cc-feed-excerpt { color: var(--muted); font-size: var(--fs-sm); margin-top: var(--sp-1); }
.cc-feed-aside { flex: 0 0 auto; max-width: var(--sz-240); text-align: right; color: var(--muted); font-size: var(--fs-2xs);
                 text-transform: uppercase; letter-spacing: var(--tracking); padding-top: var(--sp-1); }

/* Rubrik einer Seitenspalte (Design::rubric) — versale Beschriftung, Inhalt, Trennlinie. */
.cc-rubric { display: flex; flex-direction: column; gap: var(--sp-2); padding-bottom: var(--sp-5); border-bottom: 1px solid var(--border); min-width: 0; }
/* Seitenspalte (Design::aside) — grauer Grund, Trennlinie zur Hauptfläche; schmal oben statt links. */
.cc-aside { background: var(--grey-50); border-left: 1px solid var(--border); }
@media (max-width: 900px) { .cc-aside { border-left: 0; border-top: 1px solid var(--border); } }
/* Kopfband (Design::band) — leicht abgesetzte Fläche, grau → weiss. */
.cc-band { background: linear-gradient(to bottom, var(--grey-50) 0%, var(--surface) 100%); }
/* Modus-Balken (Design::modeBar) — senkrechte Farbleiste mit gedrehter, versaler Beschriftung. */
.cc-modebar { display: flex; align-items: center; justify-content: center; transition: background var(--dur); }
.cc-modebar-brand { background: var(--o); }
.cc-modebar-info { background: var(--info); }
.cc-modebar-text { writing-mode: vertical-rl; transform: rotate(180deg); font-size: var(--fs-2xs); font-weight: var(--fw-bold);
                   text-transform: uppercase; letter-spacing: var(--tracking); color: var(--surface); white-space: nowrap; }
/* Senkrechter Trenner in Meta-Zeilen (Design::vsep). */
.cc-vsep { display: inline-block; width: 1px; height: var(--sz-14); background: var(--border); flex: none; }
/* Datei-Kachel (Design::fileTile) — Bildvorschau oder Symbol + Endung. */
.cc-ftile { width: var(--sz-100); height: var(--sz-72); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden;
            display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--sp-1);
            background: var(--surface); color: var(--muted); text-decoration: none; transition: box-shadow var(--dur-fast); }
.cc-ftile:hover { box-shadow: var(--shadow-sm); color: var(--ink); }
.cc-ftile img { width: 100%; height: 100%; object-fit: cover; }
.cc-ftile-ext { font-size: var(--fs-2xs); font-weight: var(--fw-bold); }
/* Mulde — Zustandsklasse (z.B. ein Verfasser, der als Antwort unter einen Beitrag gewandert ist). */
.cc-well { padding: var(--sp-4); border: 1px solid var(--border); border-radius: var(--radius); background: var(--grey-50); }

/* MEHRZEILIGE LISTENZEILE (Design::entryRow / entryGroup) — die Listenzeilen-Variante mit drei Textzeilen:
   Bildmarke links, Titel + Randangabe in der ersten Zeile, darunter eine hervorgehobene und eine leise Zeile,
   am Ende Zusatzzeichen. `betont` hebt die zweite Zeile fett und setzt einen Marken-Punkt, `active` hinterlegt
   die Zeile mit Markenkante links (die Kante darf das aufrufende Modul zur Laufzeit mit einer Datenfarbe füllen).
   Bewusst OHNE Begriffe einer Fachdomäne: das Muster trägt Nachrichten genauso wie Belege oder Ereignisse. */
.cc-erow { position: relative; display: flex; gap: var(--sp-3); padding: var(--sp-4); border-bottom: 1px solid var(--border);
          border-left: 3px solid transparent; cursor: pointer; background: var(--surface); }
.cc-erow:hover { background: var(--surface-2); }
.cc-erow.active { background: var(--surface-2); border-left-color: var(--o); }
.cc-erow-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--sp-1); }
.cc-erow-top { display: flex; align-items: baseline; gap: var(--sp-2); }
.cc-erow-title { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); }
.cc-erow-aside { flex: 0 0 auto; color: var(--muted); }
.cc-erow-strong, .cc-erow-soft { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cc-erow-strong { color: var(--text); }
.cc-erow.betont .cc-erow-strong { font-weight: var(--fw-bold); }
.cc-erow-soft { color: var(--muted); }
.cc-erow-meta { display: flex; align-items: center; gap: var(--sp-2); min-height: calc(var(--lh) * 1em); color: var(--muted); }   /* eine Textzeile hoch, auch wenn nur Punkte/Icons drinstehen */
.cc-erow > .cc-erow-dot { flex: 0 0 auto; align-self: center; }
.cc-erow-group { display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-2) var(--sp-4);
                background: var(--surface-2); color: var(--muted); position: sticky; top: 0; z-index: var(--z-raised); }

/* ── Viewer / Medien (Design::stack divided, pane, stage, metaLine, thumb, mediaCard, divider, floatbar) ── */
/* Stapel mit Trennlinien: Abschnitte ohne Abstand, feine Linie dazwischen (Innenabstände setzt das Modul). */
.cc-stack.cc-stack-divided { gap: 0; }
.cc-stack-divided > * + * { border-top: 1px solid var(--grey-100); }
/* Fläche einer Arbeitsansicht — weisser Grund + EINE Trennlinie zur Nachbarfläche. */
.cc-pane { background: var(--surface); }
.cc-pane-top { border-top: 1px solid var(--border); }
.cc-pane-bottom { border-bottom: 1px solid var(--border); }
.cc-pane-left { border-left: 1px solid var(--border); }
.cc-pane-right { border-right: 1px solid var(--border); }
/* Bühne eines Viewers — neutraler Grund unter Bild/PDF/Dokument. */
.cc-stage { background: var(--grey-200); }
/* Meta-Zeile: Symbol + Angabe; xs = kleine graue Zeile (Herkunft). */
.cc-metaline { display: flex; align-items: center; gap: var(--sp-3); font-size: var(--fs-base); color: var(--grey-700); }
.cc-metaline > .cc-ico { font-size: var(--fs-lg); color: var(--muted); }
.cc-metaline.cc-metaline-xs { align-items: flex-start; gap: var(--sp-2); font-size: var(--fs-xs); color: var(--muted); }
.cc-metaline-xs > .cc-ico { font-size: inherit; }
.cc-metaline[hidden] { display: none; }
/* Vorschau-Kachel eines Filmstreifens: Rahmen = Zustand (aktiv Marke, geteilt grün). */
.cc-thumb { width: var(--sz-64); height: var(--sz-64); flex-shrink: 0; border: 2px solid transparent; border-radius: var(--radius); overflow: hidden;
            display: flex; align-items: center; justify-content: center; background: var(--grey-100); cursor: pointer;
            transition: all var(--dur); text-decoration: none; position: relative; }
.cc-thumb:hover { border-color: var(--grey-300); text-decoration: none; }
.cc-thumb.cc-thumb-active { border-color: var(--o); }
.cc-thumb.cc-thumb-ok { border-color: var(--ok); }
.cc-thumb.cc-thumb-ok:hover { border-color: var(--ok-h); }
.cc-thumb.cc-thumb-ok.cc-thumb-active { border-color: var(--ok); }
.cc-thumb img { width: 100%; height: 100%; object-fit: cover; }
.cc-thumb.cc-thumb-contain { width: auto; min-width: var(--sz-64); max-width: calc(var(--sz-64) * 3); padding: var(--sp-1); }
.cc-thumb.cc-thumb-contain img { object-fit: contain; }
.cc-thumb-ico { font-size: var(--fs-xl); opacity: var(--op-half); }
/* Ecken-Marke (Design::iconDot ['size'=>'sm']) auf Kachel und Karte. */
.cc-thumb > .cc-icon-dot, .cc-mcard-media > .cc-icon-dot { position: absolute; top: 3px; right: 3px; z-index: var(--z-base); opacity: var(--op-muted); pointer-events: none; }
.cc-thumb:hover > .cc-icon-dot { opacity: var(--op-strong); }
.cc-mcard-media > .cc-icon-dot { top: 5px; right: 5px; width: var(--sz-20); height: var(--sz-20); }
/* Medien-Karte einer Galerie. */
.cc-mcard { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden;
            cursor: pointer; transition: border-color var(--dur), box-shadow var(--dur); text-decoration: none; color: inherit; position: relative; }
.cc-mcard:hover { border-color: var(--grey-300); box-shadow: var(--shadow-sm); text-decoration: none; }
.cc-mcard.cc-mcard-active { border-color: var(--o); }
.cc-mcard.cc-mcard-ok { border-color: var(--ok); }
.cc-mcard.cc-mcard-ok:hover { border-color: var(--ok-h); }
.cc-mcard.cc-mcard-ok.cc-mcard-active { border-color: var(--ok); }
.cc-mcard-media { height: var(--sz-200); display: flex; align-items: center; justify-content: center; background: var(--grey-100); overflow: hidden; position: relative; }
.cc-mcard-media img { width: 100%; height: auto; object-fit: cover; object-position: top; min-height: 100%; }
.cc-mcard-ico { font-size: var(--fs-display); opacity: var(--op-dim); }
.cc-mcard-body { padding: var(--sp-3) var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-1); min-height: 0; border-top: 1px solid var(--grey-100); }
.cc-mcard-title { font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 1.3; }
.cc-mcard-meta { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-2xs); color: var(--muted); line-height: 1.3; }
.cc-mcard-kind { display: inline-flex; align-items: center; gap: var(--sp-1); font-weight: var(--fw-heavy); text-transform: uppercase; letter-spacing: var(--tracking); }
.cc-mcard-kind > .cc-ico { font-size: var(--fs-xs); }
.cc-mcard-foot { display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-1) var(--sp-4) var(--sp-3); flex-wrap: wrap; min-height: 0; }
.cc-mcard-foot:empty { display: none; }
/* Zwischenüberschrift mit Linie (Zeitgruppen einer Galerie). */
.cc-divider { display: flex; align-items: center; gap: var(--sp-4); padding: var(--sp-1) var(--sp-1) var(--sp-4); }
.cc-divider-label { font-size: var(--fs-xs); font-weight: var(--fw-heavy); color: var(--o); text-transform: uppercase; letter-spacing: var(--tracking); white-space: nowrap; }
.cc-divider-line { flex: 1; height: 1px; background: color-mix(in srgb, var(--o) 25%, transparent); }
/* Schwebende dunkle Werkzeugleiste (Zeichnen über einem Bild). Lage setzt das Modul. */
.cc-floatbar { display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-3) var(--sp-6); border-radius: var(--radius);
               background: color-mix(in srgb, var(--grey-900) 92%, transparent); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
               box-shadow: var(--shadow-lg); }
.cc-floatbar-group { display: flex; align-items: center; gap: var(--sp-1); }
.cc-floatbar-sep { width: 1px; height: var(--sz-24); background: color-mix(in srgb, var(--surface) 15%, transparent); margin: 0 var(--sp-1); flex: none; }

/* Trenngriff (Design::splitter) — ziehbare Linie zwischen zwei Spalten; beim Zeigen/Ziehen in Markenfarbe. */
.cc-splitter { flex: 0 0 var(--sz-6); cursor: col-resize; background: var(--border); opacity: var(--op-half); }
.cc-splitter:hover, .cc-splitter.cc-splitting { opacity: 1; background: var(--o); }
/* VARIANTE „auf Fensterrahmen" (Design::splitter ['tone'=>'chrome']): der Griff zwischen Rail und
   Inhalt ruht in der Rahmenfarbe statt als heller Strich, Hover bleibt orange (Doktrin D3). Die
   Regel stand bis zum 15.09.2026 im windownav-Modul und überschrieb von dort den Kern-Baustein —
   zwei Erscheinungen desselben Griffs, die zweite nur über die Ladereihenfolge gesichert. Jetzt ist
   es eine benannte Variante beim Eigentümer, und windownav bittet nur noch darum. */
.cc-splitter.cc-splitter-chrome { background: var(--chrome); opacity: 1; }
.cc-splitter.cc-splitter-chrome:hover, .cc-splitter.cc-splitter-chrome.cc-splitting { background: var(--o); }
/* Fussleiste (Design::footBar) — Aktionen am unteren Rand eines Fensters/Formulars. */
.cc-footbar { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-4) var(--sp-5); border-top: 1px solid var(--border); background: var(--grey-50); }

/* Die DESKTOP-KACHEL (.cc-widget*) samt Notizzettel-Variante steht seit 13.09.2026 im eigenen
   UI-Kernmodul 'widget'. Sie ist die Optik einer Sache des Desktops und gehört nicht in das Modul
   für Anordnung; ausserdem stylte sie hier .cc-deskwidgets (Kern) und .form-control (forms) mit —
   drei fremde Besitzer in einer Regel (Befund _ui-kernmodule[2]). */

/* Abgeschottete HTML-Vorschau (Design::htmlFrame) — Mail-/Vorlagen-Rumpf im iframe, gerahmt auf weissem Grund. */
.cc-htmlframe { display: block; width: 100%; min-height: var(--sz-440); border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }

/* Überblend-Feld (Design::overlay) — Scrim mit mittigem Inhalt über einer positionierten Fläche
   (Hinweis/Medium über einem Terminal). Öffnen/Schliessen (cc-hidden) und position:relative der
   Trägerfläche macht das nutzende Modul. */
.cc-ovl { position: absolute; inset: 0; z-index: var(--z-raised); display: flex; align-items: center; justify-content: center;
  background: var(--scrim); backdrop-filter: blur(2px); border-radius: inherit; }
.cc-ovl-inner { position: relative; width: 100%; height: 100%; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: var(--sp-3); padding: var(--sp-6); box-sizing: border-box;
  text-align: center; color: var(--grey-100); }
.cc-ovl-close { position: absolute; top: var(--sp-2); right: var(--sp-2); }
.cc-ovl-meta { position: absolute; top: var(--sp-2); left: var(--sp-3); font-size: var(--fs-xs); color: var(--grey-300); }
.cc-ovl-note { font-size: var(--fs-lg); font-weight: var(--fw-med); line-height: var(--lh); max-width: var(--sz-500); }
.cc-ovl-media { width: 100%; height: 100%; }
.cc-ovl-media iframe { width: 100%; height: 100%; border: 0; border-radius: var(--radius); }

/* Das CHAT-Aussehen (.cc-chat*) steht seit 13.09.2026 im eigenen UI-Kernmodul 'chat' —
   es ist die Optik EINER Fachdomäne und gehört nicht in das Modul für Anordnung
   (Befund _ui-kernmodule[1]). Ohne Chat-Modul bleibt hier kein totes CSS mehr stehen. */

/* ── MUSTER-GRUND (Design::muster, seit layout 1.7.0) ─────────────────────────────────────────────
   Punkt-/Zahlenraster als gecachte Datei (img/muster.svg) per CSS-Maske — keine IDs im Dokument, also
   beliebig viele Fenster mit Muster nebeneinander. Der Ton hängt an der FLÄCHE (data-ton), nicht am
   Element: Custom Properties erben nur nach unten, deshalb trägt, wer den Verlauf trägt
   (.cc-muster-flaeche), dasselbe data-ton wie das Muster darin. Die Werte (--muster-nacht-*,
   --muster-beige-*) sind Kern-Tokens; Module tragen nur data-ton, sie setzen keine Muster-Tokens. */
@property --nb-winkel { syntax: '<angle>'; inherits: true; initial-value: 150deg; }
@keyframes nb-winkel { to { --nb-winkel: 510deg; } }
[data-ton=mitternacht] { --muster-grund-1: var(--muster-nacht-1); --muster-grund-2: var(--muster-nacht-2); --muster-tinte: var(--muster-nacht-tinte); --muster-staerke: var(--muster-nacht-staerke); --muster-vignette: var(--muster-nacht-vignette); --muster-vignette-rgb: var(--muster-nacht-vignette-rgb); }
[data-ton=beige] { --muster-grund-1: var(--muster-beige-1); --muster-grund-2: var(--muster-beige-2); --muster-tinte: var(--muster-beige-tinte); --muster-staerke: var(--muster-beige-staerke); --muster-vignette: var(--muster-beige-vignette); --muster-vignette-rgb: var(--muster-beige-vignette-rgb); }
.cc-muster { position: absolute; inset: 0; pointer-events: none; }
.cc-muster::before { content: ''; position: absolute; inset: 0; background-color: var(--muster-tinte); opacity: var(--muster-staerke);
  -webkit-mask: url(/modules/layout/design/css/../img/muster.svg) center/cover no-repeat; mask: url(/modules/layout/design/css/../img/muster.svg) center/cover no-repeat; }
.cc-muster::after { content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse 72% 72% at 50% 50%, transparent 42%, rgba(var(--muster-vignette-rgb), var(--muster-vignette)) 100%); }
/* Der Verlauf mit dem langsam drehenden Winkel liegt auf der Fläche, die das Muster trägt. */
.cc-muster-flaeche { background: linear-gradient(var(--nb-winkel), var(--muster-grund-1), var(--muster-grund-2));
  animation: nb-winkel var(--nb-dauer, var(--dur-ambient)) linear infinite; }
[data-cc-muster-still] { animation: none; }
@media (prefers-reduced-motion: reduce) { .cc-muster-flaeche { animation: none; } }

/* Nur für Bildschirmleser (Design::srStatus): sichtbar ausgeblendet, vorgelesen wird es trotzdem. */
.cc-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: 0; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Weiches Ausblenden am oberen Rand einer scrollenden Fläche (Inhalt unter einer Werkzeugleiste). */
.cc-fade-top { -webkit-mask-image: linear-gradient(to bottom, transparent, currentColor var(--sz-24));
  mask-image: linear-gradient(to bottom, transparent, currentColor var(--sz-24)); }

/* Verbindungsblock (Design::verbindung): Knoten — Leitung — Mittel-Symbol — Leitung — Knoten. Der Zustand
   steht als Farbe UND als Symbol (nie nur Farbe); der wandernde Punkt zeigt „verbindet", bei
   reduzierter Bewegung steht er. */
.cc-verbindung { display: flex; align-items: center; gap: var(--sp-2); --cc-vb: var(--muted); }
.cc-verbindung-ok { --cc-vb: var(--ok); }
.cc-verbindung-verbinde { --cc-vb: var(--warn); }
.cc-verbindung-fehler { --cc-vb: var(--danger); }
.cc-vb-knoten { flex: 0 0 var(--sz-44); width: var(--sz-44); height: var(--sz-44); display: flex; align-items: center; justify-content: center; }
.cc-vb-leitung { position: relative; flex: 1 1 auto; min-width: var(--sz-24); height: 0; border-top: 2px solid var(--cc-vb); }
.cc-verbindung-aus .cc-vb-leitung, .cc-verbindung-na .cc-vb-leitung { border-top-style: dashed; }
.cc-vb-mitte { flex: 0 0 var(--sz-28); width: var(--sz-28); height: var(--sz-28); display: flex; align-items: center; justify-content: center;
  border-radius: var(--radius-pill); border: 1px solid var(--cc-vb); color: var(--cc-vb); background: var(--surface); font-size: var(--fs-md); }
.cc-vb-punkt { position: absolute; top: calc(var(--sz-6) / -2); left: 0; width: var(--sz-6); height: var(--sz-6); border-radius: var(--radius-pill); background: var(--cc-vb); display: none; }
.cc-verbindung-verbinde .cc-vb-punkt { display: block; animation: cc-vb-wandern var(--dur-drift) linear infinite; }
@keyframes cc-vb-wandern { from { left: 0; } to { left: calc(100% - var(--sz-6)); } }
@media (prefers-reduced-motion: reduce) { .cc-verbindung-verbinde .cc-vb-punkt { animation: none; left: calc(50% - var(--sz-6) / 2); } }
.cc-vb-zustand { flex: 0 0 auto; color: var(--cc-vb); font-size: var(--fs-sm); }

/* ── WAHL-KACHELN (Design::pickTile/pickGrid/pickTileTpl) ──────────────────────────────────────────
   EIN querformatiger Baustein für die drei Konto-Sidebar-Bereiche (Theme, Hintergrund, Widgets), die
   Hintergrund-Anwendung und die Widget-Vorschau. 1:1 aus der bewährten .wp-tile-Fassung gehoben, damit
   alle drei identisch aussehen. Aktiv = NUR ein farbiger Rahmen (kein Label, kein Haken, KEIN Schatten
   — so bleibt „aktiv" eindeutig von „hover" unterscheidbar). Breite kommt voll aus dem Raster. */
.cc-pickgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--sz-220), 1fr)); gap: var(--sp-6); }
.cc-picktile { position: relative; display: flex; flex-direction: column; gap: var(--sp-2); cursor: pointer; }
.cc-picktile-pic { width: 100%; aspect-ratio: 16 / 10; border-radius: var(--radius); border: 2px solid var(--border);
  overflow: hidden; background-size: cover; background-position: center;
  transition: transform var(--dur-fast), box-shadow var(--dur-fast), border-color var(--dur-fast); }
/* Hover: nur Lift + Schatten, Rahmen NICHT einfärben — sonst sähe Hover wie Aktiv aus. */
.cc-picktile:hover .cc-picktile-pic { transform: translateY(-2px); box-shadow: var(--shadow-md); }
/* Aktiv: ausschliesslich der farbige Rahmen. */
.cc-picktile.is-active .cc-picktile-pic { border-color: var(--o); }
.cc-picktile-cap { font-size: var(--fs-sm); color: var(--ink); font-weight: var(--fw-med); text-align: center;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cc-picktile-rm { position: absolute; top: var(--sp-3); right: var(--sp-3); width: var(--sz-22); height: var(--sz-22);
  border-radius: 50%; border: 1px solid var(--surface); background: var(--grey-700); color: var(--surface);
  font-size: var(--fs-base); line-height: 1; cursor: pointer; padding: 0; display: none; align-items: center;
  justify-content: center; transition: background var(--dur-fast); z-index: var(--z-raised); }
.cc-picktile:hover .cc-picktile-rm { display: inline-flex; }
.cc-picktile-rm:hover { background: var(--danger); }
/* Live-Vorschau (W): das GANZE Widget skaliert sichtbar, kein 16/10-Schnitt, Klicks gesperrt. */
.cc-picktile--live .cc-picktile-pic { aspect-ratio: auto; height: auto; min-height: 0; }
/* zoom (nicht transform) verkleinert AUCH die Layout-Grösse → die Kachel wird exakt so hoch wie das
   verkleinerte Widget, ohne Leerraum darunter (transform hätte die volle, ungeschrumpfte Höhe behalten).
   Das Desktop-Widget ist position:absolute (Platzierung auf dem Schreibtisch) — in der Vorschau steht
   es wieder im Fluss, sonst trüge .cc-picktile-live kein Kind und die Kachel fiele auf 0 Höhe. zoom ist
   in Chromium und WebKit deckungsgleich (isoliert geprüft). Breite: 100%/Faktor, von zoom auf 100%
   zurückskaliert → die Vorschau füllt die Kachelbreite. */
.cc-picktile-live { zoom: var(--cc-pick-scale, .42); width: calc(100% / var(--cc-pick-scale, .42)); pointer-events: none; }
/* Das eingehängte Widget (einziges Kind) wieder in den Fluss holen — generisch über „direktes Kind",
   OHNE eine fremde Modul-Klasse zu nennen (das wäre eine undeklarierte, zudem rückwärtige Abhängigkeit
   von layout auf dashboard). Zwei Klassen Spezifität schlagen die position:absolute-Regel des Widgets. */
.cc-picktile--live .cc-picktile-live > * { position: static; }
.cc-picktile-shield { position: absolute; inset: 0; z-index: var(--z-raised); }
/* Hinzufügen-Kachel im selben Raster (gestrichelter Rahmen, großes +) — z. B. Upload eines eigenen
   Hintergrundbilds; kein 16/10-Bild, sondern eine Aktionsfläche. */
.cc-picktile--add .cc-picktile-pic { border-style: dashed; display: flex; align-items: center; justify-content: center;
  background: var(--surface); color: var(--muted); font-size: var(--fs-xl); font-weight: var(--fw-med); }
.cc-picktile--add:hover .cc-picktile-pic { border-color: var(--o); color: var(--o); transform: none; box-shadow: none; }

/* buttons.css — Global button styles */

/* btn-assign (orange action button) */
.btn-assign{background:var(--o);color:var(--surface);border:none;padding:var(--sp-2) var(--sp-6);font-size:var(--fs-sm);font-weight:var(--fw-bold);border-radius:var(--radius);cursor:pointer;transition:background var(--dur-fast)}
.btn-assign:hover{background:var(--o-h)}

/* btn-cancel (gray cancel button — gleiche Höhe wie btn-assign) */
.btn-cancel{background:var(--grey-500);color:var(--surface);border:none;padding:var(--sp-2) var(--sp-6);font-size:var(--fs-sm);font-weight:var(--fw-bold);border-radius:var(--radius);cursor:pointer;transition:background var(--dur-fast)}
.btn-cancel:hover{background:var(--grey-600)}

/* btn-save (green save button — gleiche Höhe wie btn-assign) */
.btn-save{background:var(--ok);color:var(--surface);border:none;padding:var(--sp-2) var(--sp-6);font-size:var(--fs-sm);font-weight:var(--fw-bold);border-radius:var(--radius);cursor:pointer;transition:background var(--dur-fast)}
.btn-save:hover{background:var(--ok-h)}

/* ac-btn-action (small icon action button — square, gray, rounded) */
.ac-btn-action{width:var(--sz-32);height:var(--sz-32);display:inline-flex;align-items:center;justify-content:center;border:none;background:var(--grey-100);color:var(--grey-600);border-radius:var(--radius);cursor:pointer;text-decoration:none;padding:0;font-size:var(--fs-md);line-height:1;transition:background var(--dur-fast),color var(--dur-fast)}
.ac-btn-action:hover{background:var(--grey-200);color:var(--grey-700)}
/* Die Höhenangleichung des Icon-Knopfes IN EINER FELDZEILE steht jetzt bei forms
   (modules/forms/design/css/forms.css) — dort, wo die Feldzeile definiert ist. Sie stand hier und
   griff über .mage-field-body in fremdes Eigentum; als requires wäre daraus ein Ring geworden
   (forms braucht buttons für die Knopf-Rollen). Die Feldzeile hat damit EINEN Eigentümer.
   (14.09.2026) */

/* mage-btn-add (Orange Action Button - Subnav) */
/* Voll-Action-Buttons teilen EXAKT eine Höhe (36px) = Control-Höhe → bündig mit Inputs + untereinander
   identisch (kein „unten kleiner als oben"). Nur Farbe unterscheidet. Kleine Varianten (-sm/-action) separat. */
.mage-btn-add, .mage-btn-danger, .mage-btn-neutral, .mage-btn-light,
.btn-save, .btn-cancel, .btn-assign {
    height:var(--sz-36);
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
}
.mage-btn-add {
    background: var(--o);
    color: var(--surface);
    border: none;
    text-decoration: none;
    padding:var(--sp-1) var(--sp-7);
    font-size:var(--fs-md);
    font-weight:var(--fw-bold);
    border-radius:var(--radius);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap:var(--sp-2);
    transition: background var(--dur-fast);
    white-space: nowrap;
}

.mage-btn-add:hover {
    background: var(--o-h);
    color: var(--surface);
}

.mage-btn-add i {
    font-size:var(--fs-md);
}

/* mage-btn-add-sm (Small add button variant – same height as toolbar buttons) — die Höhe war nur
   versprochen, nicht gesetzt (≈27 px neben 32-px-Werkzeugknöpfen). Jetzt EXAKT die Höhe von .ac-btn-action. */
.mage-btn-add-sm {
  height: var(--sz-32);
  box-sizing: border-box;
  background: var(--o);
  color: var(--surface);
  border: none;
  text-decoration: none;
  padding:var(--sp-2) var(--sp-6);
  font-size:var(--fs-base);
  font-weight:var(--fw-bold);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap:var(--sp-1);
  transition: background var(--dur-fast);
  white-space: nowrap;
  border-radius:var(--radius);
}

.mage-btn-add-sm:hover {
  background: var(--o-h);
  color: var(--surface);
}

.mage-btn-add-sm i {
  font-size:var(--fs-base);
}


/* === Button-Hardening 2026-07-08: btn-cancel/btn-save/btn-assign als <a> mit Icon sauber
   rendern (kein Underline, Icon vertikal zentriert) — analog mage-btn-add.
   Wirkt ERP-weit, aendert Text-only-Buttons optisch nicht. === */
.btn-assign, .btn-cancel, .btn-save { text-decoration: none; display: inline-flex; align-items: center; gap:var(--sp-2); }
.btn-assign i, .btn-cancel i, .btn-save i { font-size:var(--fs-base); line-height: 1; }

/* mage-btn-danger (globaler Danger/Delete-Button — rot) — Analyse 2026-07-09 */
/* Voll-Action-Buttons teilen EXAKT eine Grösse (padding 9px 18px / 14px) — nur die Farbe unterscheidet.
   So stehen Öffnen/Neutral/Danger nie in verschiedenen Höhen nebeneinander. Klein = *-sm / btn-sm. */
.mage-btn-danger{background:var(--danger);color:var(--surface);border:none;text-decoration:none;padding:var(--sp-3) var(--sp-7);font-size:var(--fs-md);font-weight:var(--fw-bold);border-radius:var(--radius);cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-2);transition:background var(--dur-fast);white-space:nowrap}
.mage-btn-neutral{background:var(--grey-500);color:var(--surface);border:none;text-decoration:none;padding:var(--sp-3) var(--sp-7);font-size:var(--fs-md);font-weight:var(--fw-bold);border-radius:var(--radius);cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-2);transition:background var(--dur-fast);white-space:nowrap}
.mage-btn-neutral:hover{background:var(--grey-600);color:var(--surface)}
.mage-btn-danger:hover{background:var(--danger-h);color:var(--surface)}
.mage-btn-danger i{font-size:var(--fs-base)}

/* mage-btn-light — helle Toolbar-Button-Variante (weiss, Rand, dunkler Text + Icon).
   Für Toolbar-Controls wie Filter/Spalten/Export. Gleiche Höhe wie die Voll-Buttons (padding 9px). */
.mage-btn-light{background:var(--surface);color:var(--grey-700);border:1px solid var(--border);text-decoration:none;padding:var(--sp-3) var(--sp-6);font-size:var(--fs-base);font-weight:var(--fw-med);border-radius:var(--radius);cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-2);transition:background var(--dur-fast);white-space:nowrap}
.mage-btn-light:hover{background:var(--grey-100);color:var(--grey-700)}
.mage-btn-light i{font-size:var(--fs-md)}

/* Upload-Button (Design::uploadBtn): Kern-Button als <label>, das File-Input bleibt unsichtbar. */
.cc-upload-btn input[type=file] { display: none; }

/* Ton-Hover-Varianten für Aktions-Buttons (Design::iconBtn tone) — Kanalfarben beim Hover. */
.ac-btn-action.ac-btn-ok:hover{background:var(--ok-bg);color:var(--ok)}
.ac-btn-action.ac-btn-info:hover{background:var(--info-bg);color:var(--info-text)}
.ac-btn-action.ac-btn-accent:hover{background:var(--accent-2-bg);color:var(--accent-2)}
.ac-btn-action.ac-btn-danger:hover{background:var(--danger-bg);color:var(--danger)}
/* Deaktivierter Aktions-Button — EINE System-Optik (Design::iconBtn ['disabled'=>true]). */
.ac-btn-action:disabled{opacity:var(--op-faint);cursor:default;pointer-events:none}
/* Scharfgeschalteter Icon-Knopf (data-cc-confirm, erster Klick): er trägt jetzt den Bestätigungssatz. Statt 32 × 32 einzeilig
   (lief über Zelle und Sidebar hinaus) wächst er bis --sz-160 und bricht um; Höhe mindestens wie sonst (buttons 1.11.0). */
/* Nachbarn bleiben 32 px (flex-shrink:0 unten): der scharfe Knopf nimmt den Rest der Zeile, Wörter trennt die Silbentrennung
   statt mitten im Wort zu brechen; in einer schmalen Aktionen-Spalte steht das Zeichen über dem Text (column), damit ganze Wörter passen. */
.ac-btn-action{flex-shrink:0}
.ac-btn-action[data-cc-scharf]{width:auto;height:auto;min-height:var(--sz-32);max-width:var(--sz-160);flex:1 1 auto;flex-direction:column;white-space:normal;text-align:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);font-size:var(--fs-xs);line-height:var(--lh);overflow-wrap:break-word}
/* Link-Button (Design::linkBtn) — klickbare Textaktion, z.B. „Bild entfernen". */
.cc-link-btn{background:none;border:0;padding:0;font:inherit;cursor:pointer;color:var(--info-text);text-decoration:none;display:inline-flex;align-items:center;gap:var(--sp-2)}
.cc-link-btn:hover{text-decoration:underline}
.cc-link-btn.cc-link-danger{color:var(--danger)}

/* Segmented-Control (Design::segmented) — Icon/Label-Toggle-Gruppe, EINER aktiv (Ansichts-Umschalter). */
/* Höhe wie jeder andere einzeilige Control (36) — vorher ergab sie sich nur aus dem Innenabstand und
   war damit niedriger als die Knöpfe daneben (Florian 12.09.2026: „Woche/Monat/Jahr sind weniger hoch
   als die Blätter-Knöpfe … sollten genauso hoch sein wie die Inputs"). */
.cc-seg { display: inline-flex; background: var(--grey-100); border-radius: var(--radius); padding: var(--sp-0); height: var(--sz-36); box-sizing: border-box; }
.cc-seg-btn { background: transparent; border: none; display: inline-flex; align-items: center; justify-content: center; height: 100%; font-size: var(--fs-md); color: var(--grey-600); cursor: pointer; border-radius: var(--radius); padding: var(--sp-2) var(--sp-4); transition: background var(--dur-fast), color var(--dur-fast); }
.cc-seg-btn:hover { background: color-mix(in srgb, var(--ink) 6%, transparent); color: var(--ink); }
.cc-seg-active, .cc-seg-active:hover { background: var(--o); color: var(--surface); }

/* Gedrückt/aktiv (aria-pressed="true") — Umschalt-Knöpfe (Wichtig, Verrechenbar, Beobachten, Sichtbarkeit):
   EIN Zustand fürs ganze System in Markenfarbe. Vorher definierte Ticketing das selbst. */
.ac-btn-action[aria-pressed="true"],
.mage-btn-light[aria-pressed="true"] { background: var(--o); color: var(--surface); border-color: var(--o); }
.ac-btn-action[aria-pressed="true"]:hover,
.mage-btn-light[aria-pressed="true"]:hover { background: var(--o-h); color: var(--surface); border-color: var(--o-h); }

/* Ton-Varianten des hellen Knopfs (Design::btn ['variant'=>'light','tone'=>…]) — weiche Fläche + kräftige
   Schrift aus der Kern-Skala (z.B. Eskalationsstufe). Der Hover bleibt im Ton. */
.mage-btn-light.cc-btn-warn, .mage-btn-light.cc-btn-warn:hover { background: var(--warn-bg); color: var(--warn-fg); border-color: var(--warn-bg); }
.mage-btn-light.cc-btn-danger, .mage-btn-light.cc-btn-danger:hover { background: var(--danger-bg); color: var(--danger-fg); border-color: var(--danger-bg); }
.mage-btn-light.cc-btn-accent, .mage-btn-light.cc-btn-accent:hover { background: var(--accent-2-bg); color: var(--accent-2); border-color: var(--accent-2-bg); }
/* Gerahmter Icon-Knopf (Design::iconBtn ['framed'=>true]) — weiss mit Rahmen in Voll-Knopf-Höhe, steht neben
   hellen Knöpfen in Kopfleisten. Bewusst einfache Spezifität: „gedrückt" (aria-pressed, oben) gewinnt. */
.ac-btn-framed { background: var(--surface); border: 1px solid var(--border); width: var(--sz-36); height: var(--sz-36); }
.ac-btn-framed:hover { background: var(--grey-100); }
/* Segmented im Info-Ton (Design::segmented ['tone'=>'info']) — aktiver Knopf blau statt orange. */
.cc-seg-info .cc-seg-active, .cc-seg-info .cc-seg-active:hover { background: var(--info); }

/* Farb-Schalter (Design::swatchBtn): Farbpunkt als An/Aus-Knopf — aus = blass, an = voll mit Markenrahmen. */
.cc-swatch-btn { display: inline-flex; align-items: center; padding: var(--sp-1); border: 1px solid var(--border); border-radius: var(--radius);
                 background: none; cursor: pointer; opacity: var(--op-half); font: inherit; line-height: 1; }
.cc-swatch-btn.on { opacity: 1; border-color: var(--o); }
.cc-swatch-btn:hover { border-color: var(--o); }
/* Blätter-Leiste (Design::pager): schlichte Pfeil-Knöpfe, die Position dazwischen. */
.cc-pager { display: inline-flex; align-items: center; gap: var(--sp-2); color: var(--muted); }
.cc-pager-btn { display: inline-flex; background: none; border: 0; padding: 0; font: inherit; line-height: inherit; color: var(--muted); cursor: pointer; }
.cc-pager-btn:hover { color: var(--o); }
/* Gedrückt im Info-Ton (Zusatzklasse cc-btn-pressed-info am hellen Umschalt-Knopf) — z.B. „Teams-Meeting
   verknüpft": der Zustand gehört einem fremden Dienst, nicht der Marke. */
.mage-btn-light.cc-btn-pressed-info[aria-pressed="true"] { background: var(--info); color: var(--surface); border-color: var(--info); }
.mage-btn-light.cc-btn-pressed-info[aria-pressed="true"]:hover { background: color-mix(in srgb, var(--info) 85%, var(--ink)); color: var(--surface); border-color: var(--info); }
/* Icon-Knopf auf dunkler Fläche (Zusatzklasse ac-btn-dark) — z.B. Kopf des Kalender-Widgets. */
.ac-btn-action.ac-btn-dark { background: transparent; color: var(--grey-400); }
.ac-btn-action.ac-btn-dark:hover { background: color-mix(in srgb, var(--surface) 10%, transparent); color: var(--surface); }

/* Marke am Icon-Knopf (Design::iconBtn ['badge'=>'!']) — sichtbar NUR solange der Knopf gedrückt ist
   (z.B. „Filter aktiv"). Der Knopf wird dafür zum Bezugsrahmen. */
.ac-btn-action:has(> .ac-btn-badge) { position: relative; }
.ac-btn-badge { display: none; position: absolute; bottom: 2px; right: 2px; width: var(--sz-14); height: var(--sz-14); border-radius: 50%;
                background: var(--surface); color: var(--o); font-size: var(--fs-2xs); font-weight: var(--fw-heavy); line-height: 1;
                align-items: center; justify-content: center; pointer-events: none; }
.ac-btn-action[aria-pressed="true"] > .ac-btn-badge { display: flex; }

/* Umrandeter heller Knopf für DUNKLE Flächen (Design::btn 'ghost') — z.B. „Abbrechen" in der Zeichen-Werkzeugleiste. */
.mage-btn-ghost { height: var(--sz-32); padding: 0 var(--sp-6); border-radius: var(--radius); border: 1px solid color-mix(in srgb, var(--surface) 25%, transparent);
                  background: none; color: color-mix(in srgb, var(--surface) 80%, transparent); font-size: var(--fs-base); cursor: pointer;
                  display: inline-flex; align-items: center; gap: var(--sp-2); white-space: nowrap;
                  transition: background var(--dur-fast), border-color var(--dur-fast); }
.mage-btn-ghost:hover { background: color-mix(in srgb, var(--surface) 10%, transparent); border-color: color-mix(in srgb, var(--surface) 40%, transparent); }

/* Gedrückt auf dunkler Fläche (ac-btn-dark + aria-pressed, z.B. aktives Zeichenwerkzeug): weiche Markenfläche,
   Icon in Markenfarbe, feiner Markenrahmen — ein Vollton-Orange wäre auf der dunklen Leiste zu laut. */
.ac-btn-action.ac-btn-dark[aria-pressed="true"],
.ac-btn-action.ac-btn-dark[aria-pressed="true"]:hover { background: color-mix(in srgb, var(--o) 15%, transparent); color: var(--o); }

/* Glas-Knöpfe auf DUNKLEM Vollbild-Grund (Design::iconBtn ['look'=>'glass'|'glass-round'], z.B. Medien-Lightbox):
   glass = helles Icon ohne Fläche, beim Zeigen voll deckend; glass-round = runde, leicht helle Fläche (Blättern).
   ['size'=>'lg'] = grösseres Icon (Schliessen). Die Lage bestimmt der Container (lightbox.css). */
.ac-btn-action.ac-btn-glass { width: auto; height: auto; padding: 0 var(--sp-2); background: none; color: var(--surface);
                              font-size: var(--fs-xl); opacity: var(--op-soft); transition: opacity var(--dur); }
.ac-btn-action.ac-btn-glass:hover { background: none; color: var(--surface); opacity: 1; }
.ac-btn-action.ac-btn-glass-round { width: var(--sz-44); height: var(--sz-44); border-radius: 50%; color: var(--surface); font-size: var(--fs-xl);
                                    background: color-mix(in srgb, var(--surface) 12%, transparent); opacity: var(--op-muted);
                                    transition: opacity var(--dur), background var(--dur); }
.ac-btn-action.ac-btn-glass-round:hover { background: color-mix(in srgb, var(--surface) 22%, transparent); color: var(--surface); opacity: 1; }
.ac-btn-action.ac-btn-glass-round:disabled { opacity: var(--op-faint); }
.ac-btn-action.ac-btn-lg { font-size: var(--fs-xxl); }
/* Kleiner runder VOLL-Knopf (Design::iconBtn ['solid'=>true, 'tone'=>'danger'|'ok']) — Entfernen/Einblenden an einer
   Desktop-Kachel im Bearbeiten-Modus: Fläche in der Tonfarbe, weisses Zeichen, leichter Schatten. */
.ac-btn-action.ac-btn-solid { width: var(--sz-22); height: var(--sz-22); border-radius: var(--radius-pill); background: var(--grey-600); color: var(--on-o);
                              box-shadow: var(--shadow-sm); font-size: var(--fs-xs); }
.ac-btn-action.ac-btn-solid:hover { background: var(--grey-700); color: var(--on-o); }
.ac-btn-action.ac-btn-solid.ac-btn-danger, .ac-btn-action.ac-btn-solid.ac-btn-danger:hover { background: var(--danger); color: var(--on-o); }
.ac-btn-action.ac-btn-solid.ac-btn-ok, .ac-btn-action.ac-btn-solid.ac-btn-ok:hover { background: var(--ok); color: var(--on-o); }
/* Ohne eigene Fläche auf FARBIGEM Grund (Design::iconBtn ['look'=>'ghost']) — z.B. Löschen in der Notizzettel-Leiste. */
.ac-btn-action.ac-btn-ghost { background: transparent; color: var(--grey-600); }
.ac-btn-action.ac-btn-ghost:hover { background: color-mix(in srgb, var(--ink) 10%, transparent); color: var(--ink); }

/* Werkzeug-Knöpfe einer dunklen Werkzeugleiste (Design::toolBtn): Farbe (Punkt) und Strichstärke (heller Punkt).
   Gedrückt = aria-pressed. Werkzeug-Icons laufen über iconBtn + ac-btn-dark (oben). */
.cc-tool { display: inline-flex; align-items: center; justify-content: center; padding: 0; background: none; cursor: pointer; font: inherit; position: relative; }
.cc-tool-swatch { width: var(--sz-26); height: var(--sz-26); border-radius: 50%; border: 2px solid transparent; transition: border-color var(--dur-fast); }
.cc-tool-swatch > .cc-tool-dot { display: block; width: var(--sz-18); height: var(--sz-18); border-radius: 50%; }
.cc-tool-swatch:hover { border-color: color-mix(in srgb, var(--surface) 40%, transparent); }
.cc-tool-swatch[aria-pressed="true"] { border-color: var(--surface); }
.cc-tool-dot.cc-tool-any { background: conic-gradient(var(--danger), var(--warn), var(--ok), var(--info), var(--accent-2), var(--danger)); }
.cc-tool-width { width: var(--sz-30); height: var(--sz-30); border-radius: var(--radius); border: 1px solid transparent;
                 transition: background var(--dur-fast), border-color var(--dur-fast); }
.cc-tool-width > .cc-tool-dot { display: block; border-radius: 50%; background: var(--surface); }
.cc-tool-width:hover { background: color-mix(in srgb, var(--surface) 10%, transparent); }
.cc-tool-width[aria-pressed="true"] { border-color: color-mix(in srgb, var(--surface) 50%, transparent); background: color-mix(in srgb, var(--surface) 12%, transparent); }
/* Link-Button deaktiviert (z.B. „hier liegt die Nachricht schon" im Verschieben-Menü) — grau, blass, nicht klickbar. */
.cc-link-btn:disabled { color: var(--muted); opacity: var(--op-half); cursor: default; text-decoration: none; }
/* Kleine Höhe der Segmented-Gruppe: exakt die 32 px der Werkzeugknöpfe daneben (.ac-btn-action,
   .mage-btn-add-sm). Florian 12.09.2026 an der E-Mail-Kopfleiste: „Die Dreiergruppe nach Kontakt /
   Unterhaltung / flach ist zu hoch — alles soll so hoch sein wie der Button Neue E-Mail." */
.cc-seg-sm { height: var(--sz-32); }
/* UMBRECHENDE Gruppe (Design::segmented(…, ['wrap'=>true]), buttons 1.10.1): die Gruppe wächst in die
   Höhe, jede Zeile behält die Knopfhöhe. Stärker als die Scroll-Regel für Icon+Text-Gruppen weiter unten. */
.cc-seg.cc-seg-wrap, .cc-seg.cc-seg-wrap:has(> .cc-seg-btn > .cc-seg-lbl) { flex-wrap: wrap; height: auto; min-height: var(--sz-36); max-width: 100%; overflow: visible; }
.cc-seg.cc-seg-wrap > .cc-seg-btn { height: calc(var(--sz-36) - 2 * var(--sp-0)); }
.cc-seg.cc-seg-wrap.cc-seg-sm { min-height: var(--sz-32); }
.cc-seg.cc-seg-wrap.cc-seg-sm > .cc-seg-btn { height: calc(var(--sz-32) - 2 * var(--sp-0)); }
.cc-seg-sm .cc-seg-btn { padding: var(--sp-1) var(--sp-4); }
/* Aufklapp-Block: der Inhalt hängt unter seinem Knopf und startet zu (Design::toggleBlock). */
.cc-toggleblock-body { margin-top: var(--sp-5); }
/* Ein Aufklapp-Block zwischen Formularfeldern hält denselben Abstand wie ein Feld (.mage-field): sein
   letztes Feld hat margin-bottom 0 (:last-child), ohne diese Regel klebte das nächste Feld daran. */
.cc-toggleblock:not(:last-child) { margin-bottom: var(--sp-7); }

/* ── Aktionsknopf-Vertrag: arbeitender Knopf (Klasse setzt der Kern, core/Ui.php actionContractJs) ──
   Solange ein vom Klick ausgelöster API-Aufruf läuft, zeigt der Knopf einen Spinner statt seines Icons und
   nimmt keinen zweiten Klick an. Gilt für JEDEN Knopf — kein Modul baut eigene „lädt…"-Zustände. */
.cc-busy { cursor: progress; pointer-events: none; }
.cc-busy > .cc-ico { display: none; }
.cc-busy > .cc-busy-spin { display: inline-block; vertical-align: middle; margin-right: var(--sp-2); }
.ac-btn-action.cc-busy > .cc-busy-spin { margin-right: 0; }

/* Kein Unterstrich am Icon-Knopf, auch wenn er als <a> gebaut ist — Icon-Knoepfe sind Knoepfe, keine
   Verweise. Die Regel stand bis zum 15.09.2026 im controls-Modul: eine !important-Fernsteuerung des
   Knopf-Designs an seinem Eigentuemer vorbei, aus einem Modul, das buttons nicht einmal fuehrt. */
a.ac-btn-action { text-decoration: none !important; }

/* ── Varianten seit Kern 2.5.0 (buttons 1.10.0), alle opt-in ─────────────────────────────────────────
   Segmented: Icon UND Text im selben Knopf (.cc-seg-lbl), Ton des aktiven Knopfs je Eintrag, milchige
   Gruppe für hellen gemusterten Grund. Mit Text-Etiketten darf die Gruppe nie über ihren Behälter hinaus:
   sie scrollt dann waagerecht, statt die Nachbarn zu verdrängen. */
.cc-seg-btn > .cc-seg-lbl { margin-left: var(--sp-2); white-space: nowrap; }
.cc-seg:has(> .cc-seg-btn > .cc-seg-lbl) { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.cc-seg:has(> .cc-seg-btn > .cc-seg-lbl) > .cc-seg-btn { flex: none; }
/* ÜBERLAUF einer Icon+Text-Gruppe (buttons 1.10.3, Plan KI-Chat C2.11.1/C8 §8.13.4): passt sie nicht in ihren Behälter, setzt
   buttons.js zuerst die KOMPAKTE Stufe — nur der aktive Knopf zeigt seinen Text, die übrigen nur ihr Icon (der Text bleibt als
   zugänglicher Name im Knopf, dazu als Zeigetext). Reicht auch das nicht, scrollt die Gruppe und blendet den abgeschnittenen Rand
   weich aus (data-cc-ueberlauf = links | rechts | beide), damit sichtbar ist, dass es weitergeht (R3: „Quellen" abgeschnitten). */
.cc-seg.cc-seg-kompakt > .cc-seg-btn:not(.cc-seg-active) > .cc-seg-lbl { position: absolute; width: 1px; height: 1px; padding: 0; margin: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.cc-seg[data-cc-ueberlauf="rechts"] { -webkit-mask-image: linear-gradient(to right, currentColor calc(100% - var(--sz-40)), transparent); mask-image: linear-gradient(to right, currentColor calc(100% - var(--sz-40)), transparent); }
.cc-seg[data-cc-ueberlauf="links"] { -webkit-mask-image: linear-gradient(to left, currentColor calc(100% - var(--sz-40)), transparent); mask-image: linear-gradient(to left, currentColor calc(100% - var(--sz-40)), transparent); }
.cc-seg[data-cc-ueberlauf="beide"] { -webkit-mask-image: linear-gradient(to right, transparent, currentColor var(--sz-40), currentColor calc(100% - var(--sz-40)), transparent); mask-image: linear-gradient(to right, transparent, currentColor var(--sz-40), currentColor calc(100% - var(--sz-40)), transparent); }
.cc-seg-active.cc-seg-ton-neutral, .cc-seg-active.cc-seg-ton-neutral:hover { background: var(--surface); color: var(--ink); box-shadow: var(--shadow-sm); }
.cc-seg-active.cc-seg-ton-danger, .cc-seg-active.cc-seg-ton-danger:hover { background: var(--danger); color: var(--on-o); }
.cc-seg.cc-seg-milch { background: var(--glass-soft); box-shadow: var(--shadow-sm); }
.cc-seg-milch .cc-seg-btn { color: var(--ink); }
.cc-seg-milch .cc-seg-btn:hover { background: var(--surface); color: var(--ink); }
.cc-seg-milch .cc-seg-active, .cc-seg-milch .cc-seg-active:hover { background: var(--o); color: var(--surface); }
/* Icon-Knopf auf hellem Muster (Design::iconBtn ['look'=>'milch']): milchige Fläche; „gedrückt" und
   „aufgeklappt" (aria-pressed / aria-expanded) in Markenfarbe. */
.ac-btn-action.ac-btn-milch { background: var(--glass-soft); color: var(--ink); box-shadow: var(--shadow-sm); }
.ac-btn-action.ac-btn-milch:hover { background: var(--surface); color: var(--ink); }
.ac-btn-action.ac-btn-milch[aria-pressed="true"], .ac-btn-action.ac-btn-milch[aria-expanded="true"],
.ac-btn-action.ac-btn-milch[aria-pressed="true"]:hover, .ac-btn-action.ac-btn-milch[aria-expanded="true"]:hover { background: var(--o); color: var(--surface); }
/* Fokus der milchigen Varianten: eigener zweifarbiger Ring (--focus-kontrast, ≥ 3:1 auf Beige und
   Mitternacht) — der Kern-Ring (--focus, Marke 45 %) verschwindet auf dem Muster. Die durchsichtige
   Kontur wird im Kontrastmodus des Systems (forced-colors) sichtbar. */
.ac-btn-milch:focus-visible, .cc-seg-milch .cc-seg-btn:focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-kontrast); }

/* controls.css — iOS-Toggle-Switches + CI-Modal-Button-Overrides.
   (Die frühere .contact-badge war eine fehlplatzierte, nur im Kitchen-Sink genutzte Eigen-Komponente —
   entfernt; geteilte Plaketten kommen aus dem badges-Kernmodul via Design::badge/chip.) */

/* =============================================
   iOS Toggle Switch (.mage-toggle)
   ============================================= */
.mage-toggle {
    position: relative;
    display: inline-block;
    width:var(--sz-44);
    height:var(--sz-24);
    cursor: pointer;
    vertical-align: middle;
}
.mage-toggle input {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute;
}
.mage-toggle-slider {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    /* AUS-Zustand mit Kontrast (controls 1.5.2, WCAG 1.4.11): --grey-300 lag hell bei 1,5:1 und dunkel bei 1,2:1 gegen die
       Fläche — der ausgeschaltete Schalter war nur als Fleck zu ahnen (KI-Chat R4). --grey-500 trägt hell 4,8:1 und dunkel
       rund 7:1; der Knopf (--surface) steht darauf ebenso deutlich. */
    background-color: var(--grey-500);
    border-radius:var(--radius);
    transition: background-color var(--dur) ease;
}
.mage-toggle-slider::before {
    content: '';
    position: absolute;
    height:var(--sz-18);
    width:var(--sz-18);
    left: 3px;
    bottom: 3px;
    background-color: var(--surface);
    border-radius: 50%;
    transition: transform var(--dur) ease;
    box-shadow:var(--shadow-md);
}
.mage-toggle input:checked + .mage-toggle-slider {
    background-color: var(--ok);
}
.mage-toggle input:checked + .mage-toggle-slider::before {
    transform: translateX(20px);
}
/* ZEIGEN + TASTATUR-FOKUS (controls 1.5.1). „Jeder Control hat Hover": aus = Grund eine Stufe
   dunkler (hell dunkler, im Dunkelmodus heller — --grey-600 folgt dem Thema), an = Grün mit einem Hauch Tinte. Das echte <input> ist unsichtbar (opacity 0) — sein Fokus
   wäre ohne diese Regel nirgends zu sehen; der Ring kommt deshalb an die sichtbare Schiene, und nur
   bei Tastatur-Fokus (:focus-visible), nicht bei jedem Mausklick. */
.mage-toggle:hover input:not(:disabled) + .mage-toggle-slider { background-color: var(--grey-600); }
.mage-toggle:hover input:not(:disabled):checked + .mage-toggle-slider { background-color: color-mix(in srgb, var(--ok) 85%, var(--ink)); }
/* Fokusring = zweifarbiger Kern-Ring --focus-kontrast (Fläche + Tinte, controls 1.5.3, KI-Chat R11): die Schiene ist die EINZIGE
   Anzeige des Fokus, und --focus (Orange mit 45 % Deckkraft) kam neben ihr nur auf 1,8:1 (hell) bzw. 2,0:1 (dunkel) — unter den
   3:1 aus WCAG 1.4.11/2.4.13. Die Tinte-Linie steht in beiden Themen gegen den Grund, die Flächen-Linie trennt sie vom grünen
   „an". outline transparent für den Kontrastmodus des Systems (box-shadow fällt dort weg). */
.mage-toggle input:focus-visible + .mage-toggle-slider { outline: 2px solid transparent; box-shadow: var(--focus-kontrast); }

/* Kleine Variante (36×20) — explizit via .mage-toggle-sm ODER kontextbestimmt in jeder DICHTEN
   Flaeche ([data-cc-dense], vom Kern an jede Datenzeile gesetzt). Kein per-Aufruf-Flag noetig ->
   keine zwei Groessen desselben Elements durch Vergessen. Bis zum 15.09.2026 stand hier
   '.mage-table' — die Wurzelklasse eines FREMDEN Moduls, das hier gar nicht gefuehrt wird. */
.mage-toggle.mage-toggle-sm,
[data-cc-dense] .mage-toggle {
    width:var(--sz-36);
    height:var(--sz-20);
}
.mage-toggle-sm .mage-toggle-slider,
[data-cc-dense] .mage-toggle-slider {
    border-radius:var(--radius);
}
.mage-toggle-sm .mage-toggle-slider::before,
[data-cc-dense] .mage-toggle-slider::before {
    height:var(--sz-14);
    width:var(--sz-14);
}
.mage-toggle-sm input:checked + .mage-toggle-slider::before,
[data-cc-dense] .mage-toggle input:checked + .mage-toggle-slider::before {
    transform: translateX(16px);
}
.mage-toggle-sm input:disabled + .mage-toggle-slider,
[data-cc-dense] .mage-toggle input:disabled + .mage-toggle-slider {
    opacity:var(--op-half);
    cursor: default;
}

/* (Hier stand eine Überschrift ohne Regeln darunter — die Knopffarben gehören buttons. 15.09.2026) */

/* forms.css — GLOBALE Form-Feld Styles (Single Source of Truth)
 *
 * GOLDENE REGEL: Alle Formfelder im gesamten Projekt werden HIER gestyled.
 * Keine lokalen Overrides in Seiten-CSS. Keine !important in anderen Dateien.
 * Gleiche Felder == gleiches Design. Überall. Basta.
 *
 * !important wird hier bewusst eingesetzt, weil:
 * 1. Bootstrap-CDN-Defaults überschrieben werden müssen
 * 2. Inline-Styles in Legacy-Code überschrieben werden müssen
 * 3. Dies die EINZIGE Datei ist, die Form-Styles definieren darf
 */

/* =============================================
   Globale Form-Felder — gelten ÜBERALL, IMMER
   ============================================= */
.form-control,
.form-select,
input[type="text"],
input[type="email"],
input[type="number"],
input[type="url"],
input[type="tel"],
input[type="password"],
input[type="search"],
input[type="date"],
textarea,
select {
    border: 1px solid var(--grey-200) !important;
    border-radius:var(--radius) !important;
    padding:var(--sp-3) var(--sp-4) !important;
    font-size:var(--fs-md) !important;
    color: var(--grey-800) !important;
    background: var(--surface) !important;
    transition: border-color var(--dur-fast) !important;
    box-shadow: none;
    outline: none;
    /* Schrift der Seite, nicht die des Browsers (forms 1.9.1): Textfelder zeigten sonst monospace,
       Eingabefelder Arial — der Browser erbt die Schriftfamilie bei Formularfeldern NICHT von selbst. */
    font-family: inherit;
}
/* ZEIGEN = Rahmen eine Stufe dunkler (forms 1.9.1) — „jeder Control hat Hover". Nicht solange das
   Feld den Fokus trägt (dann gilt der orange Rand) und nicht, wenn es gesperrt ist. !important aus
   demselben Grund wie oben: die Grundregel setzt den Rahmen selbst mit !important. */
.form-control:hover:not(:focus):not(:disabled):not([readonly]),
.form-select:hover:not(:focus):not(:disabled),
input[type="text"]:hover:not(:focus):not(:disabled):not([readonly]),
input[type="email"]:hover:not(:focus):not(:disabled):not([readonly]),
input[type="number"]:hover:not(:focus):not(:disabled):not([readonly]),
input[type="url"]:hover:not(:focus):not(:disabled):not([readonly]),
input[type="tel"]:hover:not(:focus):not(:disabled):not([readonly]),
input[type="password"]:hover:not(:focus):not(:disabled):not([readonly]),
input[type="search"]:hover:not(:focus):not(:disabled):not([readonly]),
input[type="date"]:hover:not(:focus):not(:disabled):not([readonly]),
textarea:hover:not(:focus):not(:disabled):not([readonly]),
select:hover:not(:focus):not(:disabled) {
    border-color: var(--grey-400) !important;
}
/* EINE Höhe für ALLE einzeiligen Controls (Input/Select/Picker/Color) — box-border, damit padding sie nicht
   auseinandertreibt. Textarea (mehrzeilig) ausgenommen. Behebt: Dropdown/Color/Input verschieden hoch. */
.form-control:not(textarea),
.form-select,
input[type="text"], input[type="email"], input[type="number"], input[type="url"],
input[type="tel"], input[type="password"], input[type="search"], input[type="date"],
select, .mage-picker-trigger, .mpp-trigger, .cc-color {
    height:var(--sz-36) !important;
    box-sizing: border-box !important;
    line-height: 1.2 !important;
}

/* Natives Browser-Lösch-X in Suchfeldern (blau, webkit) AUS — das Lösch-X liefert der Kern
   einheitlich (graues X). Zwei verschiedene X im selben Feld = zwei Designs für dieselbe Rolle. */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
    appearance: none;
}

.form-control:focus,
.form-select:focus,
input[type="text"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
input[type="url"]:focus,
input[type="tel"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="date"]:focus,
textarea:focus,
select:focus {
    border-color: var(--o) !important;
    outline: none;
    box-shadow: var(--focus) !important;
}

/* Input-group: restore Bootstrap border-radius handling (overridden by !important above) */


/* Der Picker-Trigger wird vom picker-Kernmodul gestylt (Formfeld-Look) — nicht hier. */


/* =============================================
   Mage-Field Layout — EIN Formular-Layout für das ganze System (Fenster UND Sidebar).
   Vorbild ist das Kontakt-Formular: Label LINKS (feste Spalte, rechtsbündig), Feld RECHTS,
   Hinweis unter dem Feld. Kein Modul entscheidet das selbst — Design::field() reicht.
   Gestapelt (Label über dem Feld) gibt es NUR noch in einer .mage-field-row (Filterzeile mit
   mehreren Feldern nebeneinander), sonst nirgends.
   ============================================= */
.mage-field { display: flex; align-items: flex-start; gap: var(--sp-8); margin-bottom: var(--sp-7); }
.mage-field:last-child { margin-bottom: 0; }
/* VARIANTE „randlos" (Design::field(..., ['flush' => true])): kein eigener Aussenabstand, volle
   Breite — für Behälter, die den Abstand ihrer Felder selbst setzen (Flex-Spalte mit gap).
   Vorher stand genau das als zwei Regeln auf .mage-field im CSS des Ticketings (15.09.2026). */
.mage-field.mage-field-flush { width: 100%; margin-bottom: 0; }
.mage-field-label { display: block; flex: 0 0 var(--sz-180); min-width: 0; overflow-wrap: anywhere; text-align: right;
                    padding-top: var(--sp-3); padding-right: var(--sp-6); margin-bottom: 0;
                    font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--grey-800); }
.mage-field-label .text-danger { color: var(--danger); }
/* Der Feld-Body (Control + Hinweis) ist die rechte Spalte — gedeckelt, ein Textfeld ist nie 2000 px breit. */
.mage-field-body { flex: 1; min-width: 0; max-width: var(--sz-500); }
/* Schalter-Felder: Label mittig zum Toggle (wie das Kontakt-Vorbild). */
.mage-field:has(> .mage-field-body > .mage-toggle) { align-items: flex-start; }
/* Label auf die Höhe der SCHALTER-Zeile setzen, nicht über Schalter + Hinweis zentrieren —
   sonst rutscht es bei einem Hinweis unter dem Schalter nach unten. */
.mage-field:has(> .mage-field-body > .mage-toggle) .mage-field-label { padding-top: 0; min-height: var(--sz-24); display: flex; align-items: center; justify-content: flex-end; }
/* Textwert statt Eingabefeld (Design::mono/muted/badge als Feldinhalt): auf die Zeile des Labels
   setzen — sonst hängt der Wert oben, das Label (padding-top) darunter. */
.mage-field-body > .txt-mono,
.mage-field-body > .txt-muted,
.mage-field-body > .cc-row { display: inline-flex; align-items: center; min-height: calc(var(--sp-3) * 2 + 1.4em); }
/* Plakette als Feldwert (forms 1.9.1): NICHT auf Feldhöhe strecken — sie steht in einer eigenen
   Zeile von Feldhöhe und ist darin mittig, behält aber ihre normale Plaketten-Höhe. Vorher wurde
   die Plakette selbst zum 36-px-Kasten (inline-flex mit min-height auf .badge-status). */
.mage-field-body:has(> .badge-status:first-child) { display: flex; flex-wrap: wrap; align-items: center; column-gap: var(--sp-3);
                                                    min-height: calc(var(--sp-3) * 2 + 1.4em); }
.mage-field-body:has(> .badge-status:first-child) > .field-hint { flex-basis: 100%; }
/* REINER TEXT / EIN LINK als Feldwert (Design::field setzt .mage-field-plain): der Text steht oben im
   Körper, das Label hat oben sein Polster (--sp-3) — das Label sass dadurch sichtbar tiefer (gemessen
   9 px). Dasselbe Polster oben am Körper bringt beide auf eine Grundlinie, egal wie lang der Text ist. */
.mage-field-plain > .mage-field-body { padding-top: var(--sp-3); }
/* HÄKCHEN-GRUPPE als Feldwert (Design::check einzeln oder in Design::stack): die erste Häkchen-Zeile
   ist so hoch wie ein Schalter, nicht wie ein Eingabefeld — das Label wird daher wie beim Schalter
   (oben) auf die Mitte dieser Zeile gesetzt statt mit dem Feld-Polster darunter zu hängen. */
.mage-field:has(> .mage-field-body > .cc-check:first-child) .mage-field-label,
.mage-field:has(> .mage-field-body > .cc-stack:first-child > .cc-check:first-child) .mage-field-label {
    padding-top: 0; min-height: var(--sz-24); display: flex; align-items: center; justify-content: flex-end; }
.mage-field-body > .cc-check:first-child,
.mage-field-body > .cc-stack:first-child > .cc-check:first-child { min-height: var(--sz-24); }
/* Hinweis nach einer Häkchen-Gruppe: sonst klebt er an der letzten Zeile und liest sich wie deren Text. */
.mage-field-body > .cc-check + .field-hint,
.mage-field-body > .cc-stack:has(> .cc-check) + .field-hint { margin-top: var(--sp-3); }
/* Aktions-Button unter den Feldern: bündig zur Feld-Spalte (nicht unter den Labels). */
.mage-field + .mage-btn-add,
.mage-field + .btn-save,
/* Ein Hinweis ZWISCHEN zwei Feldern gehört ebenfalls in die Feld-Spalte („Zweite Bedingung (optional) …") —
   sonst steht er als loser Satz am linken Rand und die Label-Flucht wirkt gebrochen. */
.mage-field + .cc-hint,
.mage-field + .cc-row,
/* Aufklapp-Knopf direkt nach einem Feld („Neues Projekt für diesen Kunden"): nur der KNOPF rückt in die
   Feld-Spalte — die Felder im aufgeklappten Block behalten ihre eigene Label-Flucht. */
.mage-field + .cc-toggleblock > [data-cc-toggle] { margin-left: calc(var(--sz-180) + var(--sp-8)); }

/* SCHMALER Kontext (Anmelde-Karte, enge Panels): Wrapper `.cc-form-stack` stapelt Label über Feld.
   Das ist die EINZIGE erlaubte gestapelte Variante ausserhalb einer Feld-Zeile. */
.cc-form-stack .mage-field { display: block; }
.cc-form-stack .mage-field-label { flex: none; min-width: 0; text-align: left; padding: 0; margin-bottom: var(--sp-2); }
.cc-form-stack .mage-field-body { max-width: none; }
.cc-form-stack .mage-field + .cc-hint,
.cc-form-stack .mage-field + .cc-row,
.cc-form-stack .mage-field + .cc-toggleblock > [data-cc-toggle] { margin-left: 0; }
/* SCHMALE BILDSCHIRME (forms 1.9.1, Telefon-Breakpoint --bp-md = 720px; Variablen gehen in Media-Queries
   nicht): die feste 180-px-Labelspalte plus 20 px Abstand liess im Modal auf dem Handy kaum Platz für das
   Feld, lange Werte liefen über. Dort steht das Label deshalb ÜBER dem Feld — dieselbe Form wie
   .cc-form-stack, nur automatisch. */
@media (max-width: 720px) {
    .mage-field { display: block; }
    .mage-field-label { text-align: left; padding: 0; margin-bottom: var(--sp-2); }
    .mage-field:has(> .mage-field-body > .mage-toggle) .mage-field-label,
    .mage-field:has(> .mage-field-body > .cc-check:first-child) .mage-field-label,
    .mage-field:has(> .mage-field-body > .cc-stack:first-child > .cc-check:first-child) .mage-field-label { justify-content: flex-start; min-height: 0; }
    .mage-field-plain > .mage-field-body { padding-top: 0; }
    .mage-field-body { max-width: none; }
    .mage-field + .mage-btn-add,
    .mage-field + .btn-save,
    .mage-field + .cc-hint,
    .mage-field + .cc-row,
    .mage-field + .cc-toggleblock > [data-cc-toggle] { margin-left: 0; }
}

/* Feld-Zeile (Design::fieldRow): mehrere Felder NEBENEINANDER — Filterzeilen, Von/Bis, Adresse.
   Hier stapelt das Label über dem Feld (Platz), Inputs unten bündig — so steht ein Button (oder ein
   zweizeiliges Label) nie über/unter den anderen Inputs. */
.mage-field-row { display: flex; gap:var(--sp-7); align-items: flex-end; flex-wrap: wrap; }
.mage-field-row .mage-field { flex: 1; display: block; margin-bottom: 0 !important; }
.mage-field-row .mage-field-label { min-width: 0; text-align: left; padding: 0; margin-bottom: var(--sp-2); }
.mage-field-row .mage-field-body { max-width: none; }
.mage-field .form-control,
.mage-field .form-select { width: 100%; }
/* EINGABE IN EINER TABELLENZELLE bzw. einer Eingabezeile füllt ihre Zelle (forms 1.9.1). Ohne diese
   Regel hat ein Input seine Browser-Breite (~150-200 px) und steht mitten in einer breiten Spalte bzw.
   ragt aus einer schmalen hinaus. Nur das EINZIGE Feld seiner Art und nicht neben einem Knopf — sonst
   drückt es den Knopf in die nächste Zeile. */
td:not(:has(> button)) > .form-control:only-of-type,
td:not(:has(> button)) > .form-select:only-of-type,
.cc-input-cell > .form-control,
.cc-input-cell > .form-select { width: 100%; min-width: 0; }
.mage-field .form-text { font-size:var(--fs-sm); color: var(--muted); margin-top:var(--sp-1); }

/* MagePicker-Trigger volle Breite in Modals und mage-field */
.modal .mage-picker-trigger,
.mage-field .mage-picker-trigger {
    width: 100%;
    max-width: none;
    margin-right: 0;
}

/* Field Hint (subtitle/description under inputs) */
.field-hint {
    display: block;   /* eigene Zeile unter dem Control — auch hinter einem inline-flex .cc-row */
    font-size:var(--fs-sm);
    /* grey-500 statt --muted (= grey-400): 2,5:1 auf Weiss reicht für kleinen Text nicht (WCAG AA
       verlangt 4,5:1); grey-500 kommt auf 4,8:1. forms 1.9.1. */
    color: var(--grey-500);
    margin-top:var(--sp-1);
    line-height: 1.4;
}

/* Button-Feld in einer .mage-field-row bündig zu den Inputs (unsichtbarer Label-Platzhalter) */
.mage-field-label.spacer{visibility:hidden;user-select:none;pointer-events:none}

/* =============================================
   Input-Zeile (Design::inputRow): mehrere Controls nebeneinander, je mit kleinem
   Sub-Label darüber — Adresse (Strasse/PLZ/Ort/Land), Vor-/Nachname. EIN Baustein,
   kein Modul baut sich das Grid selbst.
   ============================================= */
/* Feld-Zeile: bricht sie um (schmale Sidebar), muss der Abstand ZWISCHEN den Zeilen genauso
   sichtbar sein wie zwischen den Feldern — sonst kleben die Eingaben mal aneinander und stehen
   mal weit auseinander (Verbindungsdaten/Monitoring-Sidebar). Beschriftung bekommt Luft. */
.cc-input-row { display: flex; gap: var(--sp-4) var(--sp-3); flex-wrap: wrap; align-items: flex-end; }
.cc-input-cell { flex: 1 1 var(--sz-160); min-width: var(--sz-160); }
.cc-input-cell.cc-cell-sm { flex: 0 0 var(--sz-80); min-width: var(--sz-80); }
/* Knopf in einer Eingabezeile: die Zelle wächst mit ihrem Knopf. cc-cell-sm ist 80 px breit — ein Knopf
   „Hinzufügen" passt nicht hinein und ragte über die Zeile hinaus (Felder → Auswahlwerte, Florian 12.09.2026:
   „der Hinzufügen-Button ist verrutscht"). Greift für JEDE Zeile, auch wenn ein Modul cc-cell-sm wählt. */
.cc-input-cell.cc-cell-auto,
.cc-input-cell:has(> button, > a.mage-btn-add, > a.mage-btn-light) { flex: 0 0 auto; min-width: 0; }
.cc-input-sub { font-size: var(--fs-xs); color: var(--muted); margin-bottom: var(--sp-1); display: block; }

/* ── Radio-Gruppe + Schieberegler (Design::radio/range) ──────────────────────── */
.cc-radio-group { display: flex; flex-direction: column; gap:var(--sp-2); }
.cc-radio { display: inline-flex; align-items: center; gap:var(--sp-2); cursor: pointer; font-size: var(--fs-base); }
.cc-radio input { accent-color: var(--o); margin: 0; }
.cc-range { width: 100%; accent-color: var(--o); }

/* ── Empfänger-Feld mit Labels (Design::tokenField) ─────────────────────────────
   Jede fertige Adresse wird zum Label; geprüfte Adressen sind ruhig, fehlerhafte rot.
   Vorschläge hängen unter dem Feld und rollen bei vielen Treffern. */
.cc-tokens { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); position: relative;
             border: 1px solid var(--border); border-radius: var(--radius); padding: var(--sp-2) var(--sp-3);
             background: var(--surface); min-height: var(--sz-36); cursor: text; }
.cc-tokens:focus-within { border-color: var(--o); box-shadow: var(--focus); }
.cc-token-list { display: contents; }
.cc-token { display: inline-flex; align-items: center; gap: var(--sp-1); padding: var(--sp-1) var(--sp-2);
            border-radius: var(--radius); font-size: var(--fs-sm); border: 1px solid var(--border); background: var(--grey-50); }
.cc-token-ok { border-color: var(--ok); color: var(--ok); }
.cc-token-bad { border-color: var(--danger); color: var(--danger); }
.cc-token-x { border: none; background: none; cursor: pointer; color: inherit; font-size: var(--fs-base); line-height: 1; padding: 0; }
.cc-token-input { flex: 1 1 var(--sz-120); min-width: var(--sz-120); border: none; outline: none; background: none;
                  font-size: var(--fs-base); color: var(--ink); }
/* Das innere Tipp-Feld ist KEIN eigenes Eingabefeld: der Rahmen gehört dem Wrapper (.cc-tokens). Die
   globale input[type=text]-Regel (Rahmen + Fokus-Ring) darf hier nicht greifen — sonst steckt ein Feld im Feld.
   Die globalen Feld-Regeln weiter oben setzen Rahmen/Radius/Polster/Höhe/Schrift mit !important (Altlast
   gegen Bootstrap-Reste) — eine Regel OHNE !important verliert dagegen, egal wie spezifisch sie ist.
   Deshalb hier ebenfalls !important: gleiche Waffe, höhere Spezifität, also gewinnt diese Regel. */
.cc-tokens input.cc-token-input, .cc-tokens input.cc-token-input:focus {
                  border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
                  background: none !important; padding: var(--sp-1) 0 !important; outline: none !important;
                  height: auto !important; min-height: 0 !important; font-size: var(--fs-base) !important; }

/* ZEITPLAN-BAUKASTEN (Design::cronField): Häufigkeit + passende Teile in EINER Zeile, darunter der
   Cron-Ausdruck (mono, gedimmt solange der Baukasten ihn schreibt) und der Klartext. */
.cc-cron { display: flex; flex-direction: column; gap: var(--sp-2); min-width: 0; }
.cc-cron-build { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); }
.cc-cron-build .form-control, .cc-cron-build .form-select, .cc-cron-build .mage-picker-trigger { width: auto; min-width: var(--sz-120); }
.cc-cron-part { display: inline-flex; align-items: center; }
.cc-cron-part.cc-hidden { display: none; }
.cc-cron-expr { font-family: var(--mono); max-width: var(--sz-260); }
.cc-cron-expr-dim { color: var(--muted); }
.cc-cron-read { margin: 0; color: var(--muted); font-size: var(--fs-sm); }
.cc-token-typing-bad { color: var(--danger); }
.cc-token-sug { position: absolute; left: 0; top: 100%; margin-top: var(--sp-1); z-index: var(--z-popover);
                background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
                box-shadow: var(--shadow-md); min-width: var(--sz-280); max-height: var(--sz-240); overflow: auto; }
.cc-token-sugrow { display: flex; gap: var(--sp-3); width: 100%; text-align: left; border: none; background: none;
                   padding: var(--sp-2) var(--sp-4); cursor: pointer; font-size: var(--fs-sm); }
.cc-token-sugrow:hover { background: var(--grey-50); }
.cc-token-sugname { font-weight: var(--fw-bold); color: var(--ink); }
.cc-token-sugmail { color: var(--muted); }

/* Breite Such-Leiste (Design::searchBar) — EINE Zeile über einem Inhaltsbereich, Lupe links vor dem Feld,
   Fläche + Unterkante; ['sticky'=>true] bleibt beim Scrollen oben stehen. */
.cc-searchbar { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-5) var(--sp-8);
                background: var(--surface); border-bottom: 1px solid var(--grey-300); }
.cc-searchbar.cc-searchbar-sticky { position: sticky; top: 0; z-index: var(--z-sticky); }
.cc-searchbar > .cc-searchbar-ico { color: var(--muted); font-size: var(--fs-lg); flex: 0 0 auto; }
.cc-searchbar > .cc-searchbar-input { flex: 1 1 auto; min-width: 0; font-size: var(--fs-md); }

/* RANDLOSE VARIANTE eines Eingabefeldes (.form-control-flush): kein Rahmen, keine eigene Fläche,
   kein Fokus-Ring, keine Grösse-Anfasser — das Feld IST die Fläche, auf der es liegt (Notizzettel
   auf dem Desktop, künftig jede Kachel mit reiner Texteingabe). Sie steht HIER, weil das Formularfeld
   diesem Modul gehört; bis 13.09.2026 schrieb das Anordnungs-Modul layout sie mit !important um
   (Befund _ui-kernmodule[2]). Fläche und Farbe gibt der Behälter vor — hier wird nur entrahmt. */
.form-control-flush,
.form-control-flush:focus,
.form-control-flush:hover {
    /* !important, weil die Grundregel oben (Zeile 16 ff.) selbst mit !important arbeitet — eine
       Variante des eigenen Bausteins muss sie überstimmen können. Das ist der EINE Ort dafür. */
    width: 100%; resize: none;
    border: 0 !important; border-radius: 0 !important; box-shadow: none !important; outline: none !important;
    background: transparent !important; padding: var(--sp-4) var(--sp-5) !important;
    font-family: inherit; font-size: var(--fs-md) !important; line-height: 1.5; color: var(--ink) !important;
}

/* NEBEN EINEM FELD ist der Icon-Knopf so hoch wie das Feld (36 statt 32) — sonst steht der Plus-Knopf
   hinter einer E-Mail-Adresse oder einem Wähler sichtbar tiefer/kleiner als das Eingabefeld daneben
   (Florian 12.09.2026: „ist etwas kleiner und das sieht nicht gut aus"). Greift NUR in Formularzeilen
   bzw. in Tabellenzeilen, die selbst ein Feld tragen (Erfassungszeilen) — reine Aktionsspalten in
   Listen bleiben bewusst kompakt bei 32.

   HIER statt in buttons (verschoben am 14.09.2026): die Regel beschreibt die FELDZEILE, und die
   gehört diesem Modul. In buttons griff sie über .mage-field-body in fremdes Eigentum, und die
   naheliegende Abhilfe — buttons deklariert forms — hätte einen Ring erzeugt (forms braucht
   buttons für die Knopf-Rollen). So hat die Feldzeile EINEN Eigentümer, und forms deklariert
   buttons, nicht umgekehrt. */
.mage-field-body .ac-btn-action,
.cc-input-row .ac-btn-action,
tr:has(.form-control) .ac-btn-action,
tr:has(.mpp-trigger) .ac-btn-action,
tr:has(select) .ac-btn-action { width: var(--sz-36); height: var(--sz-36); }

/* Hochladen nur als Symbol (Design::uploadBtn ['iconOnly'=>true], seit Kern 2.5.0): quadratisch in
   Voll-Knopf-Höhe; den zugänglichen Namen und den Tooltip trägt der Baustein aus der Beschriftung. */
.cc-upload-btn.cc-upload-btn-ico { width: var(--sz-36); padding: 0; justify-content: center; }

/* ============================================================================
   Badges — die EINE Status-/Label-Plakette. Baustein: Core\Design::badge().
   Vorher in datatable.css (nur dort sichtbar) — jetzt Kernmodul, damit dieselbe
   Plakette in Wartung, Health, Modulen … identisch aussieht. Kein anderes Modul
   definiert .badge-status neu (Compliance erzwingt es).
   ============================================================================ */
.badge-status {
    display: inline-block;
    font-size: var(--fs-xs);
    padding:var(--sp-0) var(--sp-2);
    font-weight: var(--fw-bold);
    border-radius: var(--radius);
    line-height: 1.6;
    color: var(--surface);
}
/* Erfolg (badges 1.7.5): Weiss auf --ok erreichte nur 3,29:1 (axe color-contrast, KI-Chat R3 „Verbunden"). Die dunklere
   Stufe --ok-h trägt Weiss mit 5,0:1; die Schrift ist das feste --on-dunkel, weil die Fläche im Dunkelmodus nicht kippt. */
.badge-status.bg-success   { background-color: var(--ok-h); color: var(--on-dunkel); }
.badge-status.bg-secondary { background-color: var(--grey-500); }
/* Schrift auf gesättigter Fläche = var(--on-o) wie bei den Knöpfen (buttons.css ac-btn-danger, cc-seg-ton-danger): --surface kippt im
   Dunkelmodus auf Dunkel und stand dann dunkel auf Rot (3,3:1, Befund KI-Chat R2 „Fehler"-Plakette); hell bleibt es Weiss. */
.badge-status.bg-danger    { background-color: var(--danger); color: var(--on-o); }
.badge-status.bg-info      { background-color: var(--info); color: var(--on-o); }   /* Design::badge(…, 'info') — badges 1.7.2 */
/* PLAKETTE HINTER TEXT (Design::medium/mono/muted . ' ' . Design::badge): das Leerzeichen allein sind
   ~4 px — die Plakette klebte am Namen. Nur hinter diesen Text-Bausteinen, nicht allgemein: in Reihen
   mit gap (.cc-chips, Kopf-Plaketten) setzt der Behälter den Abstand, dort bleibt es bei 0. */
:where(.txt-medium, .txt-mono, .txt-muted) + .badge-status { margin-left: var(--sp-2); }
/* FARBFELD VOR TEXT (Design::swatch . Design::medium …): mindestens 8 px Luft zum Namen, auch wenn
   der Aufrufer kein Leerzeichen dazwischen setzt. */
:where(.cc-swatch) + :where(.txt-medium, .txt-mono, .txt-muted) { margin-left: var(--sp-3); }

/* Chip/Tag (Design::chip) — kleine, neutrale Label-Plakette; Datenfarbe optional per style. */
/* CHIP-REIHE (Design::chips): Plaketten nebeneinander mit Luft, umbrechend. Und als Sicherheitsnetz:
   zwei Chips/Plaketten direkt hintereinander kleben NIE aneinander, auch ohne Wrapper. */
.cc-chips { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); min-width: 0; }
:where(.cc-chip + .cc-chip, .cc-chip + .badge-status, .badge-status + .cc-chip, .badge-status + .badge-status) { margin-left: var(--sp-2); }
:where(.cc-chips) > * { margin-left: 0 !important; }
.cc-chip { display: inline-block; background: var(--grey-100); color: var(--grey-700); font-size: var(--fs-xs); padding:var(--sp-0) var(--sp-3); border-radius: var(--radius); }

/* Status-Punkt (Design::statusDot) — kompakter Aktiv/Inaktiv-Indikator für Tabellenzellen. */
.cc-status-dot { width: var(--sz-8); height: var(--sz-8); border-radius: 50%; display: inline-block; }
.cc-status-dot.on { background: var(--ok); }
.cc-status-dot.off { background: var(--grey-300); }

/* Icon-Punkt (Design::iconDot) — runder farbiger Kreis mit Icon (Zugewiesen/Öffentlich/Privat …). */
.cc-icon-dot { width: var(--sz-30); height: var(--sz-30); border-radius: 50%; border: 2px solid var(--surface);
               display: inline-flex; align-items: center; justify-content: center; font-size: var(--fs-sm); color: var(--surface); }
.cc-icon-dot-ok { background: var(--ok); }
.cc-icon-dot-muted { background: var(--muted); }
.cc-icon-dot-info { background: var(--info); }
.cc-icon-dot-danger { background: var(--danger); }
.cc-icon-dot-warn { background: var(--warn); }

/* Gekürzter Chip (Design::chip ['truncate'=>true]) — lange Werte laufen nicht aus der Zelle. */
.cc-chip-trunc{max-width:var(--sz-180);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}

/* Warn-Ton der Badge-Skala (Design::badge 'warning'). */
.badge-status.bg-warning{background:var(--warn-bg);color:var(--warn-fg)}

/* Ton-Chips (Design::chip ['tone'=>…]) — weiche Fläche + kräftige Schrift der Kern-Skala statt Grau. */
.cc-chip-info   { background: var(--info-bg);   color: var(--info-fg); }
.cc-chip-ok     { background: var(--ok-bg);     color: var(--ok-fg); }
.cc-chip-warn   { background: var(--warn-bg);   color: var(--warn-fg); }
.cc-chip-danger { background: var(--danger-bg); color: var(--danger-fg); }

/* Marken-Ton des Status-Punkts (Design::statusDot(…, ['tone'=>'brand'])) — z.B. „ungelesen" in einer Nachrichtenliste. */
.cc-status-dot.cc-status-dot-brand { background: var(--o); }
/* Farbpunkt klein + rund (Design::swatch($c, ['dot'=>true])) — Flag-/Label-Markierung in Listen. */
.cc-swatch.cc-swatch-dot { width: var(--sz-10); height: var(--sz-10); border-radius: 50%; }
/* Datei-Chip (Design::fileChip): Büroklammer + Name im Kästchen — als Link öffnet er die Datei, mit X wird er entfernt. */
.cc-file-chip { display: inline-flex; align-items: center; gap: var(--sp-2); padding: var(--sp-2) var(--sp-3);
                border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-2); color: var(--text);
                cursor: pointer; text-decoration: none; }
.cc-file-chip:hover { border-color: var(--o); text-decoration: none; }
.cc-file-chip-rm { display: inline-flex; cursor: pointer; color: var(--muted); }
.cc-file-chip-rm:hover { color: var(--danger); }

/* Farbpunkt-Varianten (Design::swatch $o: round, size sm|md|lg, pick, opt) — Kategorie-/Terminfarben. */
.cc-swatch.cc-swatch-round { border-radius: 50%; }
.cc-swatch.cc-swatch-sm { width: var(--sz-8); height: var(--sz-8); flex-shrink: 0; }
.cc-swatch.cc-swatch-md { width: var(--sz-20); height: var(--sz-20); flex-shrink: 0; border: 2px solid transparent; }
.cc-swatch.cc-swatch-lg { width: var(--sz-24); height: var(--sz-24); }
/* pick = die Farbe ist wählbar (Klick öffnet eine Palette daneben). */
.cc-swatch.cc-swatch-pick { cursor: pointer; border: 2px solid color-mix(in srgb, var(--ink) 15%, transparent); box-shadow: var(--shadow-sm); transition: transform var(--dur-fast); position: relative; }
.cc-swatch.cc-swatch-pick:hover { transform: scale(1.15); border-color: color-mix(in srgb, var(--ink) 40%, transparent); }
/* opt = eine Option einer Palette; die gewählte trägt is-selected. */
.cc-swatch.cc-swatch-opt { cursor: pointer; border: 2px solid transparent; }
.cc-swatch.cc-swatch-opt:hover { border-color: var(--muted); }
.cc-swatch.cc-swatch-opt.is-selected { border-color: var(--ink); box-shadow: var(--focus); }
/* ring = wählbarer runder Punkt mit ABSTANDSRING (Design::swatch ['ring'=>true, 'selected'=>…]) — Farbwahl direkt auf
   einer farbigen Fläche (Notizzettel): der Ring steht mit Luft um den Punkt, Zeigen vergrössert leicht. */
/* Der Auswahl-Ring ist KEIN Fokus-Ring (den trägt :focus-visible über var(--focus)): Umriss mit Abstand zum Punkt. */
.cc-swatch.cc-swatch-ring { width: var(--sz-16); height: var(--sz-16); border-radius: 50%; margin: calc(var(--sp-1) + 2px);
                            outline-style: solid; outline-width: 2px; outline-color: transparent; outline-offset: var(--sp-1);
                            cursor: pointer; transition: transform var(--dur-fast) var(--ease); }
.cc-swatch.cc-swatch-ring:hover { transform: scale(1.15); }
.cc-swatch.cc-swatch-ring:focus-visible { box-shadow: var(--focus); }
.cc-swatch.cc-swatch-ring.is-selected { outline-color: var(--ink); }
/* Palette (Design::swatchPalette) — inline oder als Popover an einem pick-Farbpunkt (['pop'=>true]). */
.cc-swatch-pal { display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.cc-swatch-pal.cc-swatch-pop { position: absolute; top: calc(100% + 6px); left: 0; background: var(--surface); border: 1px solid var(--grey-300); border-radius: var(--radius); padding: var(--sp-2); gap: var(--sp-1); width: var(--sz-200); box-shadow: var(--shadow-md); z-index: var(--z-popover); }
.cc-swatch-pop .cc-swatch.cc-swatch-lg { width: var(--sz-22); height: var(--sz-22); }

/* Chip mit Baustein VOR dem Text (['lead'=>Design::icon|avatar]): Abstand zwischen Symbol und Text. Ohne diese Regel klebte das
   Symbol an einfachen und kleinen Chips am Text (KI-Chat R2, Kontext-Chip „Kein Vorwissen"); Pille, Entfernen- und
   Aktions-Chip setzen ihren Abstand weiter unten selbst (gleiche Spezifität, stehen später und gewinnen). */
.cc-chip:has(> .cc-chip-text) { display: inline-flex; align-items: center; gap: var(--sp-1); }

/* Pille (Design::chip ['pill'=>true, 'lead'=>…, 'remove'=>…]) — Person/Wert in einem Feld (Teilnehmer,
   Erinnerung): Avatar/Icon vorn, Name, kleines Entfernen-X. */
.cc-chip.cc-chip-pill { display: inline-flex; align-items: center; gap: var(--sp-2); padding: var(--sp-1) var(--sp-3) var(--sp-1) var(--sp-1); background: var(--grey-100); border-radius: var(--radius-pill); font-size: var(--fs-sm); color: var(--ink); }
.cc-chip-x { cursor: pointer; color: var(--muted); font-size: var(--fs-md); padding: 0 var(--sp-1); line-height: 1; background: none; border: 0; font-family: inherit; }
.cc-chip-x:hover { color: var(--danger-fg); }
/* Kräftige Plakette (['strong'=>true]) — Uhrzeit/„Ganztägig" auf Datenfarbe. */
.cc-chip.cc-chip-strong { font-size: var(--fs-2xs); font-weight: var(--fw-heavy); padding: var(--sp-1) var(--sp-3); letter-spacing: var(--tracking); }
/* Datenfarbe zur Laufzeit (['data'=>true]; Wert als --cc-color am Element oder einem Vorfahren). */
/* --cc-fg rechnet der Kern (Core\Design::lesbareSchrift) bzw. im Browser CC.fg — auf einem hellen
   Datenton wird daraus dunkle Schrift statt weisser. Der Rueckfall bleibt weiss: ohne gesetzte
   Datenfarbe steht hier das Marken-Orange. */
.cc-chip.cc-chip-data { background: var(--cc-color, var(--o)); color: var(--cc-fg, var(--surface)); }

/* Icon-Punkt klein (Design::iconDot ['size'=>'sm']) — Ecken-Marke einer Vorschau-Kachel, ohne Ring. */
.cc-icon-dot.cc-icon-dot-sm { width: var(--sz-18); height: var(--sz-18); border: 0; font-size: var(--fs-2xs); }
/* Neutraler Ton (Design::iconDot 'secondary') — dasselbe Dunkelgrau wie die secondary-Plakette. */
.cc-icon-dot-secondary { background: var(--grey-500); }
/* Schlagwort mit Datenfarbe als weicher Fläche (Design::chip ['tint'=>#hex]; Wert als --chip am Element). */
.cc-chip.cc-chip-tint { background: color-mix(in srgb, var(--chip) 13%, transparent); color: var(--chip); font-weight: var(--fw-bold); }
/* Kompakter Chip (Design::chip ['size'=>'sm']) — z.B. im Fuss einer Galerie-Karte. */
.cc-chip.cc-chip-sm { display: inline-flex; align-items: center; font-size: var(--fs-2xs); font-weight: var(--fw-bold); padding: var(--sp-1) var(--sp-2); }
/* Chip mit Entfernen-X (Design::chip ['remove'=>…]) — Text und X auf einer Linie, das X so klein wie der Text. */
.cc-chip.cc-chip-rm { display: inline-flex; align-items: center; gap: var(--sp-1); }
.cc-chip-rm > .cc-chip-x { font-size: var(--fs-2xs); padding: 0; }
/* Pille mit Entfernen-X behält den Pillen-Abstand (steht nach .cc-chip-rm und gewinnt). */
.cc-chip.cc-chip-pill.cc-chip-rm { gap: var(--sp-2); }
.cc-chip-pill.cc-chip-rm > .cc-chip-x { padding: 0 var(--sp-1); }

/* VARIANTE „fixed" (Design::badge(..., ['fixed' => true])) — feste Breite, eine Zeile, Überlänge
   mit … gekürzt. Für Listen, in denen die Plakette eine SPALTE ist und nicht mitwachsen soll
   (Projekt-URLs: Bezeichnung links in fester Spalte, Adresse daneben).
   Bis zum 15.09.2026 schnitt sich das projekte-Modul diese Form selbst zurecht — drei Regeln in
   seinem CSS auf unsere Klasse. Eine Variante gehört ihrem Besitzer.
   WARUM 'width' UND 'max-width': in einer Detail-Sidebar gilt [data-cc-sidepanel] .mage-table td > *
   { max-width:100% } (datatable) — dieselbe Zahl an Klassen plus ein Element, also gewichtiger als
   jede Regel, die nur .badge-status.badge-fixed nennt. Die alte Fassung im projekte-CSS verlor
   deshalb genauso (gemessen: 40px und 123px statt zweimal 100px), ohne dass es jemandem auffiel.
   'width' sagt dasselbe, ohne dass wir von einem fremden Modul wissen müssten. */
.badge-status.badge-fixed{flex:0 0 var(--sz-100);width:var(--sz-100);max-width:var(--sz-100);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}

/* Chip mit eigener Aktion (Design::chip ['action'=>…], seit Kern 2.5.0): die Chip-Fläche ist ein Knopf
   (öffnet z.B. Einstellungen), das Entfernen-× steht als Geschwister daneben — keine verschachtelten
   Bedienelemente. Ton, Grösse und Farbe kommen weiter vom Chip; der Knopf erbt sie. */
.cc-chip.cc-chip-act { display: inline-flex; align-items: center; gap: var(--sp-1); padding: 0; }
.cc-chip.cc-chip-act > .cc-chip-btn { display: inline-flex; align-items: center; gap: var(--sp-1); background: none; border: 0; margin: 0; padding: var(--sp-0) var(--sp-3); font: inherit; color: inherit; cursor: pointer; border-radius: inherit; }
.cc-chip.cc-chip-act > .cc-chip-btn:hover { background: color-mix(in srgb, var(--ink) 8%, transparent); }
.cc-chip.cc-chip-act > .cc-chip-btn[aria-pressed="true"] { background: color-mix(in srgb, var(--o) 15%, transparent); }
.cc-chip.cc-chip-act > .cc-chip-btn:focus-visible { outline: none; box-shadow: var(--focus); }
.cc-chip.cc-chip-act > .cc-chip-x { padding-right: var(--sp-2); }

/* ============================================================================
   Feedback — Callouts/Infoboxen + Flash. Baustein: Core\Design::infobox/flash.
   EINE Ton-Skala fürs ganze System (Farben aus Kern-Tokens), damit „Achtung"
   nicht mal orange und mal rot ist. Kein Modul baut eigene .alert/.info-box.
   ============================================================================ */
.cc-infobox {
    display: flex; align-items: flex-start; gap:var(--sp-3);
    padding:var(--sp-4) var(--sp-5);
    border: 1px solid var(--border);
    border-left: 3px solid var(--info);
    border-radius: var(--radius);
    background: var(--grey-50);
    font-size: var(--fs-base);
    margin: 0 0 var(--sp-5);
}
.cc-infobox .cc-ico { color: var(--info); margin-top: .1em; }
.cc-infobox-body { flex: 1; min-width: 0; }
.cc-infobox-body :last-child { margin-bottom: 0; }
.cc-infobox[hidden] { display: none; }   /* hidden-Attribut gewinnt gegen display:flex */

.cc-infobox-success { border-left-color: var(--ok); background: var(--ok-bg); }
.cc-infobox-success .cc-ico { color: var(--ok); }
.cc-infobox-warning { border-left-color: var(--warn); background: var(--warn-bg); }
.cc-infobox-warning .cc-ico { color: var(--warn); }
.cc-infobox-danger  { border-left-color: var(--danger); background: var(--danger-bg); }
.cc-infobox-danger  .cc-ico { color: var(--danger); }

/* Flash = kompakter, für Post-Action-Rückmeldung. */
.cc-flash { padding:var(--sp-2) var(--sp-4); font-size: var(--fs-sm); margin-bottom:var(--sp-3); }

/* Kompakter Leerzustand (Design::emptyState ['size'=>'sm']) — Seitenleiste, Trefferliste, Widget:
   linksbündig, ohne die grosse Luft des Seiten-Leerzustands (.cc-empty liegt global in core/Ui.php). */
.cc-empty.cc-empty-sm { padding: var(--sp-3) 0; font-size: var(--fs-sm); text-align: left; }

/* Fortschrittsbalken (Design::progress) — Status-Feedback. */
.cc-progress { position: relative; height:var(--sz-8); background: var(--grey-200); border-radius:var(--radius-pill); }   /* kein overflow:hidden — sonst ist die Prozentzahl (oben) abgeschnitten */
.cc-progress-bar { max-width: 100%; }
.cc-progress-bar { height: 100%; background: var(--info); border-radius:var(--radius-pill); transition: width var(--dur); }
.cc-progress-success .cc-progress-bar { background: var(--ok); }
.cc-progress-warning .cc-progress-bar { background: var(--warn); }
.cc-progress-danger .cc-progress-bar { background: var(--danger); }
.cc-progress-num { position: absolute; right: 6px; top: -18px; font-size: var(--fs-xs); color: var(--muted); }

/* SKALA MIT NADEL (Design::gauge) — 0–100 von rot nach gruen, die Nadel sitzt auf dem Wert.
   Gehoert zum feedback-Kernmodul, weil hier schon der Fortschrittsbalken wohnt: beide sagen
   „wie steht es?", nur mit anderer Frage (Fuellung vs. Position). Kein Fach-Modul bringt eigene
   Barometer-Optik mit — sonst sieht die Stimmung im Ticketing anders aus als beim Kunden.
   Farben ausschliesslich aus den Kern-Tokens (danger/warn/ok), Groessen aus der Groessenskala;
   die Nadel ist bewusst per calc() aus einem Token abgeleitet statt als roher Pixelwert. */
.cc-gauge { display: inline-flex; align-items: center; gap: var(--sp-3); vertical-align: middle; }
.cc-gauge-track { position: relative; width: var(--sz-100); height: var(--sz-8); border-radius: var(--radius);
                  background: linear-gradient(to right, var(--danger) 0%, var(--warn) 45%, var(--ok) 100%); }
/* Der helle Saum um die Nadel ist ein RAHMEN, kein Schatten: Schatten kommen im System aus der
   Kern-Skala (--shadow-*) und meinen „liegt darueber" — hier geht es nur um Lesbarkeit auf dem
   farbigen Verlauf. */
.cc-gauge-needle { position: absolute; top: calc(var(--sp-1) * -1); width: calc(var(--sz-6) / 2); height: var(--sz-14);
                   background: var(--text); border: 1px solid var(--surface); box-sizing: content-box;
                   border-radius: var(--radius); transform: translateX(-50%); }
.cc-gauge-val { font-size: var(--fs-sm); font-weight: var(--fw-bold); min-width: var(--sz-32); color: var(--text); }
.cc-gauge-empty { font-size: var(--fs-sm); color: var(--muted); }
.cc-gauge-lg .cc-gauge-track { width: var(--sz-200); height: var(--sz-12); }
.cc-gauge-lg .cc-gauge-needle { top: calc(var(--sp-2) * -1); height: var(--sz-20); }
.cc-gauge-lg .cc-gauge-val { font-size: var(--fs-lg); }

/* Toast (CC.notify.show): flüchtige Rückmeldung unten rechts — dieselbe Flash-Plakette wie
   Design::flash, gestapelt, klickbar zum Schliessen. EIN Toast fürs ganze System. */
.cc-toasts { position: fixed; right: var(--sp-8); bottom: var(--sp-8); z-index: var(--z-tooltip);
             display: flex; flex-direction: column; gap: var(--sp-3); max-width: min(90vw, var(--sz-440)); pointer-events: none; }
.cc-toasts .cc-flash { margin: 0; box-shadow: var(--shadow-md); background: var(--surface); pointer-events: auto; cursor: pointer;
                       animation: cc-slide-up var(--dur) var(--ease); }
.cc-toasts .cc-flash.cc-toast-out { opacity: 0; transition: opacity var(--dur) var(--ease); }

/* Keine Vorschau (Design::noPreview): grosses blasses Symbol, Name, Kennzeile, Hinweis, Download-Link (mit
   eigenem grossem Symbol darüber — beide Symbole teilen die Grösse, damit die Fläche ruhig wirkt). */
.cc-nopreview { text-align: center; color: var(--muted); padding: var(--sp-11); }
.cc-nopreview .cc-ico { font-size: var(--fs-display); display: block; margin-bottom: var(--sp-7); opacity: var(--op-dim); }
.cc-nopreview p { font-size: var(--fs-md); margin: var(--sp-3) 0; }
.cc-nopreview-hint[hidden] { display: none; }
.cc-nopreview-dl { font-size: var(--fs-base); font-weight: var(--fw-bold); margin-top: var(--sp-5); display: inline-block; }

/* Avatar — Baustein Core\Design::avatar. Farbe kommt deterministisch aus dem Namen (Inline-Style, Datenwert).
   Initialen in var(--on-o) wie jede Schrift auf gesättigter Fläche: --surface kippt im Dunkelmodus auf Dunkel und stand
   dann dunkel auf der Datenfarbe (Grün 3,1:1, Befund KI-Chat R2). Hell unverändert Weiss. */
.cc-avatar { display: inline-flex; align-items: center; justify-content: center; width:var(--sz-30); height:var(--sz-30);
             border-radius: 50%; color: var(--on-o); font-size: var(--fs-sm); font-weight: var(--fw-bold);
             overflow: hidden; vertical-align: middle; flex: none; }
.cc-avatar img { width: 100%; height: 100%; object-fit: cover; }
.cc-avatar-lg { width:var(--sz-44); height:var(--sz-44); font-size: var(--fs-md); }
.cc-avatar-sm { width:var(--sz-22); height:var(--sz-22); font-size: var(--fs-xs); }
.cc-avatar-xl { width: var(--sz-80); height: var(--sz-80); font-size: var(--fs-xxl); }

/* Avatar-Stapel (Design::avatarStack) — überlappend, spart Platz in Tabellen.
   Reihenfolge bleibt lesbar, weil der linke Avatar oben liegt (z-index absteigend über die Marke). */
.cc-avstack { display: inline-flex; align-items: center; padding-left: var(--sp-2); }
.cc-avstack .cc-avatar { margin-left: calc(var(--sz-30) / -3); border: 2px solid var(--surface); }
.cc-avstack .cc-avatar:first-child { margin-left: 0; }
.cc-avstack .cc-avatar:hover { z-index: var(--z-raised); transform: translateY(calc(var(--sp-1) * -1)); }
.cc-avstack-open { cursor: pointer; }
.cc-avstack-more { display: inline-flex; align-items: center; justify-content: center;
                   width: var(--sz-30); height: var(--sz-30); border-radius: 50%;
                   margin-left: calc(var(--sz-30) / -3); border: 2px solid var(--surface);
                   background: var(--grey-200); color: var(--grey-600);
                   font-size: var(--fs-xs); font-weight: var(--fw-bold); flex: none; }
.cc-avstack .cc-avatar, .cc-avstack-more { transition: transform var(--dur-fast); }

/* Mittlere Grösse — Listenzeilen mit mehrzeiligem Text (Design::entryRow). */
.cc-avatar-md { width: var(--sz-36); height: var(--sz-36); }

/* Anbieter-Marke (Design::avatar ['form'=>'marke'], seit Kern 2.5.0): abgerundetes Quadrat statt Kreis;
   die Schrift der Initialen folgt der Fläche (--cc-fg setzt der Baustein lesbar zur Datenfarbe).
   Grössen über die vorhandenen Klassen cc-avatar-sm|-md|-lg|-xl. */
.cc-avatar.cc-avatar-marke { border-radius: var(--radius-md); color: var(--cc-fg, var(--surface)); }

/* Menü — Baustein Core\Design::menu. Toggle via menu.js. Kein Modul baut eigene Dropdown-Menüs. */
.cc-menu-wrap { position: relative; display: inline-block; }
/* VARIANTE „in der Zeile" (Design::menu(['inline' => true])): der Rahmen reiht sich in eine
   Werkzeugleiste ein, statt als eigener Block zu stehen. Vorher stellten mail und ticketing das mit
   eigenen Regeln auf unsere Klasse um (15.09.2026). */
.cc-menu-wrap.cc-menu-inline { display: inline-flex; }
.cc-menu-trigger { cursor: pointer; display: inline-flex; }
/* GESCHLOSSEN steht im MARKUP (Design::menu rendert [hidden]), nicht hier: fiele diese Datei weg
   (menu abgeschaltet), stünde sonst jedes Menü des Systems dauerhaft offen. Das Attribut schaltet
   menu.js; der Verschluss selbst kommt aus dem Kern ([hidden]{display:none!important}, core/Ui.php).
   Die Klasse cc-menu-open am Rahmen bleibt der Zustands-Haken für Gastgeber (z.B. Mail-Liste). */
.cc-menu { position: absolute; right: 0; top: 100%; margin-top:var(--sp-1); min-width:var(--sz-160); z-index:var(--z-raised);
           background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
           box-shadow:var(--shadow-md); padding:var(--sp-1); display: block; }
.cc-menu-item { display: flex; align-items: center; gap:var(--sp-3); width: 100%; text-align: left; background: none;
                border: none; padding:var(--sp-2) var(--sp-4); border-radius: var(--radius); cursor: pointer;
                font-size: var(--fs-base); color: var(--ink); }
.cc-menu-item:hover { background: var(--grey-100); }
.cc-menu-sep { height: 1px; background: var(--border); margin:var(--sp-1) 0; }
/* Aktuelle Auswahl (Design::menu Eintrag ['current'=>true] → aria-current) — fett in Markenfarbe. */
.cc-menu-item[aria-current="true"] { font-weight: var(--fw-bold); color: var(--o); }

/* Am Viewport verankertes Menü ([data-cc-menu-fixed] am Wrapper): liegt über allem Fenster-Inhalt,
   damit weder ein scrollender Listen-Container noch die Nachbarspalte es abschneidet oder verdeckt. */
.cc-menu-wrap[data-cc-menu-fixed] .cc-menu { position: fixed; right: auto; top: auto; margin-top: 0; z-index: var(--z-popover); }

/* Kontextmenü (Design::contextMenu + menuItem) — ohne Auslöser frei am Zeiger (Rechtsklick auf den Desktop);
   Lage (left/top) und Sichtbarkeit (hidden) steuert das Modul. Etwas luftiger als das Dropdown. */
.cc-menu.cc-menu-ctx { display: block; position: fixed; right: auto; top: auto; margin-top: 0; z-index: var(--z-sticky);
                       min-width: var(--sz-180); padding: var(--sp-2); }
.cc-menu.cc-menu-ctx[hidden] { display: none; }
.cc-menu-ctx .cc-menu-item { padding: var(--sp-3) var(--sp-4); font-family: inherit; line-height: inherit; font-size: var(--fs-sm);
                             color: var(--text); white-space: nowrap; }
.cc-menu-ctx .cc-menu-item:hover { background: var(--grey-50); color: var(--o); }

/* Aufklapp-Fläche (Design::popover) — z.B. Filter-Panel unter einem Knopf. Öffnen/Lage steuert das Modul.
   DIE FLÄCHE IST DIE GRUNDLAGE JEDES AUFKLAPPENDEN PANELS: Menü, Kontextmenü, Filter-Panel — und seit
   dem 15.09.2026 auch das Dropdown des Wählers (picker). Dort stand dieselbe Fläche ein zweites Mal
   mit eigenem Rahmen, eigenem Schatten und eigener Rundung; zwei Bausteine für „Fläche klappt auf"
   laufen beim ersten Farb- oder Radius-Wechsel auseinander. */
.cc-popover { background: var(--surface); border: 1px solid var(--grey-300); border-radius: var(--radius); box-shadow: var(--shadow-md); padding: var(--sp-7); }
/* Variante OHNE Innenabstand: der Inhalt bringt seinen eigenen mit (Listen, Suchzeile, Zeilen). */
.cc-popover.cc-popover-flush { padding: 0; }

/* Dropzone — Datei-Upload-Fläche (Design::file). Drag&Drop + klick-durchsuchen. Verhalten: dropzone.js. */
.cc-dropzone {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap:var(--sp-2);
    padding:var(--sp-8) var(--sp-7);
    border: 1px dashed var(--grey-300);
    border-radius:var(--radius);
    background: var(--grey-50);
    color: var(--muted);
    font-size:var(--fs-base);
    text-align: center;
    cursor: pointer;
    transition: border-color var(--dur-fast), background var(--dur-fast);
}
.cc-dropzone:hover { border-color: var(--o); background: var(--surface); }
.cc-dropzone.cc-dropzone-over { border-color: var(--o); background: var(--surface); color: var(--ink); }
.cc-dropzone-ico { font-size:var(--fs-xl); color: var(--muted); }
.cc-dropzone:hover .cc-dropzone-ico, .cc-dropzone-over .cc-dropzone-ico { color: var(--o); }
.cc-dropzone-text strong { color: var(--o); font-weight:var(--fw-bold); }
.cc-dropzone-file { font-size:var(--fs-sm); color: var(--ink); font-weight:var(--fw-med); }
.cc-dropzone-file:empty { display: none; }

/* Ablage-Hinweis über einem ganzen Fenster (Design::dropOverlay) — sichtbar mit cc-drop-overlay-on (schaltet das Modul). */
.cc-drop-overlay { display: none; position: fixed; inset: 0; z-index: var(--z-drawer); align-items: center; justify-content: center; pointer-events: none;
                   background: color-mix(in srgb, var(--o) 8%, transparent); border: 3px dashed var(--o); }
.cc-drop-overlay.cc-drop-overlay-on { display: flex; }
.cc-drop-overlay-inner { display: flex; flex-direction: column; align-items: center; gap: var(--sp-5); color: var(--o); font-size: var(--fs-lg); font-weight: var(--fw-bold); }
.cc-drop-overlay-inner > .cc-ico { font-size: var(--fs-display); }

/* Ablage-Leiste (Design::dropStrip) — schmale Zeile „Datei hierher ziehen oder …" am Rand; beim Darüberziehen
   (cc-dropzone-over, setzt das Modul-JS) Kante + Text in Markenfarbe, wie die grosse Dropzone. */
.cc-drop-strip { border-top: 1px dashed var(--border); }
.cc-drop-strip-row { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; color: var(--muted); font-size: var(--fs-sm); }
.cc-drop-strip-hint { margin-left: auto; font-size: var(--fs-xs); }
.cc-drop-strip.cc-dropzone-over { border-color: var(--o); background: var(--grey-50); }
.cc-drop-strip.cc-dropzone-over .cc-drop-strip-row { color: var(--o); }

/* Kitchen-Sink — nur Anordnung (Modul-Präfix .cs-*); jedes Aussehen kommt aus den Kern-Bausteinen. */
.cs-pickw{min-width:var(--sz-260)}
/* Der Rail-Demo-Kasten ist ein EINGEBETTETES Beispiel — die Vollhöhe (100vh) des windownav-Kern-Layouts gilt hier nicht. */
.cs-main .cs-wn-demo{height:var(--sz-200)!important;min-height:0!important;max-height:var(--sz-200)!important}
.cs-wn-body{padding:var(--sp-7)}
.cs-drag-stage{position:relative;height:var(--sz-120)}
.cs-drag-chip{position:absolute;left:var(--sp-4);top:var(--sp-4)}

/* ===== Fenster (Content-Level 1) ===== */
/* transform bleibt DAUERHAFT übergangsfähig: die Fenster-Übersicht (unten) verkleinert die echten
   Fenster per scale() an ihren Platz und wieder zurück. Ziehen/Grösse laufen über left/top/width/
   height und bleiben davon unberührt — die haben bewusst KEINEN Übergang. */
.cc-win{position:absolute;width:var(--sz-820);height:var(--sz-560);max-width:calc(100vw - 40px);max-height:calc(100vh - 40px);
  background:var(--surface);border:1px solid var(--grey-300);border-radius:var(--radius);box-shadow:var(--shadow-md);
  display:flex;flex-direction:column;overflow:hidden;
  transform-origin:0 0;transition:transform var(--dur-slow) var(--ease),box-shadow var(--dur) var(--ease)}
.cc-win.active{box-shadow:var(--shadow-md)}
/* maximiert: Nav-Widget links frei lassen, damit Ampel-Controls klickbar bleiben */
/* !important auch auf Breite/Höhe: nach einem Resize steht die Grösse als Stil am Element und
   würde sonst gewinnen — das Fenster wäre „maximiert", bliebe aber klein. */
/* position:fixed (seit 12.09.2026): die Arbeitsfläche scrollt, Vollbild meint aber den SICHTBAREN Bereich —
   ein absolut stehendes Vollbild-Fenster läge nach dem Scrollen oben ausserhalb. Die gemerkte Lage davor
   (__preMax, Flächen-Koordinaten) bleibt davon unberührt; window.js rechnet beim Lösen den Scroll ein. */
/* Der linke Rand ist DERSELBE wie der der Widget-Fläche: --cc-flaeche-left aus dem Kern (core/Ui.php),
   der der tatsächlich gemeldeten Navigationsbreite folgt (--nw-cur). Vorher stand hier viermal die
   rohe 286 — bei 220 breiter Navigation 66 px toter Streifen, und Fenster und Widgets begannen an
   verschiedenen Stellen. Ohne nav-Modul ist --nw-cur nicht gesetzt: dann beginnt die Fläche am Bildrand. */
/* Der Abzug rechts ist der Fenster-Rand aus der Kern-Skala (--sp-5 = 12px), derselbe wie oben. */
:root{--cc-win-links:var(--cc-flaeche-left);--cc-win-abzug:calc(var(--cc-flaeche-left) + var(--sp-5))}
.cc-win.cc-win-max{position:fixed;left:var(--cc-win-links)!important;top:12px!important;width:calc(100vw - var(--cc-win-abzug))!important;height:calc(100vh - 24px)!important}
.cc-win.cc-win-min{display:none}

.cc-win-bar{display:flex;align-items:center;gap:var(--sp-5);height:var(--sz-40);padding:0 var(--sp-5);background:var(--grey-50);
  border-bottom:1px solid var(--border);cursor:default;flex:0 0 auto;user-select:none}
.cc-win-lights{display:flex;gap:var(--sp-3);flex:0 0 auto}
.cc-lg{width:var(--sz-12);height:var(--sz-12);border-radius:50%;border:0;cursor:pointer;padding:0;position:relative}
.cc-lg-close{background:var(--win-close)}.cc-lg-min{background:var(--win-min)}.cc-lg-max{background:var(--win-max)}
.cc-lg:hover{filter:brightness(.9)}
.cc-win-title{flex:1;text-align:center;font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--grey-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-win-tools{display:flex;gap:var(--sp-1);flex:0 0 auto}
.cc-win-tool{width:var(--sz-26);height:var(--sz-26);border:0;background:none;border-radius:var(--radius);color:var(--grey-500);cursor:pointer;font-size:var(--fs-md);line-height:1}
.cc-win-tool:hover{background:var(--border);color:var(--ink)}

/* Kein Top-Padding: sonst lugen beim Scrollen Zeilen im Padding ÜBER dem sticky Tabellen-Kopf durch.
   Der 18px-Abstand oben kommt aus einem mitscrollenden ::before-Spacer → Header klebt bündig (top:0). */
.cc-win-body{flex:1;overflow:auto;background:var(--surface);padding:0 var(--sp-7) var(--sp-7);
  /* Am Listenende NICHT die (seit 12.09.2026 scrollbare) Arbeitsfläche mitreissen — sonst springt der
     Desktop weg, sobald eine Tabelle ausgescrollt ist. Über Wall und Titelleiste scrollt die Fläche normal. */
  overscroll-behavior:contain}
.cc-win-body::before{content:'';display:block;height:var(--sz-18)}
.cc-win-loading{display:flex;align-items:center;justify-content:center;height:100%}
.cc-win-empty{padding:var(--sp-11);text-align:center;color:var(--muted);font-size:var(--fs-md)}

/* Resize-Handle unten rechts */
.cc-win-resize{position:absolute;right:0;bottom:0;width:var(--sz-16);height:var(--sz-16);cursor:nwse-resize;z-index:var(--z-raised)}
.cc-win-resize::after{content:"";position:absolute;right:3px;bottom:3px;width:var(--sz-6);height:var(--sz-6);border-right:2px solid var(--grey-300);border-bottom:2px solid var(--grey-300)}
/* Auch im Vollbild greifbar: der Anfasser holt das Fenster aus dem Vollbild (window.js: freezeMaximized). */

/* Spinner (bis Modul `spinner` eigene Variante liefert) */
/* Lade-Kringel = KERN-Spinner (mage-spinner, spinner-Modul) — kein zweiter Spinner im System. */

/* ================================================================================
   FENSTER-UMSCHALTER — ersetzt die frühere Taskleiste am unteren Rand.
   Zwei gleichwertige Wege, keiner drängt sich auf:
     (1) die Leiste hier am rechten Bildschirmrand,
     (2) die Navigation (nav-Modul: Punkt am Eintrag + Gruppe „Offen").
   Die Leiste zeigt je offenem Fenster EINEN senkrechten Strich — mehr nicht. Ein Klick auf
   einen Strich öffnet die Übersicht, in der die ECHTEN Fenster verkleinert nebeneinander
   liegen (kein Abbild: dasselbe DOM, nur per scale() kleiner).

   TREFFFLÄCHE (Florian 12.09.2026: „die Striche sind zu schmal zum Klicken"):
   Sichtbar bleibt alles in der 12px-Rinne, die ein maximiertes Fenster rechts ohnehin frei
   lässt (.cc-win-max: right = 12px) — der Strich verdeckt also NIE Fensterinhalt. Er ist
   dafür doppelt so breit wie vorher (--sz-6 = 6px statt 3px), beim Überfahren 8px + orange.
   Die TREFFFLÄCHE reicht zusätzlich unsichtbar nach links über die Rinne hinaus: der Behälter
   ist --sz-12 + --sz-16 = 28px breit.
   Damit dieses Übermass Klicks auf den Fensterinhalt NICHT dauerhaft blockiert:
     .cc-ws (der ganze, bildschirmhohe Behälter) hat pointer-events:none,
     nur die .cc-ws-bar-Zeilen haben pointer-events:auto.
   Es fängt also ausschliesslich dort, wo wirklich ein Strich steht (je Fenster ~28px hoch,
   mittig gebündelt) — der Rest der rechten Kante bleibt komplett durchlässig. Der Klick
   blubbert vom Strich zum <button> hoch, der Umschalt-Handler in window.js bleibt unverändert.
   (Ein ::before als Trefffläche geht hier NICHT: tooltip.css blendet die Pseudo-Elemente jedes
   [data-tooltip] per !important aus — und die Striche tragen den Fenstertitel als Zeigetext.)
   ================================================================================ */
/* padding:0 ist PFLICHT: der Browser gibt einem <button> von Haus aus seitlichen Innenabstand —
   der frisst die Rinne komplett auf, und die Striche darin messen dann 0 Pixel. */
.cc-ws{position:fixed;right:0;top:0;bottom:0;width:calc(var(--sz-12) + var(--sz-16));z-index:var(--z-window);
  /* align-items:flex-end statt stretch: die Zeilen füllen ohnehin 100% Breite — aber sobald eine
     SCHMALER wird (Übersicht, s.u.), muss sie am rechten Rand kleben und nicht am linken. */
  display:none;flex-direction:column;align-items:flex-end;justify-content:center;gap:var(--sp-1);
  margin:0;padding:0;border:0;background:none;appearance:none;-webkit-appearance:none;
  pointer-events:none}
.cc-ws.cc-ws-live{display:flex}
/* Der Fokus-Ring sitzt an den STRICHEN, nicht am (jetzt 28px breiten, unsichtbaren) Behälter —
   sonst läge ein oranger Rahmen quer über der rechten Fensterkante. */
.cc-ws:focus-visible{outline:none}
.cc-ws:focus-visible .cc-ws-tick{box-shadow:var(--focus)}

/* Ein Strich je Fenster. Der ÄUSSERE Kasten ist die Trefffläche (volle 28px breit, --sp-1 Luft
   über und unter dem Strich), sichtbar ist nur der Strich rechts darin.
   Höhe = Strichhöhe + 2x --sp-1 Polster: box-sizing ist global border-box, der Strich behält
   damit exakt seine bisherige Höhe (20 / 36 / 10 px) und nur der Fangbereich wächst.
   Der Strich ist ein ECHTES Element, kein ::after: tooltip.css blendet die Pseudo-Elemente
   jedes [data-tooltip] per !important aus (Schutz gegen CSS-Tooltips von früher) — und der
   Zeigetext mit dem Fenstertitel gehört genau hierhin. */
.cc-ws-bar{position:relative;display:flex;align-items:stretch;justify-content:flex-end;
  width:100%;height:calc(var(--sz-20) + 2 * var(--sp-1));
  padding:var(--sp-1) var(--sp-1) var(--sp-1) 0;cursor:pointer;pointer-events:auto;
  transition:height var(--dur) var(--ease)}
.cc-ws-tick{width:var(--sz-6);border-radius:var(--radius-pill);
  background:color-mix(in srgb, var(--surface) 55%, transparent);
  transition:background var(--dur) var(--ease),width var(--dur) var(--ease)}
/* Zeigen auf IRGENDEINEN Strich hellt die ganze Leiste auf (war vorher .cc-ws:hover — der greift
   nicht mehr, weil der Behälter keine Zeigerereignisse mehr annimmt).
   :has() steckt in :where(), damit es NICHTS zur Spezifität beiträgt: sonst schlägt diese Regel
   (0,4,0) den gezielten Überfahr-Effekt am einzelnen Strich (0,3,0) — der Strich unter dem Zeiger
   würde dann breiter, aber nicht orange (in Chromium nachgemessen). So bleibt die Rangfolge exakt
   die von vorher (.cc-ws:hover war ebenfalls 0,2,0). */
.cc-ws:where(:has(.cc-ws-bar:hover)) .cc-ws-tick{background:color-mix(in srgb, var(--surface) 85%, transparent)}
.cc-ws-bar.cc-ws-on{height:calc(var(--sz-36) + 2 * var(--sp-1))}
.cc-ws-bar.cc-ws-on .cc-ws-tick,.cc-ws:where(:has(.cc-ws-bar:hover)) .cc-ws-bar.cc-ws-on .cc-ws-tick{background:var(--o)}
.cc-ws-bar.cc-ws-min{height:calc(var(--sz-10) + 2 * var(--sp-1))}
.cc-ws-bar.cc-ws-min .cc-ws-tick{background:color-mix(in srgb, var(--surface) 30%, transparent)}
/* Überfahr-Effekt am gemeinten Strich: doppelte Breite (8px füllt die Rinne bündig aus) + orange.
   Steht NACH den Zustandsregeln, damit er bei gleicher Spezifität gewinnt. */
.cc-ws-bar:hover .cc-ws-tick{width:var(--sz-8);background:var(--o)}

/* In der ÜBERSICHT zieht sich die Trefffläche auf die Rinne zurück: dort liegen die verkleinerten
   Fenster bis auf 12px an den rechten Rand (window.js rechnet mit WS_STRIP = 12), und ein Klick auf
   die überstehende Fangzone würde die Übersicht schliessen statt die gemeinte Kachel zu wählen.
   Der Behälter selbst bleibt anklickbar — die Übersicht lässt sich weiter über die Leiste zumachen. */
body:has(.cc-winlayer.cc-ws-expo) .cc-ws-bar{width:var(--sz-12)}

/* Zeigen auf einen Strich hebt das GEMEINTE Fenster hervor — man sieht vor dem Klick, welches es ist. */
.cc-win.cc-ws-hl{box-shadow:var(--focus),var(--shadow-lg)}

/* ---- Übersicht: alle echten Fenster verkleinert ----
   Der Schleier liegt IM Fenster-Layer (z unter jedem Fenster, das dort bei 300 aufwärts steht) —
   so bleiben die Fenster darüber sichtbar und der Schleier deckt trotzdem Wall und Navigation. */
/* position:fixed: der Layer ist seit 12.09.2026 so gross wie die gewachsene Fläche — der Schleier und die
   Beschriftungen darin gehören aber auf den SICHTBAREN Ausschnitt (relayout rechnet in Viewport-Werten). */
.cc-ws-scrim{position:fixed;inset:0;z-index:var(--z-base);background:var(--scrim);backdrop-filter:blur(3px);
  opacity:0;transition:opacity var(--dur) var(--ease)}
.cc-ws-scrim.cc-ws-in{opacity:1}
.cc-winlayer.cc-ws-expo .cc-win{cursor:pointer}
/* Einen Takt ohne Übergang: wählt man in der Übersicht ein Fenster ausserhalb des Ausschnitts, scrollt
   window.js erst hin und setzt die Verkleinerung für die neue Scrolllage neu — ohne diese Klasse liefe
   das Fenster dabei sichtbar um die Scrollstrecke hin und her. */
.cc-winlayer.cc-ws-jump .cc-win{transition:none}
.cc-winlayer.cc-ws-expo .cc-win.cc-win-min{display:flex}          /* minimierte gehören in die Übersicht */
.cc-winlayer.cc-ws-expo .cc-win > *{pointer-events:none}           /* Inhalt ist Vorschau, nicht bedienbar */
.cc-winlayer.cc-ws-expo .cc-win:hover{box-shadow:var(--focus),var(--shadow-lg)}

/* Beschriftung je Kachel — sitzt AUSSERHALB des skalierten Fensters, bleibt also lesbar. */
.cc-ws-cap{position:absolute;text-align:center;font-size:var(--fs-sm);font-weight:var(--fw-bold);
  color:var(--surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  opacity:0;transition:opacity var(--dur) var(--ease);pointer-events:none}
.cc-ws-cap.cc-ws-in{opacity:1}
.cc-ws-cap-min{opacity:var(--op-soft);font-weight:var(--fw-normal);font-style:italic}
.cc-ws-hint{position:absolute;left:0;right:0;bottom:var(--sp-7);text-align:center;font-size:var(--fs-sm);
  color:color-mix(in srgb, var(--surface) 70%, transparent);opacity:0;transition:opacity var(--dur) var(--ease);pointer-events:none}
.cc-ws-hint.cc-ws-in{opacity:1}

/* Ruhigere Bewegung, wenn der Nutzer das so eingestellt hat. */
@media (prefers-reduced-motion:reduce){
  .cc-win,.cc-ws-bar,.cc-ws-tick,.cc-ws-scrim,.cc-ws-cap,.cc-ws-hint{transition:none}
}

/* ---- Snap-Hinweis beim Ziehen an den Rand ---- */
.cc-snap-hint{position:fixed;z-index:var(--z-window);pointer-events:none;background:color-mix(in srgb, var(--o) 16%, transparent);
  border:2px solid var(--o);border-radius:var(--radius);transition:all var(--dur-fast) ease}
.cc-snap-hint.cc-snap-left{left:var(--cc-win-links);top:12px;width:calc((100vw - var(--cc-win-abzug))/2 - 3px);height:calc(100vh - 24px)}
.cc-snap-hint.cc-snap-right{left:calc(var(--cc-win-links) + (100vw - var(--cc-win-abzug))/2 + 3px);top:12px;width:calc((100vw - var(--cc-win-abzug))/2 - 3px);height:calc(100vh - 24px)}
.cc-snap-hint.cc-snap-max{left:var(--cc-win-links);top:12px;width:calc(100vw - var(--cc-win-abzug));height:calc(100vh - 24px)}

/* ---- Verbesserter Fehler-/Leer-Zustand im Fenster ---- */
.cc-win-empty-ico{font-size:var(--fs-xxl);color:var(--warn);margin-bottom:var(--sp-3)}
.cc-win-empty-sub{font-size:var(--fs-sm);color:var(--muted);margin-top:var(--sp-1)}
.cc-win-empty-retry{margin-top:var(--sp-6);border:1px solid var(--border);background:var(--surface);
  color:var(--text);padding:var(--sp-2) var(--sp-7);border-radius:var(--radius);font-size:var(--fs-base);cursor:pointer}
.cc-win-empty-retry:hover{background:var(--o);border-color:var(--o);color:var(--surface)}

/* Kind randlos über die volle Fensterbreite (bricht aus dem 18px-Body-Padding aus). */
.cc-win-flush{margin-left:calc(-1 * var(--sp-7));margin-right:calc(-1 * var(--sp-7))}

/* SCHMALES BILD (Telefon): ein Fenster füllt die Fläche, Ziehen am Rand entfällt. Die Regeln standen
   bis zum 15.09.2026 in der Shell (core/Ui.php) und steuerten von dort das Aussehen dieses Moduls
   mit !important fern — obwohl .cc-win* laut Core\Compliance (chrome-look) diesem Modul gehört.
   Das !important bleibt: es überschreibt die Inline-Geometrie, die window.js an jedes Fenster
   schreibt (left/top/width/height), und gegen ein style-Attribut hilft nichts anderes. */
@media (max-width:720px) {
    .cc-winlayer .cc-win { left:8px!important; top:8px!important;
        width:calc(100vw - 16px)!important; height:calc(100vh - 90px)!important;
        max-width:none!important; max-height:none!important; }
    .cc-winlayer .cc-win.cc-win-max { left:8px!important; top:8px!important;
        width:calc(100vw - 16px)!important; height:calc(100vh - 90px)!important; }
    .cc-win-resize { display:none; }
}

/* ---- Standwache (1.17.0): „Naberion wurde aktualisiert — Neu laden" ----
   Die Box ist die Kern-Infobox (feedback, Ton warning); hier nur ihr Sitz. Im Desktop-Fenster eine randlose Leiste
   zwischen Titelleiste und Rumpf (schrumpft nie, scrollt nicht mit), in einem eigenen Fenster (?fenster=1) oben an
   der Seite über allem. Der Knopf ist der Fenster-Knopf .cc-win-empty-retry — hier ohne seinen Abstand nach oben. */
.cc-win-stand{flex:0 0 auto;margin:0;border-radius:0;border-width:0 0 1px 0;align-items:center}
.cc-win-stand .cc-infobox-body{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap}
.cc-win-stand .cc-win-empty-retry{margin-top:0}
.cc-win-stand-fest{position:fixed;top:0;left:0;right:0;z-index:var(--z-overlay)}

/* ===== Navigations-WIDGET (schwebend, links auf dem Desktop) ===== */
/* Nav-Widget gehört zur WALL — Fenster (--z-window) liegen IMMER darüber (--z-raised).
   Volle Höhe (oben bis unten, wie im ERP). Die Breite ist FEST (Florian 12.09.2026: „nicht mehr in der
   Breite verstellbar") — kein Griff, kein gemerkter Nutzerwert mehr; nur das Einklappen ändert sie noch. */
.cc-nw{position:fixed;top:0;bottom:0;left:0;width:var(--sz-220);
  background:var(--surface);border:0;border-right:1px solid var(--border);border-radius:0;box-shadow:var(--shadow-md);
  display:flex;flex-direction:column;overflow:hidden;z-index:var(--z-raised)}
/* Kopf wie im ERP: Bildmarke mittig, der Klapp-Pfeil oben rechts, kein Schriftzug (nur für Screenreader). */
.cc-nw-head{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-8) var(--sp-5) var(--sp-6);border-bottom:1px solid var(--grey-200)}
.cc-nw-logo{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:var(--sz-100);line-height:1}
/* Das N sitzt geometrisch mittig (Kopf-Padding symmetrisch, Glyph im viewBox zentriert) — kein
   optischer Nudge mehr: der schob das Zeichen sichtbar nach rechts („nicht mittig"). */
.cc-nw-brand{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cc-nw-toggle{position:absolute;top:var(--sp-3);right:var(--sp-3);background:var(--grey-100);border-color:var(--grey-100);color:var(--grey-600)}
.cc-nw-toggle:hover{background:var(--grey-200);color:var(--grey-800)}
.cc-nw-body{flex:1 1 auto;padding:var(--sp-4) var(--sp-3) var(--sp-4);overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-0)}
.cc-nw-list{display:flex;flex-direction:column;gap:var(--sp-0)}

/* Einträge wie im ERP: schlichter Glyph, normale Schrift, kompakte Zeilen. */
.cc-nw-item{display:flex;align-items:center;gap:var(--sp-4);width:100%;text-align:left;padding:var(--sp-2) var(--sp-4);border:0;background:none;
  border-radius:var(--radius);color:var(--ink);font-size:var(--fs-base);font-weight:var(--fw-normal);line-height:var(--lh);cursor:pointer;
  transition:background var(--dur-fast),color var(--dur-fast)}
.cc-nw-item:hover{background:color-mix(in srgb,var(--o) 7%,var(--surface))}
.cc-nw-item.on{background:color-mix(in srgb,var(--o) 13%,var(--surface));color:var(--o)}

/* Icon = das echte Modul-Icon (Design::icon aus module.json), schlichter Glyph im ERP-Stil. */
.cc-nw-ico{display:inline-flex;align-items:center;justify-content:center;width:var(--sz-18);height:var(--sz-18);
  font-size:var(--fs-md);line-height:1;flex:0 0 auto;color:var(--grey-700)}
/* App-Bild als Nav-Icon (Design::icon mit Bildpfad): grösser als der 18px-Glyph-Slot, damit es erkennbar
   ist — das <img> IST hier das Icon-Element (cc-nw-ico), also direkt an ihm. */
img.cc-nw-ico.cc-ico-img{width:var(--sz-28);height:var(--sz-28)}
.cc-nw-item:hover .cc-nw-ico{color:var(--ink)}
.cc-nw-item.on .cc-nw-ico{color:var(--o)}
/* Buchstaben-Fallback (Modul ohne Icon) behält das dezente Kästchen. */
.cc-nw-ico-ltr{background:var(--grey-100);border-radius:var(--radius);font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--grey-700)}
.cc-nw-item.on .cc-nw-ico-ltr{background:var(--o);color:var(--surface)}

/* App-Marke als Nav-Icon (Core\Design::appMark) — DIE echte Duotone-Marke der Anwendung, dieselbe
   wie im Marktplatz, als Inline-SVG. currentColor-Duotone, damit der Aktiv-Tint (--o) greift; ein
   <img> könnte das nicht. Grösse über EIN Token (hell wie eingeklappt gleich), keine Inline-Masse. */
svg.cc-nw-ico{width:var(--sz-24);height:var(--sz-24);overflow:visible}
.cc-nw-ico-mark .glyph .z{fill:currentColor}
.cc-nw-ico-mark .glyph .f{fill:currentColor;opacity:var(--op-dim)}
/* Ringe nur als zarte Einfassung (ein Ring), die vier Marken-Striche im kleinen Slot weg — sonst
   wird das 24px-Zeichen unruhig; der Glyph trägt die Erkennbarkeit. */
.cc-nw-ico-mark .spur .r2{fill:none;stroke:currentColor;opacity:var(--op-faint);stroke-width:1.4}
.cc-nw-ico-mark .spur .r1,.cc-nw-ico-mark .spur .rd,.cc-nw-ico-mark .marken{display:none}

.cc-nw-lbl{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Umsortieren per Ziehen (nav.js): der gezogene Eintrag hebt sich ab, die Liste zeigt den Zieh-Zeiger. */
.cc-nw-list.cc-nw-sorting,.cc-nw-list.cc-nw-sorting .cc-nw-item{cursor:grabbing}
.cc-nw-item.cc-nw-dragging{background:var(--surface);box-shadow:var(--shadow-md);color:var(--o);position:relative;z-index:var(--z-raised)}
.cc-nw-item.cc-nw-dragging .cc-nw-ico{color:var(--o)}

/* Hinweis, wenn nichts angeheftet ist. */
.cc-nw-hint{font-size:var(--fs-sm);color:var(--muted);padding:var(--sp-4) var(--sp-3)}

/* Fester Fuss: DREI Einstiege nebeneinander (Konto, System, Suche) — Icon oben, Label darunter.
   Seit „Hintergrund" in die Konto-Sidebar gewandert ist, teilen sich nur noch drei Spalten die Breite:
   deshalb mehr Innenabstand und eine Stufe grössere Schrift (unten .cc-nw-fico/.cc-nw-flbl). */
.cc-nw-foot{flex:0 0 auto;padding:0;border-top:1px solid var(--grey-200);
  display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.cc-nw-fitem{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);
  min-width:0;padding:var(--sp-3) var(--sp-1);border:0;background:none;border-radius:0;
  color:var(--grey-700);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}
.cc-nw-fitem:hover{background:color-mix(in srgb,var(--o) 7%,var(--surface));color:var(--ink)}
.cc-nw-fitem:hover .cc-nw-fico{color:var(--o)}
/* Aktiv wie in der Liste: das vorne liegende Fenster (hier System) ist markiert. */
.cc-nw-fitem.on{background:color-mix(in srgb,var(--o) 13%,var(--surface));color:var(--o)}
.cc-nw-fitem.on .cc-nw-fico{color:var(--o)}
/* Drei Spalten statt vier = mehr Platz je Eintrag: Icon und Label eine Stufe grösser als vorher. */
.cc-nw-fico{font-size:var(--fs-lg);line-height:1;color:var(--grey-700)}
.cc-nw-flbl{max-width:100%;font-size:var(--fs-xs);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* eingeklappt: nur Icons (Zeigetext am Eintrag), kleinere Bildmarke. Das N-Monogramm ist EINE Figur —
   es wird nur verkleinert, nicht beschnitten (das frühere Zuschneiden galt der zweiteiligen DevQon-Marke). */
.cc-nw.cc-nw-collapsed{width:var(--sz-64)}
.cc-nw.cc-nw-collapsed .cc-nw-lbl,.cc-nw.cc-nw-collapsed .cc-nw-hint{display:none}
.cc-nw.cc-nw-collapsed .cc-nw-head{padding:var(--sp-9) var(--sp-2) var(--sp-4)}
.cc-nw.cc-nw-collapsed .cc-nw-logo{font-size:var(--sz-32)}
.cc-nw.cc-nw-collapsed .cc-nw-toggle{transform:rotate(180deg);top:var(--sp-1);right:var(--sp-1)}
.cc-nw.cc-nw-collapsed .cc-nw-item{justify-content:center;padding:var(--sp-3) 0}
.cc-nw.cc-nw-collapsed .cc-nw-ico{font-size:var(--fs-lg)}
/* Eingeklappt untereinander: drei Spalten hätten auf 64 px keinen Platz — nur die Icons, Zeigetext trägt den Namen. */
.cc-nw.cc-nw-collapsed .cc-nw-foot{grid-template-columns:1fr;padding:var(--sp-2)}
.cc-nw.cc-nw-collapsed .cc-nw-flbl{display:none}
.cc-nw.cc-nw-collapsed .cc-nw-fico{font-size:var(--fs-lg)}

/* Gast-Hinweis im leeren Nav (nicht angemeldet) */
.cc-nw-guest{margin:var(--sp-4) var(--sp-2);padding:var(--sp-6) var(--sp-5);text-align:center;background:var(--grey-50);border:1px solid var(--border);border-radius:var(--radius)}
.cc-nw-guest-txt{font-size:var(--fs-sm);color:var(--muted);margin-bottom:var(--sp-4)}
.cc-nw-login{width:100%;background:var(--o);color:var(--surface);border:0;border-radius:var(--radius);padding:var(--sp-3) var(--sp-6);font-size:var(--fs-base);font-weight:var(--fw-bold);cursor:pointer}
.cc-nw-login:hover{background:var(--o-h)}
.cc-nw.cc-nw-collapsed .cc-nw-guest-txt{display:none}

/* Breadcrumb (Design::breadcrumb) — Navigations-Pfad; gehört zum nav-Design. */
.cc-crumbs { display: flex; align-items: center; gap:var(--sp-2); font-size: var(--fs-sm); margin-bottom: var(--gap-sm); }
.cc-crumb { color: var(--muted); text-decoration: none; }
.cc-crumb:hover { color: var(--o); }
.cc-crumb-current { color: var(--ink); font-weight: var(--fw-med); }
.cc-crumb-sep { color: var(--border); display: inline-flex; }

/* ================================================================================
   OFFENE FENSTER IN DER NAVIGATION — der zweite, gleichwertige Weg zum Fenster-Wechsel
   (der erste ist die Randleiste rechts, window-Modul). Drei Teile:
     1. Punkt am angehefteten Eintrag: diese Anwendung LÄUFT gerade.
     2. Gruppe „Offen" am Fuss der Liste: Fenster, die NICHT angeheftet sind, tauchen
        trotzdem auf — so kann kein offenes Fenster unsichtbar werden.
     3. Vorschau beim Zeigen: der echte Fensterinhalt verkleinert, nicht nur der Name.
   ================================================================================ */

/* 1 — „läuft"-Punkt. Sitzt rechts im Eintrag; sein blosses Erscheinen ist das Signal
   (kein Pulsieren: die Kern-Dauern sind für einen Puls zu kurz, und eine eigene Dauer
   wäre eine erfundene Bewegungs-Skala). */
.cc-nw-live{width:var(--sz-6);height:var(--sz-6);border-radius:var(--radius-pill);background:var(--o);
  flex:0 0 auto;margin-left:auto}
.cc-nw-live.cc-nw-live-min{background:var(--grey-300)}
.cc-nw.cc-nw-collapsed .cc-nw-live{position:absolute;right:var(--sp-2);top:var(--sp-2);margin:0}
.cc-nw.cc-nw-collapsed .cc-nw-item{position:relative}

/* 2 — Gruppe „Offen": abgesetzt, aber nicht lauter als die angehefteten Einträge. */
.cc-nw-open{margin-top:var(--sp-4);padding-top:var(--sp-2);border-top:1px dashed var(--grey-200)}
.cc-nw-openhead{display:flex;align-items:center;gap:var(--sp-3);width:100%;border:0;background:none;
  padding:var(--sp-2) var(--sp-4) var(--sp-1);font-family:inherit;font-size:var(--fs-2xs);
  text-transform:uppercase;letter-spacing:var(--tracking);color:var(--grey-400);cursor:pointer;text-align:left}
.cc-nw-openhead:hover{color:var(--o)}
.cc-nw-opencount{margin-left:auto;font-variant-numeric:tabular-nums}
.cc-nw-item.cc-nw-ghost .cc-nw-lbl{color:var(--grey-600)}
.cc-nw-item.cc-nw-ghost.on .cc-nw-lbl{color:var(--o)}
.cc-nw-item.cc-nw-minned .cc-nw-lbl{font-style:italic;opacity:var(--op-soft)}
.cc-nw.cc-nw-collapsed .cc-nw-openhead{justify-content:center;padding:var(--sp-2) 0}
.cc-nw.cc-nw-collapsed .cc-nw-openlbl,.cc-nw.cc-nw-collapsed .cc-nw-opencount{display:none}

/* 3 — Vorschau: zeigt den ECHTEN, verkleinerten Fensterinhalt neben der Navigation. */
.cc-nw-peek{position:fixed;z-index:var(--z-popover);width:var(--sz-260);background:var(--surface);
  border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden;
  opacity:0;transform:translateX(calc(var(--sp-2) * -1));pointer-events:none;
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}
.cc-nw-peek.cc-nw-peek-in{opacity:1;transform:none}
.cc-nw-peek-h{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);
  background:var(--grey-50);border-bottom:1px solid var(--border);
  font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--grey-800);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-nw-peek-note{margin-left:auto;font-weight:var(--fw-normal);color:var(--grey-400);font-style:italic}
.cc-nw-peek-b{position:relative;overflow:hidden;background:var(--surface-2)}
/* Der geklonte Fensterknoten sitzt oben links und wird per transform verkleinert (JS rechnet den Massstab). */
.cc-nw-peek-b > .cc-win{position:absolute;left:0;top:0;transform-origin:0 0;
  border:0;border-radius:0;box-shadow:none;transition:none;max-width:none;max-height:none}

@media (prefers-reduced-motion:reduce){
  .cc-nw-peek{transition:none}
}

/* Dashboard — Lage der Desktop-Kacheln, Sichtbarkeit je Nutzer und Wackel-/Edit-Modus. Rahmen, Fläche und Titelleiste
   der Kachel (Design::widget → cc-widget), das Rechtsklickmenü (Design::contextMenu) und die runden Knöpfe
   (Design::iconBtn solid) kommen aus dem Kern; hier nur Anordnung und Zustände. */

/* Bewegliche Desktop-Widgets (Drag = dragdrop-Kern) */
.dash-widget{position:absolute;width:var(--sz-240)}

/* KACHELGRÖSSEN — Design::widget(['size'=>…]). Sie gehören HIERHER: die Fläche ist unsere.
   Bis zum 15.09.2026 setzten sich drei Gäste ihre Masse selbst, jeder auf unserer Klasse
   (terminals 360×500, notes 320, calendar 560) — drei Orte für eine Frage. */
.dash-widget.dash-w-sm{width:var(--sz-200)}
.dash-widget.dash-w-md{width:var(--sz-320)}
.dash-widget.dash-w-lg{width:var(--sz-360);height:var(--sz-500)}
.dash-widget.dash-w-xl{width:var(--sz-560)}

/* ── Sichtbarkeit je Nutzer: ausgeblendet ausser im Bearbeiten-Modus, dort gedimmt in ihrer eigenen Anzeigeart ── */
.cc-deskwidgets:not(.dash-editing) .dash-hidden{display:none}
.dash-editing .dash-hidden{opacity:var(--op-dim)}

/* ── Wackel-/Edit-Modus ──
   BEWUSST EIGEN (15.09.2026): das Wackeln beschreibt DIESEN Zustand dieser Fläche und kommt
   nirgends sonst vor. Wiederkehrende Bewegungen (fade, slide, puls, blink) stehen im
   animations-Kernmodul; ein gemeinsamer Baustein für einen einzigen Nutzer wäre keiner. */
.dash-editing .dash-widget:not(.dash-dragging){animation:dash-wobble var(--dur-slow) ease-in-out infinite}
@keyframes dash-wobble{0%,100%{transform:rotate(-0.7deg)}50%{transform:rotate(0.7deg)}}

/* Lösch-/Einblend-Knöpfe je Widget (Vorlage #dashWctlTpl): oben rechts, nur im Bearbeiten-Modus */
.dash-wctl{position:absolute;top:var(--sp-2);right:var(--sp-2);z-index:var(--z-raised);display:none;gap:var(--sp-2)}
.dash-editing .dash-wctl{display:flex}
.dash-wdel,.dash-wadd{display:none}
.dash-editing .dash-widget:not(.dash-hidden) .dash-wdel{display:flex}
.dash-editing .dash-widget.dash-hidden .dash-wadd{display:flex}

/* Die Widget-Auswahl in der Konto-Sidebar (Fragment AccountWidgets, Punkt 'dashboard.picker') nutzt
   seit K den GEMEINSAMEN Kachel-Baustein Design::pickTile/pickGrid (layout, .cc-picktile) — identisch
   zu Theme/Hintergrund, Aktiv = nur farbiger Rahmen. Hier daher KEIN eigenes Kachel-CSS mehr. */

/* Akkordeon-Tabs — 1:1 aus ERP (assets/css/mage-components.css) portiert.
   Fullwidth/flush, offen = beige, Header-Icon wird orange, Body mit 20px Außen-Spacing.
   Marken-Orange über var(--o); neutrale Grautöne wie im Original.

   WICHTIG (Lehre 2026-08-12): Diese Regeln hingen früher am Wrapper `.acctab`. Ein Modul, das
   Design::section() nutzte, aber den Wrapper vergass, bekam eine NACKTE Sektion (Projekte-Sidebar).
   Ein Kern-Baustein darf nicht davon abhängen, dass der Autor eine Magic-Klasse mitschreibt —
   „selbe Elemente = selbes Design". Deshalb greift das Design jetzt direkt an .accordion-section;
   `.acctab` ist nur noch die FLUSH-Variante (randlos in der Sidebar, Trennlinie oben). */
.accordion-section{background:var(--surface);border-bottom:1px solid var(--grey-300)}
.accordion-header{padding:var(--sp-7) var(--sp-8);background:var(--surface);cursor:pointer;user-select:none;
  display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);transition:background var(--dur-fast) ease}
.accordion-header:hover{background:var(--grey-50)}
/* Offener Abschnitt: blaue Kante links + blaue Tönung, der Auf-/Zu-Knopf wird orange gefüllt
   (Florian 2026-09-11, Vorschlag „Best-of"). */
.accordion-section.open > .accordion-header,
.accordion-section.open > .accordion-header:hover{background:color-mix(in srgb,var(--info) 7%,var(--surface));box-shadow:inset 4px 0 0 var(--info)}
.accordion-header h3{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text);display:flex;align-items:center;min-width:0}
.acc-h-icon{margin-right:var(--sp-4);font-size:var(--fs-lg);color:var(--grey-500);line-height:1;transition:color var(--dur-fast) ease}
.accordion-header:hover .acc-h-icon,
.accordion-section.open > .accordion-header .acc-h-icon{color:var(--o)}
.accordion-icon{transition:transform var(--dur) ease;color:var(--grey-700);font-size:var(--fs-md);width:var(--sz-32);height:var(--sz-32);
  border:1px solid var(--grey-400);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}
.accordion-header:hover .accordion-icon{border-color:var(--grey-500);color:var(--text)}
.accordion-section.open > .accordion-header .accordion-icon{transform:rotate(180deg);background:var(--o);border-color:var(--o);color:var(--surface)}
.accordion-content{max-height:0;overflow:hidden;transition:max-height var(--dur-slow) ease-out}
.accordion-section.open > .accordion-content{max-height:10000px;transition:max-height var(--dur-slow) ease-in}
.accordion-body{padding:var(--sp-8);background:var(--surface);border-top:1px solid var(--grey-200)}
/* VARIANTE „randlos" (Design::section(..., ['flush'=>true])): der Inhalt klebt an der Kante des
   Tabs, ohne Innenabstand. Für Arbeitsflächen, die ihre eigene Aufteilung mitbringen (Ticket-
   Datenblatt). Bis zum 15.09.2026 schnitt sich das Ticketing das selbst zurecht — mit einer Regel
   auf unsere Klasse in SEINEM CSS. Eine Variante gehört ihrem Besitzer. */
.accordion-section-flush > .accordion-content > .accordion-body{padding:0}

/* FLUSH-Variante (Sidebar): Trennlinie oben, damit die erste Sektion nicht am Kopf klebt. */
.acctab{border-top:1px solid var(--grey-300)}

/* ── Varianten seit Kern 2.5.0 (acctab 1.11.0), opt-in ──────────────────────────────────────────────
   KOPF-ZUSATZ (Design::section(['meta'=>['text'=>…]])): escapeter Klartext rechts im Kopf, vor dem
   Auf-/Zu-Knopf — nur Zähler/Zustand als Text (§0-18: der Titel bleibt reiner Text, kein HTML-Slot).
   Er steht NACH </h3>, damit Fenster-Navigationen, die den Titel aus <h3> lesen, ihn nicht mitnehmen. */
.acc-h-meta{margin-left:auto;min-width:0;font-size:var(--fs-sm);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* ZWEITE EBENE (['ebene'=>2]): gruppierter Unterbereich in Einstellungs-Sidebars — eingerückt, leiser
   Kopfgrund, schmale Info-Kante statt der breiten Kante der ersten Ebene. Nie für „Neu"-Formulare (§0-17). */
.accordion-section-ebene2{margin-left:var(--sp-7)}
.accordion-section-ebene2 > .accordion-header{padding:var(--sp-4) var(--sp-7);background:var(--surface-2);box-shadow:inset 2px 0 0 var(--info-bg)}
.accordion-section-ebene2 > .accordion-header h3{font-size:var(--fs-md)}
.accordion-section-ebene2.open > .accordion-header,
.accordion-section-ebene2.open > .accordion-header:hover{box-shadow:inset 2px 0 0 var(--info)}
.accordion-section-ebene2 > .accordion-content > .accordion-body{padding:var(--sp-7)}

.acl-table .acl-w{margin-left:var(--sp-3)}

/* Die Reichweite einer Zelle: gelesen wird sie als Wort, geändert erst nach dem Klick. Der Wähler
   selbst kommt aus der Kern-Vorlage — hier steht nur, wie der WERT aussieht. */
.acl-table .acl-reich-wert{width:100%;text-align:left}
.acl-table .acl-reich-leer{color:var(--c-muted)}

/* KI-Sichtbarkeit — nur Anordnung; Bausteine, Farben und Knöpfe kommen vom Kern. */
.av-main { min-width: 0; }
.av-facts { margin-top: var(--sp-6); }
/* Im Datenblatt laufen lange Zeichenketten (Selektoren, URLs, Messwerte) nicht aus der Sidebar. */
.av-sheet code, .av-sheet .txt-mono { word-break: break-all; }
.av-sheet table { max-width: 100%; }

/* Animationen — wiederverwendbare Klassen. Von allen Modulen nutzbar.
 *
 * WIEDERKEHRENDE BEWEGUNGEN STEHEN HIER, EINMAL (15.09.2026): Ein-/Ausblenden, Schieben, Puls,
 * Blinken, Drehen (letzteres beim spinner, weil es dort der Kreisel selbst ist). Ein Modul, das
 * eine dieser Bewegungen nachbaut, bekommt eine zweite Kurve für dieselbe Sache — gemessen waren
 * es sechs Eigenbauten, drei davon reine Wiederholungen.
 *
 * WAS BEIM MODUL BLEIBT: eine Bewegung, die NUR dort vorkommt und seine Sache beschreibt (das
 * Wackeln der Kacheln im Bearbeiten-Modus). Die gehört nicht hierher — sie ist keine Grundlage,
 * sondern ein Einzelfall, und ein gemeinsamer Baustein für einen einzigen Nutzer ist keiner. */
@keyframes cc-fade-in { from { opacity: 0 } to { opacity: 1 } }
@keyframes cc-slide-up { from { opacity: 0; transform: translateY(12px) } to { opacity: 1; transform: none } }
@keyframes cc-pulse { 0%,100% { transform: scale(1) } 50% { transform: scale(1.06) } }
/* Von links hereinschieben — die Bewegung, mit der Listen-Einträge einer Seitenleiste auftreten.
   Die Weite kommt vom Aufrufer (--anim-shift), damit eine schmale Rail weniger weit schiebt als
   eine breite Spalte. Bis zum 15.09.2026 führte windownav dafür einen eigenen Keyframe. */
@keyframes cc-slide-in-x { from { opacity: 0; transform: translateX(calc(-1 * var(--anim-shift, var(--sp-4)))) } }
/* Blinken — Aufmerksamkeit ohne Bewegung (Tippanzeige im Chat, „arbeitet gerade"). Vorher stand
   derselbe Keyframe im chat-Modul. */
@keyframes cc-blink { 0%, 80%, 100% { opacity: var(--op-faint) } 40% { opacity: 1 } }

.anim-fade-in { animation: cc-fade-in var(--dur) ease both; }
.anim-slide-up { animation: cc-slide-up var(--dur) ease both; }
.anim-slide-in-x { animation: cc-slide-in-x var(--dur-slow) ease both; }
.anim-pulse { animation: cc-pulse var(--dur-slow) ease-in-out infinite; }
.anim-blink { animation: cc-blink var(--dur-slow) infinite; }

/* ════════════════════════════════════════════════════════════════════════════
   Auftritt von Flächen: Rahmen zuerst, Inhalt als Welle hinterher.
   Owner dieser Bewegung ist ausschliesslich dieses Modul — window.css und
   sidebar.css setzen nur noch die Klassen, damit Fenster und Sidebar nicht
   auseinanderlaufen.

   Stellschrauben (bewusst hier und nicht im Kern: sie beschreiben EINE Bewegung,
   nicht das Grundraster):
     --wave-span   wie lange die Welle über den ganzen Inhalt braucht
     --wave-dur    Dauer für ein einzelnes Element
     --wave-shift  Versatz, aus dem ein Element hereinkommt
   ════════════════════════════════════════════════════════════════════════════ */
:root {
  --wave-span: .34s;
  --wave-dur: .26s;
  --wave-shift: 7px;
}

/* ── Rahmen ───────────────────────────────────────────────────────────────
   Der Rahmen ist schnell (--dur) — er soll nur „da sein", die Aufmerksamkeit
   trägt die Welle im Inhalt. */
@keyframes cc-frame-in  { from { opacity: 0; transform: scale(.95) } to { opacity: 1; transform: none } }
@keyframes cc-frame-out { from { opacity: 1; transform: none } to { opacity: 0; transform: scale(.97) } }

.cc-frame-in  { animation: cc-frame-in  var(--dur) var(--ease) both; }
.cc-frame-out { animation: cc-frame-out var(--dur-fast) var(--ease) both; }

/* ── Inhalts-Welle ────────────────────────────────────────────────────────
   --w (0…1) ist der Platz eines Elements in der Welle. Gesetzt von
   CC.anim.wave() aus der GEMESSENEN Lage, nicht aus der Reihenfolge im
   Markup — sonst liefe die Welle in Tabellen und mehrspaltigen Formularen
   quer zur Leserichtung.

   diag = von oben links nach unten rechts (Fenster-Inhalt)
   x    = von links nach rechts (Sidebar-Inhalt)
   Beim Schliessen kehrt (1 - --w) die Richtung um. */
@keyframes cc-wave-in-diag  { from { opacity: 0; transform: translate(calc(var(--wave-shift) * -1), calc(var(--wave-shift) * -1)) } to { opacity: 1; transform: none } }
@keyframes cc-wave-out-diag { from { opacity: 1; transform: none } to { opacity: 0; transform: translate(calc(var(--wave-shift) * -1), calc(var(--wave-shift) * -1)) } }
@keyframes cc-wave-in-x     { from { opacity: 0; transform: translateX(calc(var(--wave-shift) * -1.6)) } to { opacity: 1; transform: none } }
@keyframes cc-wave-out-x    { from { opacity: 1; transform: none } to { opacity: 0; transform: translateX(calc(var(--wave-shift) * -1.6)) } }

/* NACHFAHREN, nicht Kinder: die animierten Blätter liegen tief im Baum (Tabellenzelle in Zeile in
   Tabelle in Karte). Mit `>` blieben die Regeln am echten Inhalt wirkungslos — die Welle lief nicht.
   backwards beim Öffnen: das Element ist schon vor seinem Einsatz unsichtbar, sonst blitzte der
   ganze Inhalt einmal auf, bevor die Welle beginnt. */
.cc-wave-diag.cc-wave-in  [data-w] { animation: cc-wave-in-diag  var(--wave-dur) var(--ease) backwards; animation-delay: calc(var(--w) * var(--wave-span)); }
.cc-wave-x.cc-wave-in     [data-w] { animation: cc-wave-in-x     var(--wave-dur) var(--ease) backwards; animation-delay: calc(var(--w) * var(--wave-span)); }
/* Rücklauf gerafft (.6): beim Schliessen will niemand warten. */
.cc-wave-diag.cc-wave-out [data-w] { animation: cc-wave-out-diag var(--wave-dur) var(--ease) forwards;  animation-delay: calc((1 - var(--w)) * var(--wave-span) * .6); }
.cc-wave-x.cc-wave-out    [data-w] { animation: cc-wave-out-x    var(--wave-dur) var(--ease) forwards;  animation-delay: calc((1 - var(--w)) * var(--wave-span) * .6); }

@media (prefers-reduced-motion: reduce) {
  .anim-fade-in, .anim-slide-up, .anim-slide-in-x, .anim-pulse, .anim-blink,
  .cc-frame-in, .cc-frame-out,
  .cc-wave-diag.cc-wave-in [data-w], .cc-wave-x.cc-wave-in [data-w],
  .cc-wave-diag.cc-wave-out [data-w], .cc-wave-x.cc-wave-out [data-w] { animation: none !important; }
}

/* Autosave-Status — dezenter Inline-Hinweis am Feld. */
.cc-as-flag{display:none;font-size:var(--fs-xs);margin-top:var(--sp-1);color:var(--muted)}
.cc-as-flag.on{display:inline-block}
.cc-as-flag.saving{color:var(--muted)}
.cc-as-flag.saved{color:var(--ok)}
.cc-as-flag.error{color:var(--danger)}
/* OHNE Feldzeile (Control direkt in einer Tabellenzelle): die Marke steht einzeilig NEBEN dem Control,
   nicht darunter und nie umbrochen — im Schalter-Label war sie auf 44 px zerschnitten (autosave 1.6.1). */
.cc-as-flag.cc-as-flag-inline{margin-top:0;margin-left:var(--sp-3);white-space:nowrap;vertical-align:middle}

/* Board (Kanban) — Spalten nebeneinander, Karten darin. Nur Kern-Tokens. */
.cc-board { display: flex; gap: var(--sp-5); align-items: flex-start; overflow-x: auto; padding-bottom: var(--sp-5); }
.cc-board-col {
    flex: 0 0 var(--sz-280);
    /* Ohne min-width:0 zieht eine lange Karte die Spalte breit (Flex-Kinder haben min-width:auto) —
       dann steht statt eines Boards eine einzige Riesenspalte da. */
    min-width: 0; max-width: var(--sz-280);
    background: var(--grey-50);
    border: 1px solid var(--grey-200);
    border-radius: var(--radius);
    display: flex; flex-direction: column; max-height: 100%;
}
.cc-board-head {
    display: flex; align-items: center; gap: var(--sp-2);
    padding: var(--sp-4) var(--sp-5);
    border-bottom: 1px solid var(--grey-200);
    font-weight: var(--fw-bold); font-size: var(--fs-sm); color: var(--ink);
}
/* NUR ANORDNUNG (15.09.2026): der Zähler IST eine Plakette (Design::badge, Kernmodul badges) —
   Schrift, Farbe, Fläche und Radius kommen von dort. Vorher stand hier ein Nachbau, der bei
   jeder Änderung an den Plaketten stehengeblieben wäre. */
.cc-board-count { margin-left: auto; }
.cc-board-body { padding: var(--sp-3); display: flex; flex-direction: column; gap: var(--sp-3); overflow-y: auto; min-height: var(--sz-56); }
/* Karteninhalt kürzt statt die Spalte zu sprengen. */
/* Die Karte sagt nur die ZAHL DER ZEILEN; das Kürzen selbst steht in layout (.cc-ent-title). */
.cc-board-card .cc-ent, .cc-board-card .cc-ent-info { min-width: 0; }
.cc-board-card .cc-ent { --cc-ent-lines: 3; }
.cc-board-card {
    background: var(--surface); border: 1px solid var(--grey-200); border-radius: var(--radius);
    padding: var(--sp-4); cursor: grab; transition: box-shadow var(--dur-fast) ease, border-color var(--dur-fast) ease;
}
.cc-board-card:hover { border-color: var(--grey-400); box-shadow: var(--shadow-sm); }
.cc-board-card.cc-board-dragging { opacity: var(--op-half); cursor: grabbing; }
.cc-board-col.cc-board-over { border-color: var(--o); }
.cc-board-col.cc-board-over .cc-board-body { background: var(--info-bg); }
/* Farbe und Schriftgrösse tragen die Texte selbst (Design::muted, Kernmodul typo) — hier bleibt
   der Platz, den sie im Brett einnehmen. */
.cc-board-empty { padding: var(--sp-4); text-align: center; }
.cc-board-more { padding: var(--sp-2) var(--sp-3); text-align: center; }

/* calendar.css — NUR Anordnung. Die Kalender-Optik (Raster, Zellen, Heute, Feiertag, Termin-Chips und
   -Blöcke, dunkle Leiste/Werkzeugleiste, Mini-Monat, Monatsleiste, Kategorie-Ringe, Agenda-Karten,
   Trefferliste, Datums-/Bereichsauswahl, Widget) kommt aus dem Kern: Design::calendarPart → Kernmodul calgrid (modules/calgrid/design/css/calgrid.css).
   Plaketten, Farbpunkte, Avatare, Leerzustände, Hinweisboxen, Knöpfe aus badges/avatar/feedback/buttons.
   Auch der Termin-Einschub ist seit dem 13.09.2026 die Kern-Sidebar — das Modul baut keinen eigenen
   Rahmen mehr. Ein Overlay (lightbox) benutzt der Kalender seit demselben Tag NICHT mehr; deshalb steht
   lightbox seit dem 15.09.2026 auch nicht mehr unter requires.modules/ui_contract.uses. */

/* ── hidden-Overrides: Elemente mit display-setzenden Klassen müssen sich per [hidden] ausblenden lassen ── */
.cal-conflict-warn[hidden],
.cal-when-popover[hidden],
.cal-recur-end[hidden],
.cal-teams-link[hidden],
.cal-rem-custom[hidden],
.cal-readonly-note[hidden],
.cal-btn-delete[hidden],
.cal-btn-save[hidden] { display: none !important; }   /* „Speichern" im Nur-Lesen-Termin (setReadonly) — ohne das gewann display:inline-flex des Knopfs */

/* ── Split-Layout ── */
.cal-wrap { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.cal-split { display: flex; flex: 1; min-height: 0; }
/* Die Leiste trägt die Kern-Klasse .wn-sidebar (windownav, bündig) + die dunkle Kern-Kalenderfläche;
   hier nur Breite/Innenabstand/Stapel. */
.wn-sidebar.cal-sidebar { width: var(--wn-w, var(--sz-280)); min-width: var(--wn-w, var(--sz-280)); max-width: var(--wn-w, var(--sz-280)); flex-shrink: 0; overflow-y: auto; padding: var(--sp-7); display: flex; flex-direction: column; gap: var(--sp-7); }
.cal-main { flex: 1; display: flex; flex-direction: column; overflow: hidden; }
.cal-container { flex: 1; overflow: hidden; display: flex; flex-direction: column; }

/* ── Werkzeugleiste ── */
/* Links stand 0 — das Suchfeld klebte am Breiten-Schieber der Fenster-Navigation, seit die ziehbar
   ist (Florian 12.09.2026: „Das Inputfeld braucht einen Abstand nach links, im gleichen Ausmass wie
   es einen Abstand nach oben zum Rand hat"). Oben ist --sp-4, also links auch. */
.cal-main-toolbar { display: flex; align-items: center; justify-content: space-between; padding: var(--sp-4) var(--sp-7) var(--sp-4) var(--sp-4); flex-shrink: 0; }
.cal-toolbar-group { display: flex; align-items: center; gap: var(--sp-3); }
.cal-toolbar-left { gap: var(--sp-5); }
.cal-toolbar-right { gap: var(--sp-3); }
.cal-search-wrap { position: relative; width: var(--sz-440); max-width: 40vw; }
.cal-search-input { width: 100%; height: var(--sz-30); box-sizing: border-box; padding: 0 var(--sp-5); }   /* füllt die 440er-Suchbreite — vorher nur 168 px */
.cal-search-dropdown { position: absolute; top: 100%; left: 0; right: 0; max-height: var(--sz-240); overflow-y: auto; z-index: var(--z-popover); display: none; }
.cal-search-dropdown.open { display: block; }

/* ── Seitenleiste ── */
.cal-monthstrip-wrap { position: relative; margin-bottom: var(--sp-2); }
.cal-sidebar-section-flex { flex: 1; min-height: 0; }
.cal-cat-carousel { margin: var(--sp-7) 0 var(--sp-6); }
.cal-upcoming-list { display: flex; flex-direction: column; overflow-y: auto; overflow-x: hidden; }

/* ============================================================
   TERMIN-FORMULAR — es liegt in der KERN-Sidebar (CC.sidebar). Rahmen, Breite, Einfahren, Abdunklung,
   Kopf und Fuss kommen seit dem 13.09.2026 vollständig vom sidebar-Kernmodul; hier steht nur noch,
   wie sich das FORMULAR im Nur-Lesen-Fall verhält (ein Termin, bei dem man bloss Teilnehmer ist).
   ============================================================ */
/* Nur-Lesen: der Zustand hängt am EIGENEN Datenblatt (.cal-event-sheet), nicht an der Sidebar des
   Kerns — deren Klassen gehören dem sidebar-Kernmodul und werden hier nicht angefasst. */
.cal-event-sheet.is-readonly { opacity: var(--op-half); }
.cal-event-sheet.is-readonly .cal-attendee-list .cc-chip-x, .cal-event-sheet.is-readonly .cal-att-picker, .cal-event-sheet.is-readonly .cal-attendee-add, .cal-event-sheet.is-readonly .cal-reminder-add, .cal-event-sheet.is-readonly .cal-inline-toggle { display: none; }

/* Teams-Knopf + Sichtbarkeit (Zeile über den Feldern, Trennlinie gehört zum Panel-Rahmen) */
.cal-top-actions { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); margin-bottom: var(--sp-6); padding-bottom: var(--sp-5); border-bottom: 1px solid var(--border); }
.cal-priv-toggle-wrap { display: inline-flex; align-items: center; gap: var(--sp-3); cursor: pointer; user-select: none; }
.cal-priv-toggle-label { display: inline-flex; align-items: center; gap: var(--sp-1); white-space: nowrap; }
.cal-teams-link { align-items: center; margin-bottom: var(--sp-6); }
.cal-teams-link .cc-infobox-body { display: flex; align-items: center; gap: var(--sp-3); }
.cal-teams-anchor { flex: 1; min-width: 0; }

/* Zeitraum + „Endet am" (Kern-Datumsfeld; die Auswahl von „Endet am" schwebt über den Feldern darunter) */
.cal-recur-end { position: relative; }
.cal-recur-end .cc-cal-pop { position: absolute; top: 100%; left: 0; right: 0; margin-top: var(--sp-1); z-index: var(--z-popover); }

/* Teilnehmer + Erinnerungen */
.cal-att-picker { margin-bottom: var(--sp-3); }
.cal-attendee-add { display: flex; gap: var(--sp-2); align-items: center; }
.cal-attendee-add .cal-att-email { flex: 1; }
.cal-attendee-add .cal-att-name { flex: 0 0 38%; }
.cal-attendee-list { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-3); }
.cal-inline-toggle { display: inline-flex; align-items: center; gap: var(--sp-3); margin-top: var(--sp-3); cursor: pointer; }
.cal-reminder-list { margin-top: 0; margin-bottom: var(--sp-3); }
.cal-reminder-add { display: flex; align-items: center; gap: var(--sp-2); }
.cal-reminder-add .cal-rem-preset { flex: 1; }
.cal-rem-custom { display: inline-flex; align-items: center; gap: var(--sp-2); }
.cal-rem-custom .form-control, .cal-rem-custom .mage-input { width: var(--sz-80); }

/* ── Kategorien verwalten (Inhalt des Kern-Modals) ── */
.cal-cat-row { position: relative; }   /* Anker der Farb-Palette (Kern-Popover) */
.cal-cat-name { flex: 1; outline: none; }
.cal-cat-new { margin-top: var(--sp-5); }
.cal-cat-new-row .cal-cat-new-name { flex: 1; width: auto; }
.cal-cat-palette { margin-top: var(--sp-3); }

/* ── Synchronisation (Kern-Sidebar) ── */
.cal-sync .cc-input-row { align-items: center; }
.cal-steps { margin: 0; padding-left: var(--sp-6); display: flex; flex-direction: column; gap: var(--sp-2); }

/* ── Dashboard-Widget ── */
/* Eckenrundung: KEINE eigene — die Kachel trägt die Kern-Rolle .cc-widget (layout.css) mit var(--radius),
   also exakt denselben Radius wie das Navigations-Widget .cc-nw. Hier nichts überschreiben.
   Die BREITE stand hier bis zum 15.09.2026 als .cal-widget[data-widget-id]{width:…} — auf dem Merkmal
   des Dashboards. Sie wird jetzt dort angefordert (Design::widget size=xl). */

/* ── Feiertage (Einstellungs-Seite) — nur Anordnung, Tabelle/Felder/Schalter sind Kern ── */
.cal-hol-country { width: var(--sz-80); text-transform: uppercase; }
.cal-hol-new-row { display: flex; gap: var(--sp-3); align-items: center; }
.cal-hol-new-row .form-control:first-child { flex: 1; }

/* ── Schematische Miniatur fürs Widget-Auswahl-Kachel (Fragment WidgetPick, Punkt 'dashboard.picker') ──
   Rein dekorativ (aria-hidden): kleines Monatsraster, erkennbar als Kalender. Füllt die quadrat-/querformatige
   Vorschaufläche der Kachel (dashboard: .cc-pick-tile .cc-tile-img). Eigene cal-*-Chrome (Modul-Namensraum). */
.cal-pick{--cal-fill:var(--surface);--cal-cell:var(--surface-2);--cal-accent:var(--o);--cal-soft:color-mix(in srgb,var(--o) 30%,var(--surface-2));--cal-line:color-mix(in srgb,var(--o) 55%,var(--border));--cal-r:var(--radius);
  display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-2);box-sizing:border-box;background:var(--cal-fill)}
.cal-pick-head{display:flex;align-items:center;flex:0 0 auto}
.cal-pick-bar{width:55%;height:calc(var(--sz-10) * 0.4);border-radius:var(--cal-r);background:var(--cal-accent)}
.cal-pick-grid{flex:1;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;gap:var(--sp-1)}
.cal-pick-day{border-radius:var(--cal-r);background:var(--cal-cell);border:1px solid var(--border)}
.cal-pick-on{background:var(--cal-soft);border-color:var(--cal-line)}
.cal-pick-today{background:var(--cal-accent);border-color:var(--cal-accent)}

/* ============================================================================
   Kalender-/Zeitraster (Kern) — Baustein Core\Design::calendarPart('<teil>').
   Monats-/Wochen-/Tages-/Jahresraster, Mini-Monat mit Kalenderwochen, Monatsleiste,
   Termin-Chips und -Blöcke, Heute-Markierung, Feiertag, Jetzt-Linie, Datums-/Bereichs-
   auswahl, Agenda-Karte, Trefferliste, Kategorie-Ring und das Kalender-Widget.
   Die DATENFARBE eines Termins/einer Kategorie kommt zur Laufzeit als --cc-color
   (style-Eigenschaft, Datenwert) — alles andere ist Kern-Optik. Ein Modul, das einen
   Kalender zeigt, liefert nur Daten und Anordnung, nie diese Optik.
   (Aus dem Kalender-Modul in den Kern gehoben, Selektoren 1:1 in Reihenfolge und Gewicht.)
   ============================================================================ */

/* ── Kalender-Flächen ──
   Die FENSTER-LEISTE des Kalenders ist seit 13.09.2026 die ganz normale Leiste (Design::
   calendarPart('rail') gibt nur noch .wn-sidebar aus). Ihre Teile — Monatsleiste, Mini-Monat,
   Kategorie-Ringe, Agenda-Karten — tragen deshalb hier die GLOBALEN Rollen (--ink/--grey-500/
   --muted/--border) statt hell-auf-dunkel. Es gibt kein Kalender-Design: ein Modul liefert
   Daten und Anordnung, nie eigene Optik (Florian: „alle sidebars haben EIN design, systemweit").
   Auch die Werkzeugleiste (.cc-cal-bar) trägt keine eigene Fläche mehr. Dunkel bleibt allein,
   was im ganzen System dunkel ist: die KOPFZEILEN der Raster — genau wie jeder Tabellenkopf. ── */
/* Als Fenster-Leiste (Teil 'rail', trägt zusätzlich die Leisten-Klasse der Fensternavigation) mit doppelter
   Klasse, damit die helle Standard-Leiste nicht gewinnt — egal in welcher Reihenfolge die Dateien laden. */
.cc-cal-bar { background: var(--surface); }
.cc-cal-canvas { background: var(--surface-2); }
.cc-cal-rail-title { display: flex; align-items: center; justify-content: space-between; font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--grey-500); text-transform: uppercase; letter-spacing: var(--tracking); margin-bottom: var(--sp-3); }

/* ── Trefferliste unter einem Suchfeld ── */
.cc-cal-drop { background: var(--surface); border: 1px solid var(--border); border-top: none; border-radius: 0 0 var(--radius) var(--radius); box-shadow: var(--shadow-md); }
.cc-cal-drop .cc-empty, .cc-cal-drop .cc-empty.cc-empty-sm { padding: var(--sp-5) var(--sp-4); text-align: center; }
.cc-cal-hit { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4); cursor: pointer; font-size: var(--fs-sm); }
.cc-cal-hit:hover { background: var(--grey-100); }
.cc-cal-hit-info { flex: 1; min-width: 0; }
.cc-cal-hit-title { font-weight: var(--fw-med); color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cc-cal-hit-date { font-size: var(--fs-xs); color: var(--muted); }

/* ── Mini-Monat (dunkel, mit Kalenderwochen) ── */
.cc-cal-mini { display: grid; grid-template-columns: repeat(7, 1fr); }
.cc-cal-mini-weeks { grid-template-columns: 22px repeat(7, 1fr); }
.cc-cal-mini-corner { font-size: var(--fs-2xs); color: transparent; }
.cc-cal-mini-wk { font-size: var(--fs-2xs); font-weight: var(--fw-heavy); color: var(--grey-500); display: flex; align-items: center; justify-content: center; border-right: 1px solid var(--border); padding-right: var(--sp-1); }
.cc-cal-mini-dn { font-size: var(--fs-2xs); color: var(--grey-500); text-align: center; padding: var(--sp-1) 0; font-weight: var(--fw-bold); }
.cc-cal-mini-day { text-align: center; font-size: var(--fs-xs); color: var(--ink); cursor: pointer; border-radius: 50%; width: var(--sz-28); height: var(--sz-28); display: flex; align-items: center; justify-content: center; margin: 0 auto; position: relative; }
.cc-cal-mini-day:hover { background: color-mix(in srgb, var(--ink) 8%, transparent); }
.cc-cal-mini-day.is-other { color: var(--muted); }
.cc-cal-mini-day.is-selected { box-shadow: var(--focus); }
/* Belegter Tag: Fläche in der häufigsten Datenfarbe, Deckkraft nach Anzahl (--cc-alpha, Laufzeitwert). */
.cc-cal-mini-day.has-events { background: color-mix(in srgb, var(--cc-color, var(--o)) calc(var(--cc-alpha, 0.5) * 100%), transparent); color: var(--cc-fg, var(--surface)); font-weight: var(--fw-bold); }
.cc-cal-mini-day.is-today { background: var(--grey-600); color: var(--surface); box-shadow: var(--focus); }

/* ── Monatsleiste (Jahr · KW, ‹ JUL AUG SEP OKT NOV ›) ── */
.cc-cal-strip-meta { display: flex; align-items: center; justify-content: center; gap: var(--sp-4); font-size: var(--fs-2xs); font-weight: var(--fw-heavy); color: var(--grey-500); letter-spacing: var(--tracking); text-transform: uppercase; padding: var(--sp-1) 0 var(--sp-2); }
.cc-cal-strip-kw { color: var(--muted); }
.cc-cal-strip-row { position: relative; padding: 0 var(--sp-10); }
.cc-cal-strip { display: flex; align-items: center; justify-content: center; gap: var(--sp-1); overflow: hidden; padding: var(--sp-1) 0; }
.cc-cal-strip-item { background: transparent; border: none; padding: var(--sp-1) var(--sp-2); font-size: var(--fs-2xs); font-weight: var(--fw-heavy); letter-spacing: var(--tracking); color: var(--grey-500); cursor: pointer; border-radius: var(--radius); font-family: inherit; line-height: inherit; transition: color var(--dur-fast), font-size var(--dur-fast); }
.cc-cal-strip-item:hover { color: var(--ink); }
.cc-cal-strip-item.is-active { color: var(--o); font-size: var(--fs-base); font-weight: var(--fw-heavy); }
.cc-cal-strip-chev { position: absolute; top: 50%; transform: translateY(-50%); background: var(--chrome); border: none; color: var(--grey-500); cursor: pointer; padding: var(--sp-1) var(--sp-2); font-size: var(--fs-lg); line-height: 1; z-index: var(--z-raised); border-radius: var(--radius); box-shadow: var(--shadow-md); }
.cc-cal-strip-chev:hover { color: var(--ink); }
.cc-cal-strip-chev.is-left { left: 0; }
.cc-cal-strip-chev.is-right { right: 0; }

/* ── Kategorie-Ring (Filter-Kreis im Kern-Carousel; Beschriftung hebt/blendet über --cc-carousel-ratio) ── */
.cc-cal-ring { width: var(--sz-32); height: var(--sz-32); border-radius: 50%; background: transparent; border: 3px solid var(--cc-color, var(--muted)); display: flex; align-items: center; justify-content: center; position: relative; cursor: pointer; }
.cc-cal-ring:hover { filter: brightness(1.15); }
.cc-cal-ring-dot { width: var(--sz-6); height: var(--sz-6); border-radius: 50%; background: var(--cc-color); }
.cc-cal-ring-label { position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%) translateY(calc((1 - var(--cc-carousel-ratio, 1)) * -14px)); margin-bottom: var(--sp-1); font-size: var(--fs-2xs); font-weight: var(--fw-bold); color: var(--ink); white-space: nowrap; pointer-events: none; line-height: 1; opacity: calc(1 - var(--cc-carousel-ratio, 1) * 3); }   /* nur die Beschriftung des mittleren Kreises — die Nachbarn liegen 44px daneben */
.cc-cal-ring.is-inactive { border-color: color-mix(in srgb, var(--surface) 18%, transparent); opacity: var(--op-dim) !important; }

/* ── Agenda-Karte (anstehender Termin: Datumsfeld in Datenfarbe · Titel/Ort · Zeit-Plakette) ── */
.cc-cal-agenda { display: flex; align-items: stretch; background: color-mix(in srgb, var(--ink) 4%, transparent); border-radius: var(--radius); overflow: hidden; cursor: pointer; margin-bottom: var(--sp-2); transition: background var(--dur-fast); }
.cc-cal-agenda:hover { background: color-mix(in srgb, var(--ink) 8%, transparent); }
.cc-cal-agenda-date { flex-shrink: 0; width: var(--sz-48); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: var(--sp-3) 0; color: var(--cc-fg, var(--surface)); background: var(--cc-color, var(--o)); }
.cc-cal-agenda-num { font-size: var(--fs-lg); font-weight: var(--fw-heavy); line-height: 1; }
.cc-cal-agenda-mon { font-size: var(--fs-2xs); font-weight: var(--fw-bold); margin-top: var(--sp-1); letter-spacing: var(--tracking); opacity: var(--op-strong); }
.cc-cal-agenda-info { flex: 1; min-width: 0; padding: var(--sp-3) var(--sp-4); display: flex; flex-direction: column; justify-content: center; }
.cc-cal-agenda-title { font-size: var(--fs-base); font-weight: var(--fw-bold); color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 1.25; }
.cc-cal-agenda-sub { font-size: var(--fs-xs); color: var(--muted); margin-top: var(--sp-1); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cc-cal-agenda-time { flex-shrink: 0; align-self: center; margin-right: var(--sp-3); white-space: nowrap; }
.cc-cal-agenda-time.is-allday { text-transform: uppercase; }

/* ============================================================
   MONATSRASTER
   ============================================================ */
.cc-cal-month { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.cc-cal-mhead { display: grid; grid-template-columns: repeat(7, 1fr); background: var(--grey-900); color: var(--grey-200); font-size: var(--fs-sm); font-weight: var(--fw-bold); text-transform: uppercase; letter-spacing: var(--tracking); }
.cc-cal-mdn { padding: var(--sp-3); text-align: center; color: color-mix(in srgb, var(--grey-200) 70%, transparent); }
.cc-cal-mgrid { display: grid; grid-template-columns: repeat(7, 1fr); flex: 1; grid-auto-rows: 1fr; }
.cc-cal-cell { border-right: 1px solid color-mix(in srgb, var(--ink) 6%, transparent); border-bottom: 1px solid color-mix(in srgb, var(--ink) 6%, transparent); padding: var(--sp-1) var(--sp-2); min-height: var(--sz-80); overflow: hidden; position: relative; background: var(--surface-2); transition: background var(--dur-fast); }
.cc-cal-cell:nth-child(7n) { border-right: none; }
.cc-cal-cell:hover { background: var(--grey-100); }
.cc-cal-cell.is-other { background: var(--grey-50); color: color-mix(in srgb, var(--ink) 35%, transparent); }
.cc-cal-cell.is-other .cc-cal-cell-date { color: color-mix(in srgb, var(--ink) 35%, transparent); }
.cc-cal-cell.is-today { background: color-mix(in srgb, var(--o) 15%, var(--surface)); }
.cc-cal-cell.is-today:hover { background: color-mix(in srgb, var(--o) 25%, var(--surface)); }
.cc-cal-cell.is-today .cc-cal-cell-date, .cc-cal-cell.is-today .cc-cal-today-mark { color: var(--ink); font-weight: var(--fw-heavy); }
.cc-cal-cell.is-holiday { background: color-mix(in srgb, var(--o) 15%, var(--surface)); }
.cc-cal-cell-date { font-size: var(--fs-sm); color: var(--grey-500); margin-bottom: var(--sp-1); }
.cc-cal-today-mark { display: inline-flex; align-items: center; justify-content: center; width: var(--sz-24); height: var(--sz-24); border-radius: 50%; background: var(--o); color: var(--surface); font-size: var(--fs-sm); font-weight: var(--fw-heavy); }
/* Ablageziel beim Ziehen (Zelle unter dem Termin). */
.cc-cal-drop-target { background: color-mix(in srgb, var(--o) 15%, var(--surface)) !important; }

/* Termin-Chip (Monat / Ganztägig-Zeile) — Fläche in der Datenfarbe. */
.cc-cal-ev { position: relative; padding: var(--sp-1) var(--sp-3); margin-bottom: var(--sp-2); background: var(--cc-color, var(--o)); color: var(--cc-fg, var(--surface)); border-radius: var(--radius); font-weight: var(--fw-med); font-size: var(--fs-xs); cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cc-cal-ev:hover { background: color-mix(in srgb, var(--cc-color, var(--o)) 88%, var(--ink)); }
.cc-cal-ev-text { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: 100%; }
.cc-cal-more { font-size: var(--fs-2xs); color: var(--muted); padding: var(--sp-0) var(--sp-2); cursor: pointer; }
.cc-cal-more:hover { color: var(--o); }
.cc-cal-ev.is-holiday { background: var(--warn-fg); color: var(--surface); cursor: default; pointer-events: none; }

/* ============================================================
   WOCHEN-/TAGESRASTER (Stundenzeilen, Ganztägig-Zeile, Termin-Blöcke, Jetzt-Linie)
   ============================================================ */
.cc-cal-week { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.cc-cal-whead { display: flex; background: var(--grey-900); flex-shrink: 0; }
.cc-cal-gutter { width: var(--sz-56); flex-shrink: 0; text-align: right; padding-right: var(--sp-3); }
.cc-cal-wday { flex: 1; text-align: center; padding: var(--sp-2) 0; }
.cc-cal-wday-name { font-size: var(--fs-xs); color: color-mix(in srgb, var(--grey-200) 70%, transparent); text-transform: uppercase; font-weight: var(--fw-bold); letter-spacing: var(--tracking); }
.cc-cal-wday-num { font-size: var(--fs-lg); font-weight: var(--fw-heavy); color: color-mix(in srgb, var(--grey-200) 85%, transparent); margin-top: var(--sp-1); }
.cc-cal-wday.is-today { background: var(--grey-900); box-shadow: var(--focus); }
.cc-cal-wday.is-today .cc-cal-wday-name { color: var(--surface); }
.cc-cal-wday.is-today .cc-cal-wday-num { background: var(--o); color: var(--surface); font-weight: var(--fw-heavy); display: inline-block; padding: 0 var(--sp-2); border-radius: var(--radius); }
.cc-cal-wday.is-holiday { background: color-mix(in srgb, var(--o) 15%, var(--surface)); }
.cc-cal-wday-hol { font-size: var(--fs-2xs); color: var(--warn-fg); font-weight: var(--fw-bold); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.cc-cal-allday { display: flex; border-bottom: 1px solid var(--border); min-height: var(--sz-28); flex-shrink: 0; }
.cc-cal-allday.is-day { background: var(--grey-50); }
.cc-cal-allday-label { font-size: var(--fs-2xs); color: var(--muted); text-transform: uppercase; display: flex; align-items: center; justify-content: flex-end; padding-right: var(--sp-3); }
.cc-cal-allday-cell { flex: 1; border-left: 1px solid var(--border); padding: var(--sp-1) var(--sp-1); }
.cc-cal-allday-evs { flex: 1; padding: var(--sp-1) var(--sp-3); display: flex; gap: var(--sp-1); flex-wrap: wrap; }
.cc-cal-wbody { flex: 1; overflow-y: auto; position: relative; }
.cc-cal-wscroll { position: relative; min-height: fit-content; }
.cc-cal-hrow { display: flex; height: var(--sz-48); border-bottom: 1px solid var(--border); }
.cc-cal-time { font-size: var(--fs-xs); color: var(--muted); display: flex; align-items: flex-start; justify-content: flex-end; padding-right: var(--sp-3); }
.cc-cal-hcell { flex: 1; border-left: 1px solid var(--border); position: relative; }
.cc-cal-hcell:hover { background: var(--grey-50); }
.cc-cal-overlay { position: absolute; top: 0; left: 56px; right: 0; bottom: 0; pointer-events: none; }
.cc-cal-overlay.is-day { right: 8px; }
/* Der Block steht in einer Spalte der Tagesfläche. WO er steht, ist Rechnung (--cc-x/--cc-w in Prozent,
   --cc-y/--cc-h in Pixeln, alles Laufzeitwerte); WIE breit die Lücke zum Nachbarn ist, ist Gestaltung und
   steht deshalb hier. Bis zum 15.09.2026 rechnete das Javascript „calc(x% - 4px)" selbst zusammen. */
.cc-cal-block { position: absolute; border-radius: var(--radius); padding: var(--sp-1) var(--sp-2); font-size: var(--fs-xs); cursor: pointer; pointer-events: auto; overflow: hidden; background: var(--cc-color, var(--o)); color: var(--surface); z-index: var(--z-base); top: calc(var(--cc-y, 0) * 1px); height: calc(var(--cc-h, 0) * 1px); left: calc(var(--cc-x, 0) * 1%); width: calc(var(--cc-w, 100) * 1% - var(--sp-1)); }
.cc-cal-block:hover { z-index: var(--z-raised); box-shadow: var(--shadow-md); }
.cc-cal-block-time { font-size: var(--fs-2xs); font-weight: var(--fw-bold); }
.cc-cal-block-title { font-weight: var(--fw-med); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cc-cal-now { position: absolute; left: 0; right: 0; height: var(--sz-6); background: var(--danger); z-index: var(--z-raised); pointer-events: none; }
.cc-cal-now::before { content: ''; position: absolute; left: -4px; top: -3px; width: var(--sz-8); height: var(--sz-8); border-radius: 50%; background: var(--danger); }
.cc-cal-now.is-full { left: 0; width: 100%; }
/* Wochenansicht: die Jetzt-Linie liegt über EINER Tagesspalte. Welche, sagt --cc-col (Laufzeitwert);
   dass eine Woche sieben Spalten hat, ist Gestaltung und steht hier statt im Javascript. */
.cc-cal-now.is-col { left: calc(var(--cc-col, 0) * (100% / 7)); width: calc(100% / 7); }
/* Aufgenommener Termin während des Ziehens (dragstart) — vorher setzte das Javascript opacity direkt. */
.cc-cal-drag { opacity: var(--op-half); }

/* ============================================================
   JAHRESRASTER (12 Monatskarten mit Punkt je belegtem Tag)
   ============================================================ */
.cc-cal-year { padding: var(--sp-7); overflow-y: auto; height: 100%; background: var(--surface-2); }
.cc-cal-year-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-8); }
.cc-cal-ymonth { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: var(--sp-5); cursor: pointer; }
.cc-cal-ymonth:hover { border-color: var(--o); box-shadow: var(--shadow-md); }
.cc-cal-ymonth-title { font-size: var(--fs-base); font-weight: var(--fw-bold); color: var(--ink); margin-bottom: var(--sp-3); text-align: center; }
.cc-cal-ymonth-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.cc-cal-ydn { font-size: var(--fs-2xs); color: var(--muted); text-align: center; padding: var(--sp-1) 0; }
.cc-cal-yday { text-align: center; font-size: var(--fs-2xs); color: var(--grey-600); padding: var(--sp-1) 0; position: relative; cursor: pointer; }
.cc-cal-yday.is-today { font-weight: var(--fw-heavy); color: var(--o); }
.cc-cal-yday.is-other { color: var(--grey-300); }
.cc-cal-yday.has-events::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: var(--sz-6); height: var(--sz-6); border-radius: 50%; background: var(--cc-color, var(--o)); }

/* ============================================================
   DATUMSFELD + DATUMS-/BEREICHSAUSWAHL (Popover mit Monatsraster und Uhrzeiten)
   ============================================================ */
.cc-cal-trigger { display: flex; align-items: center; gap: var(--sp-3); width: 100%; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: var(--sp-3) var(--sp-4); cursor: pointer; font-size: var(--fs-base); color: var(--ink); text-align: left; transition: border-color var(--dur-fast); }
.cc-cal-trigger:hover { border-color: var(--ink); }
.cc-cal-trigger .cc-cal-trigger-text { flex: 1; }
.cc-cal-trigger-chev { font-size: var(--fs-xs); opacity: var(--op-muted); }
.cc-cal-pop { position: relative; margin-top: var(--sp-2); background: var(--surface); border: 1px solid var(--grey-300); border-radius: var(--radius); padding: var(--sp-5); box-shadow: var(--shadow-md); z-index: var(--z-popover); width: 100%; box-sizing: border-box; }
.cc-cal-pick-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--sp-3); }
.cc-cal-pick-title { font-size: var(--fs-base); font-weight: var(--fw-heavy); color: var(--ink); }
.cc-cal-pick { display: grid; grid-template-columns: repeat(7, 1fr); gap: var(--sp-0); margin-bottom: var(--sp-4); }
.cc-cal-pick-dn { font-size: var(--fs-2xs); color: var(--muted); text-align: center; padding: var(--sp-1) 0; font-weight: var(--fw-heavy); text-transform: uppercase; }
.cc-cal-pick-day { text-align: center; padding: var(--sp-2) 0; font-size: var(--fs-sm); color: var(--ink); cursor: pointer; border-radius: var(--radius); user-select: none; }
.cc-cal-pick-day:hover { background: var(--grey-100); }
.cc-cal-pick-day.is-other { color: var(--grey-300); }
.cc-cal-pick-day.is-today { font-weight: var(--fw-heavy); color: var(--o); }
.cc-cal-pick-day.is-selected, .cc-cal-pick-day.is-start, .cc-cal-pick-day.is-end { background: var(--o); color: var(--surface); font-weight: var(--fw-heavy); }
.cc-cal-pick-day.in-range { background: color-mix(in srgb, var(--o) 15%, var(--surface)); color: var(--ink); }
.cc-cal-pick-times { display: flex; align-items: center; gap: var(--sp-3); padding-top: var(--sp-3); border-top: 1px solid var(--border); }
.cc-cal-pick-times .txt-label { font-size: var(--fs-xs); font-weight: var(--fw-normal); color: var(--grey-500); }
.cc-cal-pick-times input { width: var(--sz-100); }
.cc-cal-pick-spacer { flex: 1; }
.cc-cal-pick-foot > :first-child { margin-right: auto; }
.cc-cal-pick-foot { display: flex; justify-content: flex-end; gap: var(--sp-2); margin-top: var(--sp-4); }

/* ============================================================
   KALENDER-WIDGET (Dashboard) — links Datum/Uhr + heutige Termine (hell), rechts dunkles
   Monatsraster mit Mehrtages-Balken, Einzeltermin-Feld, Feiertags-Punkt, Heute weiss.
   ============================================================ */
.cc-calw[data-widget-id] { background: var(--grey-800); color: var(--surface); overflow: hidden; }
.cc-calw-head { display: flex; align-items: center; justify-content: space-between; padding: var(--sp-3) var(--sp-5); background: var(--grey-900); border-bottom: 1px solid var(--shadow-line); cursor: move; }
.cc-calw-title { display: inline-flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--grey-200); }
.cc-calw-split { display: grid; grid-template-columns: minmax(var(--sz-160), 38%) 1fr; }
.cc-calw-left { background: var(--surface-2); color: var(--ink); padding: var(--sp-7) var(--sp-6) var(--sp-5); display: flex; flex-direction: column; min-height: 0; }
.cc-calw-kw { font-size: var(--fs-2xs); font-weight: var(--fw-heavy); letter-spacing: var(--tracking); color: var(--o); }
.cc-calw-weekday { font-size: var(--fs-2xs); font-weight: var(--fw-bold); letter-spacing: var(--tracking); text-transform: uppercase; color: var(--muted); margin-bottom: var(--sp-1); }
.cc-calw-clock { font-size: var(--fs-xxl); font-weight: var(--fw-heavy); color: var(--ink); line-height: 1; }
.cc-calw-date { font-size: var(--fs-lg); font-weight: var(--fw-bold); color: var(--ink); margin-bottom: var(--sp-5); padding-bottom: var(--sp-5); border-bottom: 1px solid var(--border); }
.cc-calw-tasks-head { font-size: var(--fs-2xs); font-weight: var(--fw-bold); letter-spacing: var(--tracking); text-transform: uppercase; color: var(--muted); margin-bottom: var(--sp-3); }
.cc-calw-tasks { display: flex; flex-direction: column; gap: var(--sp-2); overflow-y: auto; }
.cc-calw-task { display: flex; align-items: center; gap: var(--sp-3); }
.cc-calw-task-time { display: inline-flex; align-items: center; justify-content: center; min-width: var(--sz-48); flex-shrink: 0; }
.cc-calw-task-title { font-size: var(--fs-xs); color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cc-calw-right { background: var(--grey-900); padding: var(--sp-5); display: flex; flex-direction: column; }
.cc-calw-month { text-align: center; font-size: var(--fs-sm); font-weight: var(--fw-heavy); letter-spacing: var(--tracking); color: var(--surface); margin-bottom: var(--sp-3); }
.cc-calw-grid { display: flex; flex-direction: column; gap: var(--sp-0); }
.cc-calw-row { display: grid; grid-template-columns: var(--sz-24) repeat(7, 1fr); align-items: center; }
.cc-calw-dowrow { padding-bottom: var(--sp-1); }
.cc-calw-kwcell { grid-column: 1; grid-row: 1; font-size: var(--fs-2xs); color: var(--grey-500); font-weight: var(--fw-bold); text-align: center; }
.cc-calw-dowcell { font-size: var(--fs-2xs); color: var(--grey-500); text-transform: uppercase; text-align: center; font-weight: var(--fw-bold); letter-spacing: var(--tracking); }
.cc-calw-cell { grid-row: 1; display: flex; align-items: center; justify-content: center; min-height: var(--sz-28); font-size: var(--fs-xs); color: var(--grey-200); position: relative; border-radius: var(--radius); z-index: var(--z-raised); }
.cc-calw-cell.is-other { color: var(--grey-600); }
.cc-calw-cell.is-sun { color: var(--grey-400); }
.cc-calw-num { line-height: 1; position: relative; }
.cc-calw-cell.is-today .cc-calw-num { background: var(--surface); color: var(--grey-900); width: var(--sz-24); height: var(--sz-24); display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius); font-weight: var(--fw-heavy); }
.cc-calw-cell.is-single .cc-calw-num { background: var(--cc-color, var(--o)); color: var(--surface); width: var(--sz-24); height: var(--sz-24); display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius); font-weight: var(--fw-heavy); }
.cc-calw-cell.is-today.is-single .cc-calw-num { background: var(--surface); color: var(--grey-900); box-shadow: var(--focus); }
.cc-calw-cell.in-event { color: var(--surface); font-weight: var(--fw-bold); }
.cc-calw-holdot { position: absolute; bottom: var(--sp-0); left: 50%; transform: translateX(-50%); width: var(--sz-6); height: var(--sz-6); border-radius: 50%; background: var(--danger); }
.cc-calw-bar { grid-row: 1; height: var(--sz-22); border-radius: var(--radius); align-self: center; background: var(--cc-color, var(--o)); opacity: var(--op-strong); z-index: var(--z-base); }
.cc-calw-foot { background: var(--grey-900); border-top: 1px solid var(--shadow-line); padding: var(--sp-3) var(--sp-5); text-align: center; }
.cc-calw-foot .cc-link { color: var(--o); font-size: var(--fs-xs); font-weight: var(--fw-bold); text-decoration: none; }
.cc-calw-foot .cc-link:hover { color: var(--o-h); }

/* carousel.css — Endless-Carousel-Baustein (Kern). 1:1-Mechanik aus dem ERP-Kategorie-Carousel,
   generalisiert: die Optik der Items bringt das einbindende Modul (die Items sind .cc-carousel-item).
   Der Track scrollt horizontal, die JS setzt je Item --cc-carousel-ratio (0=Mitte, 1=Rand) + scale. */
.cc-carousel { position: relative; }
.cc-carousel-track {
    display: flex; align-items: flex-end; gap: var(--sp-3);
    padding: var(--sp-8) 0 var(--sp-1);
    overflow-x: auto; overflow-y: hidden;
    scrollbar-width: none; overscroll-behavior: contain;
    cursor: grab; user-select: none;
}
.cc-carousel-track::-webkit-scrollbar { display: none; }
.cc-carousel-track:active { cursor: grabbing; }
.cc-carousel-item {
    flex-shrink: 0; scroll-snap-align: center;
    transform-origin: bottom center;
    transition: transform var(--dur-fast), opacity var(--dur-fast), filter var(--dur-fast);
}

/* ── FOLIEN-MODUS (carousel 1.4.0, Markup Kern 2.5.0: Design::carousel(['modus'=>'folien']) + carouselFolie) ──
   Eine Folie je Eintrag, Reiter oben (Segment-Gruppe, keine waagerechte Tab-Leiste), Pfeile/Zähler/Punkte
   unten. Von der Bahn wird NUR das Scroll-Element genutzt: kein Ziehen, kein Rad-Umlenken, kein Skalieren,
   Text bleibt markierbar, der Track trägt nie ein transform (sonst stünden Wähler/Popover in der Folie
   versetzt — ein transformierter Vorfahr wird Bezugsrahmen für position:fixed). */
.cc-carousel-folien { display: flex; flex-direction: column; gap: var(--sp-2); width: min(var(--sz-820), 88%); max-width: 100%; }
.cc-carousel-folien > .cc-carousel-track { scroll-snap-type: x mandatory; overflow-x: hidden; user-select: text; cursor: auto; align-items: stretch; padding: 0; gap: 0; transform: none; }
.cc-carousel-folien > .cc-carousel-track:active { cursor: auto; }
.cc-carousel-folie { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; overflow-y: auto; transition: opacity var(--dur-slow) var(--ease); }
.cc-carousel-folie:not(.cc-carousel-folie-aktiv) { opacity: var(--op-dim); }
.cc-carousel-h-md .cc-carousel-folie { height: var(--sz-320); }
.cc-carousel-h-sm .cc-carousel-folie { height: var(--sz-240); }
/* Überlauf einer Folie (1.4.2): carousel.js setzt data-cc-ueberlauf = unten | oben | beide und macht die aktive Folie dann zum
   Tab-Halt — der abgeschnittene Rand blendet weich aus, damit man sieht, dass es weitergeht; der Fokus ist sichtbar. */
.cc-carousel-folie[data-cc-ueberlauf="unten"] { -webkit-mask-image: linear-gradient(to bottom, currentColor calc(100% - var(--sz-40)), transparent); mask-image: linear-gradient(to bottom, currentColor calc(100% - var(--sz-40)), transparent); }
.cc-carousel-folie[data-cc-ueberlauf="oben"] { -webkit-mask-image: linear-gradient(to top, currentColor calc(100% - var(--sz-40)), transparent); mask-image: linear-gradient(to top, currentColor calc(100% - var(--sz-40)), transparent); }
.cc-carousel-folie[data-cc-ueberlauf="beide"] { -webkit-mask-image: linear-gradient(to bottom, transparent, currentColor var(--sz-40), currentColor calc(100% - var(--sz-40)), transparent); mask-image: linear-gradient(to bottom, transparent, currentColor var(--sz-40), currentColor calc(100% - var(--sz-40)), transparent); }
/* Fokus einer Folie: der Ring sitzt an der Bahn — die Bahn schneidet (overflow) alles ab, was über die Folie hinausragt. */
.cc-carousel-track:has(> .cc-carousel-folie:focus-visible) { box-shadow: var(--focus-kontrast); } .cc-carousel-folie:focus-visible { outline: 2px solid transparent; box-shadow: none; /* Ring: var(--focus-kontrast) an der Bahn */ }
.cc-carousel-reiter { align-self: flex-start; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.cc-carousel-reiter > .cc-seg-btn { flex: none; gap: var(--sp-2); white-space: nowrap; }
/* Überlauf der Reiterleiste (viele Reiter): der abgeschnittene Rand blendet weich aus — man sieht, dass es weitergeht. Den
   Zustand setzt carousel.js (data-cc-ueberlauf), die Leiste scrollt waagerecht (Rad, Wischen, Tastatur, aktiver Reiter). */
.cc-carousel-reiter[data-cc-ueberlauf="rechts"] { -webkit-mask-image: linear-gradient(to right, currentColor calc(100% - var(--sz-40)), transparent); mask-image: linear-gradient(to right, currentColor calc(100% - var(--sz-40)), transparent); }
.cc-carousel-reiter[data-cc-ueberlauf="links"] { -webkit-mask-image: linear-gradient(to left, currentColor calc(100% - var(--sz-40)), transparent); mask-image: linear-gradient(to left, currentColor calc(100% - var(--sz-40)), transparent); }
.cc-carousel-reiter[data-cc-ueberlauf="beide"] { -webkit-mask-image: linear-gradient(to right, transparent, currentColor var(--sz-40), currentColor calc(100% - var(--sz-40)), transparent); mask-image: linear-gradient(to right, transparent, currentColor var(--sz-40), currentColor calc(100% - var(--sz-40)), transparent); }
.cc-carousel-nav { display: flex; align-items: center; justify-content: center; gap: var(--sp-3); }
.cc-carousel-zaehler { font-size: var(--fs-sm); color: var(--text); font-variant-numeric: tabular-nums; }
.cc-carousel-punkte { display: inline-flex; align-items: center; gap: var(--sp-1); }
/* Punkte sind klickbare Bedienelemente (C2.8.4) ⇒ ≥ 3:1 zur Umgebung (WCAG 1.4.11), auch auf dem gemusterten Grund:
   --grey-500 statt --border (hell 3,7:1 auf Beige statt 1,06:1, dunkel 7,4:1 auf Nacht statt 1,9:1). Der aktive Punkt ist
   zusätzlich breiter (Pille, wie das Soll-Bild) — der Zustand hängt damit nicht allein an der Farbe (1.4.1). carousel 1.4.3. */
.cc-carousel-punkt { width: var(--sz-8); height: var(--sz-8); border-radius: var(--radius-pill); background: var(--grey-500); cursor: pointer; transition: background var(--dur-fast), width var(--dur-fast); }
.cc-carousel-punkt:hover { background: var(--grey-600); }
.cc-carousel-punkt.cc-carousel-punkt-aktiv { width: var(--sz-18); background: var(--o); }
@media (prefers-reduced-motion: reduce) { .cc-carousel-punkt { transition: none; } }
/* Pfeile auf gemustertem Grund: eigener Fokusring wie die milchigen Knöpfe (buttons, --focus-kontrast). */
.cc-carousel-nav .ac-btn-action:focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-kontrast); }
@media (prefers-reduced-motion: reduce) { .cc-carousel-folie { transition: none; } }
@media (max-width: 720px) { .cc-carousel-folien { width: 100%; } }

/* ============================================================================
   CHAT — Aussehen einer Unterhaltung: Rahmen, Kopf, Verlauf, Blasen (eigen/fremd/Notiz),
   Arbeitsschritte, Tippanzeige, Eingabezeile, Anhänge, Leerzustand.
   Eigenes UI-Kernmodul seit 13.09.2026: bis dahin lagen diese Zeilen im Anordnungs-Kernmodul
   'layout' (Raster/Zeile/Stapel/Split) — die Optik einer Fachdomäne im falschen Haus, und ohne
   das nutzende Modul blieb sie als totes CSS im Kern stehen (Befund _ui-kernmodule[1]).
   Das nutzende Modul ordnet nur an; Farben, Abstände und Formen kommen von hier.
   ============================================================================ */
.cc-chat { display: flex; flex-direction: column; min-height: 0; height: 100%; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.cc-chat-head { display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-2) var(--sp-3); border-bottom: 1px solid var(--border); background: var(--surface-2); }
.cc-chat-head .cc-chat-title { font-weight: var(--fw-med); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cc-chat-log { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: var(--sp-3); padding: var(--sp-4); }
.cc-chat-msg { display: flex; flex-direction: column; max-width: 82%; gap: var(--sp-1); }
.cc-chat-user { align-self: flex-end; align-items: flex-end; }
.cc-chat-assistant, .cc-chat-note { align-self: flex-start; align-items: flex-start; }
.cc-chat-note { max-width: 100%; }
.cc-chat-bubble { padding: var(--sp-2) var(--sp-3); border-radius: var(--radius); line-height: var(--lh); white-space: pre-wrap; word-break: break-word; font-size: var(--fs-md); }
.cc-chat-user .cc-chat-bubble { background: var(--o); color: var(--on-o); border-bottom-right-radius: var(--sp-1); }
.cc-chat-assistant .cc-chat-bubble { background: var(--surface-2); color: var(--ink); border: 1px solid var(--border); border-bottom-left-radius: var(--sp-1); }
.cc-chat-note .cc-chat-bubble { background: var(--warn-bg); color: var(--warn-fg); font-size: var(--fs-sm); }
.cc-chat-steps { display: flex; flex-direction: column; gap: 2px; margin: var(--sp-1) 0; }
.cc-chat-step { font-size: var(--fs-xs); color: var(--muted); display: flex; align-items: center; gap: var(--sp-2); }
.cc-chat-step::before { content: ""; width: var(--sp-2); height: var(--sp-2); border-radius: 50%; background: var(--o); flex: none; opacity: var(--op-half); }
.cc-chat-files { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-1); }
.cc-chat-files img { max-width: var(--sz-200); max-height: var(--sz-200); border-radius: var(--radius); border: 1px solid var(--border); cursor: pointer; }
.cc-chat-typing { display: inline-flex; gap: 3px; padding: var(--sp-2) var(--sp-3); }
.cc-chat-typing i { width: var(--sp-2); height: var(--sp-2); border-radius: 50%; background: var(--muted); animation: cc-blink var(--dur-slow) infinite both; }
.cc-chat-typing i:nth-child(2) { animation-delay: var(--dur); }
.cc-chat-typing i:nth-child(3) { animation-delay: var(--dur-slow); }
/* Das BLINKEN kommt aus dem animations-Kernmodul (@keyframes cc-blink) — hier stand bis zum
   15.09.2026 derselbe Keyframe ein zweites Mal. Nur die Verzögerung je Punkt ist unsere Sache. */
.cc-chat-foot { border-top: 1px solid var(--border); padding: var(--sp-2) var(--sp-3); display: flex; flex-direction: column; gap: var(--sp-2); background: var(--surface); }
.cc-chat-inrow { display: flex; align-items: flex-end; gap: var(--sp-2); }
.cc-chat-inrow textarea { flex: 1; min-height: var(--sz-40); max-height: var(--sz-160); resize: none; }
.cc-chat-empty { flex: 1; display: flex; align-items: center; justify-content: center; color: var(--muted); text-align: center; padding: var(--sp-6); }

/* ============================================================================
   VARIANTEN DER BAUSTEINE (chat 1.3.0, Markup seit Kern 2.5.0) — alle opt-in: ohne die neuen
   Klassen/Attribute sieht jeder bestehende Chat (Arbeitsplatz-Chat, Widget) aus wie bisher.
   ============================================================================ */
/* Tippanzeige: bei reduzierter Bewegung stehen die Punkte (die Ansage läuft über die Statusregion). */
@media (prefers-reduced-motion: reduce) { .cc-chat-typing i { animation: none; } }

/* GESPIEGELT (chatLog 'seiten'=>'gespiegelt'): eigene Nachrichten links, fremde rechts, Nase gespiegelt. */
.cc-chat-log-gespiegelt .cc-chat-user { align-self: flex-start; align-items: flex-start; }
.cc-chat-log-gespiegelt .cc-chat-assistant { align-self: flex-end; align-items: flex-end; }
.cc-chat-log-gespiegelt .cc-chat-user .cc-chat-bubble { border-bottom-right-radius: var(--radius); border-bottom-left-radius: var(--sp-1); }
.cc-chat-log-gespiegelt .cc-chat-assistant .cc-chat-bubble { border-bottom-left-radius: var(--radius); border-bottom-right-radius: var(--sp-1); }

/* NACHRICHT MIT KOPF (chatMsg 'kopf'): Avatar als Spalte neben der Blase, darüber wer · Unterzeile ·
   Kennzeichen · Zeit. Die Slots füllt das Modul-JS per textContent; leere Slots nehmen keinen Platz. */
.cc-chat-msg.cc-chat-msg-kopf { flex-direction: row; align-items: flex-start; gap: var(--sp-3); }
.cc-chat-user.cc-chat-msg-kopf { flex-direction: row-reverse; }
.cc-chat-log-gespiegelt .cc-chat-user.cc-chat-msg-kopf { flex-direction: row; }
.cc-chat-log-gespiegelt .cc-chat-assistant.cc-chat-msg-kopf { flex-direction: row-reverse; }
.cc-chat-av { flex: none; display: flex; }
.cc-chat-av:empty { display: none; }
.cc-chat-col { display: flex; flex-direction: column; gap: var(--sp-1); min-width: 0; align-items: flex-start; }
.cc-chat-user .cc-chat-col { align-items: flex-end; }
.cc-chat-log-gespiegelt .cc-chat-user .cc-chat-col { align-items: flex-start; }
.cc-chat-log-gespiegelt .cc-chat-assistant .cc-chat-col { align-items: flex-end; }
.cc-chat-meta { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2); font-size: var(--fs-sm); color: var(--text); }
.cc-chat-who { color: var(--ink); font-weight: var(--fw-med); }
.cc-chat-sub:empty, .cc-chat-tags:empty, .cc-chat-time:empty { display: none; }
.cc-chat-tags { display: inline-flex; gap: var(--sp-1); }

/* GERENDERTES MARKDOWN in der Blase (chatMsg 'rich'): Lese-Typografie kommt aus typo (cc-rich-lese),
   hier nur die Blasen-Anpassungen — nichts bricht aus der Blase aus. */
.cc-chat-rich { white-space: normal; }
.cc-chat-rich .cc-rich > :first-child { margin-top: 0; }
.cc-chat-rich .cc-rich > :last-child { margin-bottom: 0; }
.cc-chat-rich .cc-ptable-wrap, .cc-chat-rich .cc-codewrap, .cc-chat-rich pre { max-width: 100%; overflow-x: auto; }

/* MUSTER-GRUND (chatLog 'grund'=>'muster'): keine Rahmenfläche, Blasen als Flächen auf dem Muster —
   Farben nur über die Kern-Ableitungen (--chat-blase-*), damit Dunkel und persönliche Feinjustage mitgehen.
   Auf dem Muster keine gedämpften Texte (Kontrast): Schritte und Kopf in --text. */
.cc-chat-log-muster { background: transparent; }
.cc-chat-log-muster .cc-chat-user .cc-chat-bubble { background: var(--chat-blase-eigen); color: var(--ink); border: 1px solid var(--border); box-shadow: var(--shadow-sm); }
.cc-chat-log-muster .cc-chat-assistant .cc-chat-bubble { background: var(--chat-blase-warm); color: var(--ink); border: 1px solid var(--border); box-shadow: var(--shadow-sm); }
.cc-chat-log-muster .cc-chat-step { color: var(--text); }
/* Lange Verläufe: nicht sichtbare Nachrichten werden nicht gelayoutet. Nachrichten tragen deshalb keine
   überlaufenden oder fixierten Kinder (Popover hängen am body). */
.cc-chat-log-muster .cc-chat-msg { content-visibility: auto; contain-intrinsic-size: auto var(--sz-120); }

/* NOTIZ: 'ton'=>'neutral' (Begrüssung, „Fortgesetzt") statt Warnkasten; 'karte'=>true = zentrierte Karte
   auf Kern-Fläche (Vorab-Frage) mit normalem Zeilenfluss. */
.cc-chat-note-neutral .cc-chat-bubble { background: var(--surface); color: var(--ink); border: 1px solid var(--border); }
/* Karte: die Blase füllt die Karte (align-items stretch) — sonst schrumpfte sie auf ihren Inhalt und ein Kachelraster darin
   stand einspaltig in einer schmalen Karte (KI-Chat R2, Vorab-Frage). */
.cc-chat-note.cc-chat-note-karte { align-self: center; align-items: stretch; width: 100%; max-width: min(100%, calc(var(--sz-380) * 2)); }
.cc-chat-note-karte .cc-chat-bubble { background: var(--surface); color: var(--ink); border: 1px solid var(--border); white-space: normal; font-size: var(--fs-md); padding: var(--sp-7) var(--sp-8); box-shadow: var(--shadow-sm); }

/* ARBEITSSCHRITTE als Varianten (chatStep 'art'): Denken, Aufgabenliste, Werkzeug (Kurz- und Vollfassung). */
.cc-chat-step-think, .cc-chat-step-todo, .cc-chat-step-tool { display: block; }
.cc-chat-step-think::before, .cc-chat-step-todo::before, .cc-chat-step-tool::before { content: none; }
.cc-chat-step-think { font-style: italic; border-left: 2px solid var(--border); padding-left: var(--sp-3); }
.cc-chat-step-todo { background: var(--surface); color: var(--ink); border: 1px solid var(--border); border-radius: var(--radius); padding: var(--sp-2) var(--sp-3); font-size: var(--fs-sm); }
.cc-chat-step-tool .cc-chat-tool-kurz { display: none; }
/* Werkzeug-Schritte nie breiter als die Spalte (chat 1.3.4): lange Zeilen ohne Leerzeichen (JSON, URLs, HTML) brechen um,
   statt den Block über den Rand zu schieben — in der gespiegelten Ansicht lief er sonst LINKS aus dem Verlauf. Die
   Vollfassung ist Klartext in der Kern-Konsole: Zeilen bleiben erhalten, hohe Ausgaben scrollen in sich. */
.cc-chat-steps { align-self: stretch; min-width: 0; max-width: 100%; }
.cc-chat-step-tool, .cc-chat-tool-voll, .cc-chat-tool-kurz { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.cc-chat-tool-voll .cc-console { max-width: 100%; }
.cc-chat-tool-voll .cc-console-body { white-space: pre-wrap; overflow-wrap: anywhere; font-family: var(--mono); font-size: var(--fs-xs);
  line-height: var(--lh); padding: var(--sp-2) var(--sp-3); max-height: var(--sz-440); overflow: auto; }
/* WERKZEUGZEILE (chatStep 'zeile', Kern 2.7.7): ein Aufruf = Name · Zweck → Ergebnis, umbrechend; aufgeklappt die Konsole.
   --text statt gedämpft (Kontrast auf dem Muster-Grund); Hover und Fokus wie jede Bedienfläche. Text-Vollfassung ohne
   Zeilen (Skill-Zeile) steht direkt in .cc-chat-tool-voll. */
.cc-chat-tool-voll { font-size: var(--fs-sm); color: var(--text); }
.cc-chat-wz { min-width: 0; }
.cc-chat-wz + .cc-chat-wz { margin-top: var(--sp-1); }
.cc-chat-wz-kopf { display: flex; align-items: baseline; gap: var(--sp-2); min-width: 0; list-style: none; cursor: pointer;
  color: var(--text); border-radius: var(--radius); padding: 0 var(--sp-1); }
.cc-chat-wz-zeile { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 var(--sp-2); min-width: 0; }
.cc-chat-wz-kopf::-webkit-details-marker { display: none; }
.cc-chat-wz-kopf::marker { content: ""; }
.cc-chat-wz-kopf:hover { color: var(--ink); background: var(--surface-2); }
.cc-chat-wz-kopf:focus-visible { outline: none; box-shadow: var(--focus); }
.cc-chat-wz-pfeil { flex: none; font-size: var(--fs-xs); transition: transform var(--dur); }
.cc-chat-wz[open] > .cc-chat-wz-kopf .cc-chat-wz-pfeil { transform: rotate(90deg); }
.cc-chat-wz-name { flex: none; color: var(--ink); font-weight: var(--fw-med); }
.cc-chat-wz-zweck, .cc-chat-wz-erg { min-width: 0; overflow-wrap: anywhere; }
.cc-chat-wz-zweck:empty { display: none; }
.cc-chat-wz-voll { margin-top: var(--sp-1); }
@media (prefers-reduced-motion: reduce) { .cc-chat-wz-pfeil { transition: none; } }
.cc-chat-code { max-width: 100%; margin: var(--sp-1) 0; }

/* AUSGABESTUFEN (chatLog 'stufe'): blenden nur Strukturteile AUSSERHALB der Blase aus — Code im
   Antworttext (.cc-chat-bubble .cc-codewrap) gehört zum Text und bleibt immer sichtbar.
   2 = kompakt: kein Denken, Werkzeug einzeilig · 3 = Standard: keine Schritte · 4 = nur Text. */
[data-cc-chat-stufe="2"] .cc-chat-step-think,
[data-cc-chat-stufe="2"] .cc-chat-tool-voll { display: none; }
[data-cc-chat-stufe="2"] .cc-chat-step-tool .cc-chat-tool-kurz { display: block; }
[data-cc-chat-stufe="3"] .cc-chat-steps,
[data-cc-chat-stufe="4"] .cc-chat-steps,
[data-cc-chat-stufe="4"] .cc-chat-code,
[data-cc-chat-stufe="4"] .cc-chat-files { display: none; }

/* OPTIK (chatLog 'optik'): blasen = heute; linear = volle Breite ohne Blasenfläche; kompakt = dichter. */
[data-cc-chat-optik="linear"] .cc-chat-msg { max-width: 100%; align-self: stretch; }
[data-cc-chat-optik="linear"] .cc-chat-msg.cc-chat-msg-kopf { flex-direction: row; }
[data-cc-chat-optik="linear"] .cc-chat-col { align-items: stretch; }
[data-cc-chat-optik="linear"] .cc-chat-msg .cc-chat-bubble { background: transparent; border: 0; box-shadow: none; padding-inline: 0; }
[data-cc-chat-optik="kompakt"] { gap: var(--sp-1); }
[data-cc-chat-optik="kompakt"] .cc-chat-msg .cc-chat-bubble { padding: var(--sp-1) var(--sp-2); }

/* SCHRIFTSTUFE (chatLog 'schrift', auch am Fenster-Wurzelelement bzw. am Datenblatt der Sidebar): die
   Schrift-TOKENS werden am Behälter lokal neu gesetzt statt einer font-size — so ziehen Formfelder,
   Wähler und Knöpfe mit, die ihre Grösse fest über diese Tokens beziehen. 14 = Grundstufe. */
[data-cc-chat-schrift="12"] { --fs-2xs: 9px;  --fs-xs: 9px;  --fs-sm: 10px; --fs-base: 11px; --fs-md: 12px; --fs-lg: 14px; }
[data-cc-chat-schrift="13"] { --fs-2xs: 9px;  --fs-xs: 10px; --fs-sm: 11px; --fs-base: 12px; --fs-md: 13px; --fs-lg: 15px; }
[data-cc-chat-schrift="15"] { --fs-2xs: 11px; --fs-xs: 12px; --fs-sm: 13px; --fs-base: 14px; --fs-md: 15px; --fs-lg: 17px; }
[data-cc-chat-schrift="16"] { --fs-2xs: 12px; --fs-xs: 13px; --fs-sm: 14px; --fs-base: 15px; --fs-md: 16px; --fs-lg: 18px; }
[data-cc-chat-schrift="17"] { --fs-2xs: 13px; --fs-xs: 14px; --fs-sm: 15px; --fs-base: 16px; --fs-md: 17px; --fs-lg: 19px; }
[data-cc-chat-schrift="18"] { --fs-2xs: 14px; --fs-xs: 15px; --fs-sm: 16px; --fs-base: 17px; --fs-md: 18px; --fs-lg: 20px; }
/* Geerbter Fliesstext (Feldwerte, Links mit font:inherit) trägt KEIN eigenes Token — er erbt die schon
   aufgelöste Pixelgrösse des body. Deshalb löst der Behälter die Grundstufe hier neu auf (bei 14 = 13 px
   wie bisher), sonst bleiben z. B. Titelwert und „Umbenennen" im Hub klein (r3 Befund Schriftgrösse). */
[data-cc-chat-schrift] { font-size: var(--fs-base); }

/* EINGABE-KARTE (chatFoot 'look'=>'karte'): schwebend, zentriert, das Muster läuft darunter weiter. Das
   Textfeld darin ist die vorhandene rahmenlose Formular-Variante (.form-control-flush, forms). */
.cc-chat-foot.cc-chat-foot-karte { width: 100%; max-width: calc(var(--sz-560) * 2); margin-inline: auto; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-md); }
.cc-chat-foot-karte:focus-within { border-color: var(--o); }
.cc-chat-foot-karte > * + * { border-top: 1px solid var(--border); padding-top: var(--sp-2); }

/* Cloudflare — nur eigene .cf-*-Klassen, ausschliesslich Kern-Tokens. */
/* Ladezeile = Kern (Design::loading inline); .cf-lazy-load bleibt nur der JS-Haken. */
.cf-head { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; margin-bottom: var(--sp-5); }
.cf-kpis { margin-bottom: var(--sp-6); }
/* Kennzahlen in EINER Reihe (5 Werte), statt 3 + 2 umzubrechen. */
.cf-kpis.cc-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 720px) { .cf-kpis.cc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Formular unter der Tabelle: die Feldzeile nimmt die volle Breite (Kern-inputRow mit Kern-Abständen),
   die Knöpfe stehen darunter — vorher quetschte der Flex-Rahmen die Zeile zusammen. */
.cf-dns-add { margin-top: var(--sp-5); }
.cf-dns-add > .cc-row { margin-top: var(--sp-4); }
/* Typ-Auswahl: eigene, etwas breitere Zelle — im schmalen cc-cell-sm (80px) schob der Kern-Wähler
   über das Feld „Name" daneben. */
.cf-type-cell { flex: 0 0 var(--sz-160); min-width: var(--sz-160); }
/* Proxy-Schalter auf die Mittellinie der 36px-Felder daneben — sonst sitzt er (und sein Etikett) tiefer. */
.cf-proxy-cell .mage-toggle { margin-block: calc((var(--sz-36) - var(--sz-24)) / 2); }
.cf-waf-expr { display: block; margin-top: var(--sp-1); word-break: break-all; }

/* DNS: der Inhalt wird server-seitig gekürzt; hier zusätzlich hart begrenzt, damit auch ein
   unerwartet langer Wert die Tabelle nicht quer aus der Sidebar schiebt. */
.cf-content-cell { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* WAF-Formular unter der Regel-Tabelle. */
.cf-waf-form { margin-top: var(--sp-6); padding-top: var(--sp-5); border-top: 1px solid var(--border); }
.cf-waf-expression { font-family: var(--mono); }
.cf-waf-builder-act { margin-top: var(--sp-2); }
.cf-waf-foot { display: flex; justify-content: flex-end; gap: var(--sp-2); margin-top: var(--sp-4); }

/* mage-combo-input.css — MageComboInput global component
 *
 * Unified combo input: optional prefix + divider + value input +
 * MagePickerPlus label dropdown + add button, with records below.
 *
 * Used by: kontakt-edit (Telefon, E-Mail, Social Media), any future combo fields.
 * Global component — defined ONCE, never duplicated in page CSS.
 */

/* ── Container ── */
.mage-multi-combo{display:flex;flex-direction:column;}

/* ── The single unified input bar — positioning context for dropdown ── */
.mage-multi-combo-input{
    display:flex;align-items:stretch;
    border:1px solid var(--grey-200);border-radius:var(--radius);
    background:var(--surface);position:relative;
    transition:border-color var(--dur-fast);
}
.mage-multi-combo-input:focus-within{border-color:var(--muted);}

/* First and last child get border-radius to round the bar without overflow:hidden */
.mage-multi-combo-input > *:first-child{border-radius:var(--radius) 0 0 2px;}
.mage-multi-combo-input > *:last-child{border-radius:0 var(--radius) var(--radius) 0;}

/* ── Country prefix (small, fixed width) ── */
.mage-multi-combo-input .mc-prefix{
    width:var(--sz-52);flex-shrink:0;
    border:none !important;border-radius:0 !important;outline:none !important;box-shadow:none !important;
    padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-4) !important;font-size:var(--fs-md) !important;color:var(--grey-800) !important;
    background:transparent !important;text-align:center;
}

/* ── Thin vertical divider between sections ── */
.mage-multi-combo-input .mc-divider{
    width:1px;background:var(--grey-200);flex-shrink:0;margin:var(--sp-2) 0;
}

/* ── Value input (fills remaining space) ── */
.mage-multi-combo-input .mc-value{
    flex:1;min-width:0;
    border:none !important;border-radius:0 !important;outline:none !important;box-shadow:none !important;
    padding:var(--sp-3) var(--sp-4) !important;font-size:var(--fs-md) !important;color:var(--grey-800) !important;
    background:transparent !important;
}
.mage-multi-combo-input .mc-value::placeholder{color:var(--muted);}

/* ── Label picker container — hosts the MagePickerPlus trigger inline ── */
.mage-multi-combo-input .mc-label-trigger{
    display:flex;align-items:stretch;
    border-left:1px solid var(--grey-200);
    flex-shrink:0;
}
/* Override MagePickerPlus styles to blend into the combo input */
.mage-multi-combo-input .mc-label-trigger .mpp-wrap{
    display:flex;align-items:stretch;
    position:static;/* dropdown escapes via .mage-multi-combo-input positioning */
    width:auto;
}
/* Das AUSSEHEN des nackten Auslösers steht seit dem 15.09.2026 beim Eigentümer: picker kennt es als
   Variante .mpp-trigger-bare, und combo.js setzt die Klasse. Hier standen acht !important, mit denen
   ein fremdes Modul das Design dieser Komponente fernsteuerte. Was BLEIBT ist die Anordnung im
   eigenen Behälter — das ist unsere Sache. */
.mage-multi-combo-input .mc-label-trigger .mpp-trigger{
    display:flex !important;align-items:center !important;
}
/* Dropdown: position relative to .mage-multi-combo-input, allow wider than trigger */
.mage-multi-combo-input .mc-label-trigger .mpp-dropdown{
    position:absolute;right:0;left:auto;
    min-width:var(--sz-260);width:auto;
}

/* ── Add button — gray toolbar style, rounded right side ── */
.mage-multi-combo-input .mc-btn-add{
    display:flex;align-items:center;justify-content:center;
    width:var(--sz-36);flex-shrink:0;
    border:none;border-left:1px solid var(--grey-200);
    background:var(--grey-100);color:var(--grey-600);
    font-size:var(--fs-md);cursor:pointer;
    transition:all var(--dur-fast);padding:0;
}
.mage-multi-combo-input .mc-btn-add:hover{background:var(--grey-200);color:var(--grey-700);}
.mage-multi-combo-input .mc-btn-add i{font-size:var(--fs-lg);line-height:1;}

/* ── Records list (with gap below input) ── */
.mage-multi-combo-records{margin-top:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-1);}

/* ── Single record row ── */
.mage-multi-combo-record{
    display:flex;align-items:center;justify-content:space-between;
    padding:var(--sp-2) var(--sp-5);
    border:1px solid var(--grey-100);border-radius:var(--radius);
    background:var(--grey-50);font-size:var(--fs-base);
    transition:background var(--dur-fast);
}
.mage-multi-combo-record:hover{background:var(--info-bg);}
.mage-multi-combo-record .mc-rec-value{font-weight:var(--fw-bold);color:var(--grey-800);}
.mage-multi-combo-record .mc-rec-label{font-size:var(--fs-xs);color:var(--grey-500);margin-left:var(--sp-3);background:var(--grey-100);padding:var(--sp-0) var(--sp-3);border-radius:var(--radius);}
.mage-multi-combo-record .mc-rec-star{cursor:pointer;font-size:var(--fs-lg);color:var(--grey-300);transition:color var(--dur-fast);flex-shrink:0;}
.mage-multi-combo-record .mc-rec-star.is-primary{color:var(--warn);}
.mage-multi-combo-record .mc-rec-delete{display:flex;align-items:center;justify-content:center;width:var(--sz-36);flex-shrink:0;border:none;border-left:1px solid var(--grey-100);background:var(--grey-100);color:var(--muted);font-size:var(--fs-md);cursor:pointer;padding:0;margin:calc(-1 * var(--sp-2)) calc(-1 * var(--sp-5)) calc(-1 * var(--sp-2)) 0;border-radius:0 var(--radius) var(--radius) 0;align-self:stretch;transition:all var(--dur-fast);}
.mage-multi-combo-record .mc-rec-delete:hover{background:var(--grey-200);color:var(--grey-600);}

/* ── Empty state ── */
.mage-multi-combo-empty{padding:var(--sp-4);text-align:center;color:var(--grey-500);font-size:var(--fs-sm);border:1px dashed var(--grey-200);border-radius:var(--radius);margin-top:var(--sp-3);}

/* Datensatz-Zeile: Layout (früher als inline cssText im JS gesetzt). */
.mc-rec-left{flex:1;display:flex;align-items:center}
.mc-rec-right{display:flex;align-items:center;gap:var(--sp-2)}

/* Fehlt der Kern-Wähler (picker abgeschaltet), steht hier ein ruhiger Hinweis statt eines
   Absturzes — gedämpft und nicht anklickbar, damit niemand darauf wartet. (14.09.2026) */
.mage-multi-combo-input .mc-label-trigger-aus {
  color: var(--muted);
  font-size: var(--fs-xs);
  pointer-events: none;
}

/* Verbindungsdaten — nur eigene .cn-*-Klassen, ausschliesslich Kern-Tokens. Sichtbarkeit der
   typabhängigen Felder schaltet das JS über die Kern-Klasse .cc-hidden. */
.cn-add { margin-top: var(--sp-6); padding-top: var(--sp-5); border-top: 1px solid var(--border); }
.cn-foot { display: flex; justify-content: flex-end; gap: var(--sp-2); margin-top: var(--sp-4); }

/* Dienste — nur Anordnung (Modul-Präfix .cn-*): Dienste-Zeilen untereinander, Abstand der Inhaltsspalte zum Fensterrand wie im CRM. */
.cn-svc-list { display: flex; flex-direction: column; }


/* Controlling — nur Anordnung (Kern-Tokens). Text-Rollen, Farben, Schriften, Tabellen, Kennzahlen und
   Plaketten kommen aus den Kern-Bausteinen; die Berichts-Bibliothek ist eine gewöhnliche Kern-Tabelle. */
.co-main { min-width: 0; }

/* Werkzeugleisten über den Zeit-Ansichten: umbrechen statt herauslaufen. */
.co-toolbar, .co-groupbar { flex-wrap: wrap; row-gap: var(--sp-2); align-items: center; gap: var(--sp-4); }
.co-nav-period { align-items: center; flex-direction: row; gap: var(--sp-2); }
/* Drei Gruppen in der Kopfzeile: links Zeitraum-Wahl, Mitte das Blättern, rechts die Filter. Die
   Aussengruppen teilen sich den Rest, damit die Mitte wirklich mittig steht. Der Kern-Nachbarabstand
   gilt für GESTAPELTE Blöcke — nebeneinanderliegende Gruppen bekommen ihn hier zurückgesetzt. */
.co-toolbar > .cc-row + .cc-row { margin-top: 0; }
/* Basis 0 (nicht 180 px): die Aussengruppen WACHSEN gleich und erzwingen keinen Umbruch. Mit einer
   Grundbreite sprang die Zeile in schmalen Fenstern um; liess man die leere Gruppe dagegen ganz
   zusammenfallen, stand die Mitte im Arbeitszeitblatt links (10 px zu 715 px). So bleibt sie mittig,
   auch wenn links — wie im Arbeitszeitblatt — keine Zeitraum-Wahl steht. */
.co-tb-left, .co-tb-right { flex: 1 1 0; min-width: 0; }
.co-tb-right { justify-content: flex-end; }
.co-tb-mid { flex: 0 0 auto; justify-content: center; }
.co-period-label { min-width: var(--sz-180); text-align: center; }
.co-filter { min-width: var(--sz-160); max-width: var(--sz-260); }

/* Kennzahlen (Gesamt · Verrechenbar · Personen · Ø) */
.co-kpis { margin: var(--sp-4) 0 var(--sp-5); }

/* Zeitbericht: Name mit Avatar, Balken füllt seine Spalte. */
.co-name { display: inline-flex; align-items: center; gap: var(--sp-3); min-width: 0; }
.co-zb-table .cc-progress { min-width: var(--sz-40); }
/* Aufklapp-Pfeil vor dem Namen — dieselbe Anordnung wie im Arbeitszeitblatt (Kern zeichnet den Knopf). */
.co-zb-toggle { width: var(--sz-28); height: var(--sz-28); transition: transform var(--dur-fast) var(--ease); }
.co-zb-toggle.co-open { transform: rotate(90deg); }
/* Unterzeile: die Kern-Listenzeilen der Aufgaben liegen direkt untereinander. */
.co-sub-row { padding-right: var(--sp-5); }

/* Arbeitszeitblatt: Raster wie im Vorbild — Summe oben, heute hervorgehoben, Wochenende schraffiert,
   Personen aufklappbar, Projekte eingerückt. Tageszellen, heutige Spalte, Summen- und Gruppenzeile zeichnet der
   Kern (Design::gridCell, cc-col-today, cc-row-sum, cc-row-group); hier nur die Anordnung. */
.co-az-table th.co-az-day, .co-az-table th.co-az-sum { text-align: center; }
.co-az-table td { vertical-align: middle; }
.co-az-table tbody tr.co-az-empty { opacity: var(--op-half); }
.co-az-toggle { width: var(--sz-28); height: var(--sz-28); transition: transform var(--dur-fast) var(--ease); }
.co-az-toggle.co-az-open { transform: rotate(90deg); }
.co-az-toggle-spacer { display: inline-block; width: var(--sz-28); }
.co-az-project { padding-left: var(--sp-8); }

/* Rail: ActiveCollab-Stand */
.co-sync { padding: 0 var(--sp-4) var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-2); }
.co-sync-line { display: flex; align-items: center; gap: var(--sp-2); min-width: 0; }
.co-sync-line .txt-muted { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.co-sync-btn { align-self: flex-start; margin-top: var(--sp-2); }

/* Seitenleisten (Einzeleinträge, Bericht) */
.co-detail { min-width: 0; }

/* CRM — nach dem Kern-Umbau bleibt hier fast nichts: Zellen (entityCell), Buttons (iconBtn tone/
   disabled), Inaktiv-Zeilen (dt-row-inactive), Rail (railItem), Avatar-Vorschau (cc-avatar-xl),
   Chips (cc-chip-trunc), Entfernen-Link (cc-link-btn) liefern KERNMODULE. Übrig ist nur echter
   CRM-Kontext: Abstände der eigenen Container. */

/* Org-Chips unterhalb der Entitäts-Zelle (Zweitzeile der Namens-Spalte). */
.kon-name-orgs{margin-top:var(--sp-1)}   /* Stapel-Layout liefert cc-stack (layout-Kern) */

/* E-Mail-Prüfung: dreiwertige Rückmeldung direkt unter dem Feld. Ton = Kern-Plakette (badge-status
   bg-success/-warning/-danger, gesetzt in crm.js) — hier nur die Anordnung. */
.crm-mail-state { display: table; margin-top: var(--sp-1); }
.crm-mail-state:empty { display: none; }

/* Öffentliche Einladungsseite (/einladung/<token>): schmale, zentrierte Spalte — Inhalt aus Kern-Bausteinen. */
.crm-inv { max-width: var(--sz-500); margin: var(--sp-12) auto; padding: 0 var(--sp-7); }
.crm-inv-logo { display: flex; justify-content: center; margin-bottom: var(--sp-8); }

/* Zugangs-Sektion: die Liste der weiteren Benutzer setzt sich vom eigenen Zugang ab. */

/* Zeitplan-Feld (Core\Design::cronField) — Baukasten oben, Ausdruck darunter, Klartext als Fusszeile. */
.cc-cron { display: flex; flex-direction: column; gap: var(--sp-2); }
.cc-cron-build { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }
.cc-cron-part { display: inline-flex; align-items: center; gap: var(--sp-1); }
.cc-cron-read { margin: 0; color: var(--muted); font-size: var(--fs-sm); }
/* Solange der Baukasten führt, ist der Rohausdruck nur Anzeige — sonst tippt man gegen die Auswahl an. */
.cc-cron-expr-dim { opacity: var(--op-muted); }


:root{--dt-row-selected: 13, 110, 253;--dt-row-selected-text: 255, 255, 255;--dt-row-selected-link: 9, 10, 11;--dt-row-stripe: 0, 0, 0;--dt-row-hover: 0, 0, 0;--dt-column-ordering: 0, 0, 0;--dt-html-background: white}:root.dark{--dt-html-background: rgb(33, 37, 41)}table.dataTable td.dt-control{text-align:center;cursor:pointer}table.dataTable td.dt-control:before{display:inline-block;color:rgba(0, 0, 0, 0.5);content:"▶"}table.dataTable tr.dt-hasChild td.dt-control:before{content:"▼"}html.dark table.dataTable td.dt-control:before{color:rgba(255, 255, 255, 0.5)}html.dark table.dataTable tr.dt-hasChild td.dt-control:before{color:rgba(255, 255, 255, 0.5)}table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting_asc_disabled,table.dataTable thead>tr>th.sorting_desc_disabled,table.dataTable thead>tr>td.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting_asc_disabled,table.dataTable thead>tr>td.sorting_desc_disabled{cursor:pointer;position:relative;padding-right:26px}table.dataTable thead>tr>th.sorting:before,table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_desc:before,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_asc_disabled:after,table.dataTable thead>tr>th.sorting_desc_disabled:before,table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting:before,table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_desc:before,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_asc_disabled:after,table.dataTable thead>tr>td.sorting_desc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:after{position:absolute;display:block;opacity:.125;right:10px;line-height:9px;font-size:.8em}table.dataTable thead>tr>th.sorting:before,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_desc:before,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_desc_disabled:before,table.dataTable thead>tr>td.sorting:before,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_desc:before,table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:before{bottom:50%;content:"▲";content:"▲"/""}table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>th.sorting_asc_disabled:after,table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc_disabled:after,table.dataTable thead>tr>td.sorting_desc_disabled:after{top:50%;content:"▼";content:"▼"/""}table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_desc:after{opacity:.6}table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting_asc_disabled:before{display:none}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}div.dataTables_scrollBody>table.dataTable>thead>tr>th:before,div.dataTables_scrollBody>table.dataTable>thead>tr>th:after,div.dataTables_scrollBody>table.dataTable>thead>tr>td:before,div.dataTables_scrollBody>table.dataTable>thead>tr>td:after{display:none}div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:2px;z-index:10}div.dataTables_processing>div:last-child{position:relative;width:80px;height:15px;margin:1em auto}div.dataTables_processing>div:last-child>div{position:absolute;top:0;width:13px;height:13px;border-radius:50%;background:rgb(13, 110, 253);background:rgb(var(--dt-row-selected));animation-timing-function:cubic-bezier(0, 1, 1, 0)}div.dataTables_processing>div:last-child>div:nth-child(1){left:8px;animation:datatables-loader-1 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(2){left:8px;animation:datatables-loader-2 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(3){left:32px;animation:datatables-loader-2 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(4){left:56px;animation:datatables-loader-3 .6s infinite}@keyframes datatables-loader-1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes datatables-loader-3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes datatables-loader-2{0%{transform:translate(0, 0)}100%{transform:translate(24px, 0)}}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th,table.dataTable thead td,table.dataTable tfoot th,table.dataTable tfoot td{text-align:left}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable>thead>tr>th,table.dataTable>thead>tr>td{padding:10px;border-bottom:1px solid rgba(0, 0, 0, 0.3)}table.dataTable>thead>tr>th:active,table.dataTable>thead>tr>td:active{outline:none}table.dataTable>tfoot>tr>th,table.dataTable>tfoot>tr>td{padding:10px 10px 6px 10px;border-top:1px solid rgba(0, 0, 0, 0.3)}table.dataTable tbody tr{background-color:transparent}table.dataTable tbody tr.selected>*{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.9);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.9);color:rgb(255, 255, 255);color:rgb(var(--dt-row-selected-text))}table.dataTable tbody tr.selected a{color:rgb(9, 10, 11);color:rgb(var(--dt-row-selected-link))}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border>tbody>tr>th,table.dataTable.row-border>tbody>tr>td,table.dataTable.display>tbody>tr>th,table.dataTable.display>tbody>tr>td{border-top:1px solid rgba(0, 0, 0, 0.15)}table.dataTable.row-border>tbody>tr:first-child>th,table.dataTable.row-border>tbody>tr:first-child>td,table.dataTable.display>tbody>tr:first-child>th,table.dataTable.display>tbody>tr:first-child>td{border-top:none}table.dataTable.row-border>tbody>tr.selected+tr.selected>td,table.dataTable.display>tbody>tr.selected+tr.selected>td{border-top-color:#0262ef}table.dataTable.cell-border>tbody>tr>th,table.dataTable.cell-border>tbody>tr>td{border-top:1px solid rgba(0, 0, 0, 0.15);border-right:1px solid rgba(0, 0, 0, 0.15)}table.dataTable.cell-border>tbody>tr>th:first-child,table.dataTable.cell-border>tbody>tr>td:first-child{border-left:1px solid rgba(0, 0, 0, 0.15)}table.dataTable.cell-border>tbody>tr:first-child>th,table.dataTable.cell-border>tbody>tr:first-child>td{border-top:none}table.dataTable.stripe>tbody>tr.odd>*,table.dataTable.display>tbody>tr.odd>*{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.023);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-stripe), 0.023)}table.dataTable.stripe>tbody>tr.odd.selected>*,table.dataTable.display>tbody>tr.odd.selected>*{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.923);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.923)}table.dataTable.hover>tbody>tr:hover>*,table.dataTable.display>tbody>tr:hover>*{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.035);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover), 0.035)}table.dataTable.hover>tbody>tr.selected:hover>*,table.dataTable.display>tbody>tr.selected:hover>*{box-shadow:inset 0 0 0 9999px #0d6efd !important;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 1) !important}table.dataTable.order-column>tbody tr>.sorting_1,table.dataTable.order-column>tbody tr>.sorting_2,table.dataTable.order-column>tbody tr>.sorting_3,table.dataTable.display>tbody tr>.sorting_1,table.dataTable.display>tbody tr>.sorting_2,table.dataTable.display>tbody tr>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.019);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.019)}table.dataTable.order-column>tbody tr.selected>.sorting_1,table.dataTable.order-column>tbody tr.selected>.sorting_2,table.dataTable.order-column>tbody tr.selected>.sorting_3,table.dataTable.display>tbody tr.selected>.sorting_1,table.dataTable.display>tbody tr.selected>.sorting_2,table.dataTable.display>tbody tr.selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.919);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.919)}table.dataTable.display>tbody>tr.odd>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.odd>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.054);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.054)}table.dataTable.display>tbody>tr.odd>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.odd>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.047);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.047)}table.dataTable.display>tbody>tr.odd>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.odd>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.039);box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.039)}table.dataTable.display>tbody>tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.954);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.954)}table.dataTable.display>tbody>tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.947);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.947)}table.dataTable.display>tbody>tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.939);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.939)}table.dataTable.display>tbody>tr.even>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.019);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.019)}table.dataTable.display>tbody>tr.even>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.011);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.011)}table.dataTable.display>tbody>tr.even>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.003);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.003)}table.dataTable.display>tbody>tr.even.selected>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.919);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.919)}table.dataTable.display>tbody>tr.even.selected>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.911);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.911)}table.dataTable.display>tbody>tr.even.selected>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.903);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.903)}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.082);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover), 0.082)}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.074);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover), 0.074)}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.062);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover), 0.062)}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.982);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.982)}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.974);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.974)}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.962);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.962)}table.dataTable.no-footer{border-bottom:1px solid rgba(0, 0, 0, 0.3)}table.dataTable.compact thead th,table.dataTable.compact thead td,table.dataTable.compact tfoot th,table.dataTable.compact tfoot td,table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th,table.dataTable td{box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_length select{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;color:inherit;padding:4px}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;color:inherit;margin-left:3px}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;color:inherit !important;border:1px solid transparent;border-radius:2px;background:transparent}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:inherit !important;border:1px solid rgba(0, 0, 0, 0.3);background-color:rgba(0, 0, 0, 0.05);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(230, 230, 230, 0.05)), color-stop(100%, rgba(0, 0, 0, 0.05)));background:-webkit-linear-gradient(top, rgba(230, 230, 230, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%);background:-moz-linear-gradient(top, rgba(230, 230, 230, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%);background:-ms-linear-gradient(top, rgba(230, 230, 230, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%);background:-o-linear-gradient(top, rgba(230, 230, 230, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%);background:linear-gradient(to bottom, rgba(230, 230, 230, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#111;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#0c0c0c;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:inherit}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid rgba(0, 0, 0, 0.3)}.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,.dataTables_wrapper.no-footer div.dataTables_scrollBody>table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:.5em}}html.dark{--dt-row-hover: 255, 255, 255;--dt-row-stripe: 255, 255, 255;--dt-column-ordering: 255, 255, 255}html.dark table.dataTable>thead>tr>th,html.dark table.dataTable>thead>tr>td{border-bottom:1px solid rgb(89, 91, 94)}html.dark table.dataTable>thead>tr>th:active,html.dark table.dataTable>thead>tr>td:active{outline:none}html.dark table.dataTable>tfoot>tr>th,html.dark table.dataTable>tfoot>tr>td{border-top:1px solid rgb(89, 91, 94)}html.dark table.dataTable.row-border>tbody>tr>th,html.dark table.dataTable.row-border>tbody>tr>td,html.dark table.dataTable.display>tbody>tr>th,html.dark table.dataTable.display>tbody>tr>td{border-top:1px solid rgb(64, 67, 70)}html.dark table.dataTable.row-border>tbody>tr.selected+tr.selected>td,html.dark table.dataTable.display>tbody>tr.selected+tr.selected>td{border-top-color:#0257d5}html.dark table.dataTable.cell-border>tbody>tr>th,html.dark table.dataTable.cell-border>tbody>tr>td{border-top:1px solid rgb(64, 67, 70);border-right:1px solid rgb(64, 67, 70)}html.dark table.dataTable.cell-border>tbody>tr>th:first-child,html.dark table.dataTable.cell-border>tbody>tr>td:first-child{border-left:1px solid rgb(64, 67, 70)}html.dark .dataTables_wrapper .dataTables_filter input,html.dark .dataTables_wrapper .dataTables_length select{border:1px solid rgba(255, 255, 255, 0.2);background-color:var(--dt-html-background)}html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.current,html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{border:1px solid rgb(89, 91, 94);background:rgba(255, 255, 255, 0.15)}html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,html.dark .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{color:#666 !important}html.dark .dataTables_wrapper .dataTables_paginate .paginate_button:hover{border:1px solid rgb(53, 53, 53);background:rgb(53, 53, 53)}html.dark .dataTables_wrapper .dataTables_paginate .paginate_button:active{background:#3a3a3a}

/* tables.css — MageGrid DataTable / Grid base table styling */

/* ----- Table Base (modern style — uniform across app) ----- */
.mage-table{font-size:var(--fs-base);border:none;border-collapse:separate;border-spacing:0;width:100%;border-radius:0}
/* Kopfschrift = --grey-400 statt --muted (1.12.7, KI-Chat R6): der Kopf ist eine EIGENE dunkle Fläche (--tabelle-kopf), --muted dagegen
   ist der gedämpfte Ton der UMGEBENDEN Fläche und wird dort umgestellt — windownav hebt ihn auf der hellen Rail auf --grey-600, und
   eine Tabelle in einer Rail (Dateiliste der KI-Chat-Arbeitsfläche) stand dann bei 1,94:1. Ausserhalb solcher Flächen ist der Wert
   unverändert: --grey-400 und --muted sind im Kern bewusst deckungsgleich, in beiden Themes. */
.mage-table thead th{background-color:var(--tabelle-kopf, var(--ink)) !important;color:var(--grey-400) !important;font-weight:var(--fw-normal);border:none;padding:var(--sp-3) var(--sp-7);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--tracking);white-space:nowrap;cursor:pointer;position:sticky !important;top:var(--dtx-head-h, 0px) !important;z-index:var(--z-nav);user-select:none;transition:background var(--dur-fast) ease}
/* Sticky-Header-Overlap: tbody-Zellen dürfen den fixierten Kopf NICHT übermalen */
.mage-table tbody td{position:static;background-clip:padding-box}
/* Zeile OHNE eigene Stapel-Ebene (datatable 1.11.1): position bleibt, aber kein z-index. Mit
   z-index:var(--z-base) war JEDE Zeile ein eigener Stapelkontext auf derselben Höhe — die spätere
   Zeile malte über alles der früheren, also auch über eine aufgeklappte Auswahlliste (MagePickerPlus,
   --z-popover) in einer Zelle. Den Kopf schützt das nicht mehr als vorher: er steht mit --z-nav über
   allem Unpositionierten und über positionierten Zellinhalten ohne z-index. */
.mage-table tbody tr{position:relative}
/* Ecken: NUR links an der ersten, NUR rechts an der letzten Spalte (galt vorher rundum → optisch schief,
   sobald das Kernmodul die Auswahl-Spalte voranstellt). Zentral hier, nie im aufsetzenden Modul. */
.mage-table thead th:first-child{border-radius:var(--radius) 0 0 2px}
.mage-table thead th:last-child{border-radius:0 var(--radius) var(--radius) 0}
/* Hover nur an SORTIERBAREN Köpfen und im Farbraum des Kopfs (datatable 1.12.5): --grey-800/--surface kippen im Dunkelmodus —
   der Kopf wurde beim Überfahren ein hellgrauer Block mit dunkler Schrift (KI-Chat R4). Jetzt der Kopf-Ton, eine Stufe
   aufgehellt, mit der festen hellen Schrift (--on-dunkel); nicht sortierbare Köpfe (dt-nosort, Gruppenspalte) reagieren nicht. */
.mage-table thead th:not(.dt-nosort):not(.sorting_disabled):not(.col-check):hover{background:color-mix(in srgb, var(--tabelle-kopf, var(--ink)) 82%, var(--on-dunkel)) !important;color:var(--on-dunkel) !important}
.mage-table thead th.dt-nosort,
.mage-table thead th.sorting_disabled{cursor:default !important}
.mage-table thead th.sorting_asc::after,
.mage-table thead th.sorting_desc::after{color:var(--o);opacity:1}
.mage-table thead{border-bottom:none}
.mage-table tbody::before{content:'';display:table-row;height:var(--sz-20)}
.mage-table tbody td{padding:var(--sp-6) var(--sp-7);vertical-align:middle;border:none;border-bottom:1px solid var(--grey-200);color:var(--grey-800);font-size:var(--fs-base);background-color:var(--surface);transition:background-color var(--dur-fast) ease}
.mage-table tbody tr:nth-child(odd) td{background-color:var(--surface)}
.mage-table tbody tr:hover td{background-color:var(--info-bg) !important}
.mage-table tbody tr:hover td:first-child{border-radius:var(--radius) 0 0 2px}
.mage-table tbody tr:hover td:last-child{border-radius:0 var(--radius) var(--radius) 0}
.mage-table tbody tr.clickable-row{cursor:pointer}

/* ----- Checkbox Column (minimal width, aligned — MUST stay 28px on ALL tables) ----- */
.mage-table th.col-check,
.mage-table td.col-check{width:var(--sz-28) !important;min-width:var(--sz-28) !important;max-width:var(--sz-28) !important;text-align:center;padding:var(--sp-4) var(--sp-1) !important;box-sizing:border-box;overflow:hidden}
.mage-table th.col-check{cursor:default !important;padding-right:var(--sp-1) !important}
.mage-table th.col-check::before,
.mage-table th.col-check::after{display:none !important;content:none !important}
table.dataTable thead>tr>th.col-check::before,
table.dataTable thead>tr>th.col-check::after{display:none !important;content:none !important}
table.dataTable thead>tr>th.col-check{padding-right:var(--sp-1) !important;cursor:default !important}
.mage-table colgroup col:first-child{width:var(--sz-28) !important}
.mage-table th.col-check .mage-check-wrap{max-width:var(--sz-28);overflow:visible}
.mage-table th.col-check input[type="checkbox"],
.mage-table td.col-check input[type="checkbox"]{width:var(--sz-14);height:var(--sz-14);cursor:pointer;accent-color:var(--ink);margin:0 auto;display:block}

/* ----- Row Action Buttons ----- */
.mage-table .btn-action{padding:var(--sp-2);font-size:var(--fs-md);border:none;border-radius:var(--radius);background:var(--grey-100);color:var(--grey-600);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast);line-height:1;width:var(--sz-32);height:var(--sz-32);display:inline-flex;align-items:center;justify-content:center}
.mage-table .btn-action:hover{background:var(--grey-200);color:var(--grey-700)}

/* ----- Status Indicator (centralized — single source of truth) ----- */
.status-indicator { display: flex; align-items: center; gap:var(--sp-2); white-space: nowrap; }
.status-dot { width:var(--sz-8); height:var(--sz-8); border-radius: 50%; flex-shrink: 0; }
.status-dot.active { background: var(--ok); box-shadow:var(--shadow-md); }
.status-dot.inactive { background: var(--grey-300); }
.status-dot-label { font-size:var(--fs-sm); color: var(--grey-500); }
.mage-table td:last-child .status-indicator { justify-content: flex-end; }

/* ----- Status Badges ----- */

/* ----- Count Badges ----- */
.count-badge{display:inline-block;background:var(--grey-200);color:var(--grey-700);font-size:var(--fs-2xs);font-weight:var(--fw-bold);padding:var(--sp-0) var(--sp-2);border-radius:var(--radius);line-height:1.6;min-width:var(--sz-24);text-align:center}
.count-badge.has-items{background:var(--ok-bg);color:var(--ok-fg)}

/* ----- Clickable Label Hover (global, works with any background color) ----- */
/* Uses ::after with semi-transparent black overlay so it darkens any label color on hover. */
.mage-label-clickable{position:relative;cursor:pointer;overflow:hidden}
.mage-label-clickable::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;transition:background var(--dur-fast)}
.mage-label-clickable:hover::after{background:var(--shadow-line)}

/* ----- Link Icons in Table Cells ----- */
.mage-table .cell-link{color:var(--grey-600);text-decoration:none;font-size:var(--fs-md)}
.mage-table .cell-link:hover{color:var(--o)}

/* ----- Logo Cell (Customers) ----- */
.customer-logo-cell img{max-height:var(--sz-28);max-width:var(--sz-80);object-fit:contain}


/* ===== Toolbar im ERP-Layout: 2 Zeilen ===== */
/* Zeile 1: Suche links · Filter/Spalten/Export/Modul-Buttons rechts */
.dataTables_wrapper .dtx-r1{display:flex;align-items:center;gap:var(--sp-5);margin-bottom:var(--sp-5);flex-wrap:wrap}
.dataTables_wrapper .dtx-r1 .dataTables_filter{flex:1;min-width:0;margin:0;text-align:left;position:relative}
.dataTables_wrapper .dtx-r1 .dataTables_filter input{width:100%;min-width:0;margin:0 !important}
.dataTables_wrapper .dtx-searchwrap .dtx-search-x{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:none;color:var(--muted);font-size:var(--fs-lg);line-height:1;cursor:pointer;padding:0 var(--sp-1)}
.dataTables_wrapper .dtx-searchwrap .dtx-search-x:hover{color:var(--grey-700)}
.dataTables_wrapper .dtx-r1-btns{flex-wrap:wrap;display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0}
.dataTables_wrapper .dtx-dd{position:relative;display:inline-flex}
/* Zeile 2: Aktionen + Zähler links · Seitenwahl + Pager rechts */
/* Die Werkzeugleiste UMBRICHT, wenn der Platz nicht reicht — sonst schiebt die rechte Gruppe
   (Seitenlänge + Pager, ~330px) im schmalen Fenster ueber den rechten Fensterrand hinaus. Das traf
   JEDE Tabelle im System; die Kompakt-Schwellen in datatable.js (< 560px) greifen erst spaeter und
   sind eine Schaetzung — Umbruch stimmt bei jeder Breite. */
/* KEIN eigener Abstand nach unten: die Luft zum Tabellenkopf gehört dem Kopf-BLOCK (.dtx-head,
   padding-bottom) — ein margin hier fiele aus dessen gemessener Höhe heraus (Margin-Collapse) und
   der klebende Kopf sässe genau um diesen Betrag zu hoch: beim Scrollen klebte er an der
   Paginierung (Florian 12.09.2026: „schiebt es den dunklen Tableheader noch weiter hoch"). */
.dataTables_wrapper .dtx-r2{display:flex;align-items:center;gap:var(--sp-6);margin-bottom:0;flex-wrap:wrap;row-gap:var(--sp-2)}
.dataTables_wrapper .dtx-r2-l{display:inline-flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap;min-width:0}
.dataTables_wrapper .dtx-r2-r{margin-left:auto;display:inline-flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;min-width:0}
.dataTables_wrapper .dtx-r2 .dataTables_info{color:var(--muted);font-size:var(--fs-base);padding:0;white-space:nowrap}
.dataTables_wrapper .dtx-r2 .dataTables_length{display:inline-flex;align-items:center}
.dataTables_wrapper .dtx-r2 .dataTables_length label{font-size:var(--fs-base);color:var(--muted);display:inline-flex;align-items:center;gap:var(--sp-2)}
.dataTables_wrapper .dtx-r2 .dataTables_length select.form-select{width:auto;min-width:var(--sz-64);padding:var(--sp-2) var(--sp-3) !important}
.dataTables_wrapper .dtx-act{display:inline-flex}
.dataTables_wrapper .dtx-act .mpp-mount{min-width:var(--sz-120)}
.dataTables_wrapper .dtx-sel-count{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--o);white-space:nowrap}
/* Dropdown-Panels (Filter/Spalten) */
.dataTables_wrapper .dtx-panel{position:absolute;top:100%;right:0;margin-top:var(--sp-1);z-index:var(--z-nav);min-width:var(--sz-240);max-height:var(--sz-360);overflow-y:auto;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:var(--sp-3)}
/* Filter-Panel: Facetten (Label + flache Wert-Chips) — KEIN verschachteltes Dropdown */
.dataTables_wrapper .dtx-frow{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) var(--sp-2);border-bottom:1px solid var(--grey-100)}
.dataTables_wrapper .dtx-frow:last-child{border-bottom:none}
.dataTables_wrapper .dtx-flabel{font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--tracking);text-transform:uppercase;color:var(--muted)}
.dataTables_wrapper .dtx-fopts{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.dataTables_wrapper .dtx-fopt{border:1px solid var(--border);background:var(--surface);color:var(--grey-700);border-radius:var(--radius);padding:var(--sp-1) var(--sp-4);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast)}
.dataTables_wrapper .dtx-fopt:hover{background:var(--grey-100)}
.dataTables_wrapper .dtx-fopt.active{background:var(--o);border-color:var(--o);color:var(--surface)}
/* Seitenwahl-Dropdown (Dropdown-Modul) */
.dataTables_wrapper .dtx-lenwrap{display:inline-flex;align-items:center;gap:var(--sp-3)}
.dataTables_wrapper .dtx-len-lbl{font-size:var(--fs-base);color:var(--muted);white-space:nowrap}
.dataTables_wrapper .dtx-len-mount .mpp-mount{min-width:var(--sz-64)}
.dataTables_wrapper .dtx-crow{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2);font-size:var(--fs-base);color:var(--text);cursor:pointer;border-radius:var(--radius)}
.dataTables_wrapper .dtx-crow:hover{background:var(--grey-100)}
/* Auswahl-Spalte (Checkboxen) */
.mage-table th.dt-select,.mage-table td.dt-select{width:var(--sz-36);text-align:center;padding-left:var(--sp-4);padding-right:var(--sp-2)}
.mage-table td.dt-select input,.mage-table th.dt-select input{width:var(--sz-14);height:var(--sz-14);cursor:pointer;accent-color:var(--o);margin:0}
/* Pager (numeriert) — flach, 2px, aktiv = Orange */
.dataTables_wrapper .dataTables_paginate{padding:0}
.dataTables_wrapper .dataTables_paginate .paginate_button{
  border:1px solid var(--border)!important;border-radius:var(--radius)!important;background:var(--surface)!important;
  color:var(--text)!important;padding:var(--sp-1) var(--sp-4)!important;margin:0 var(--sp-0)!important;font-size:var(--fs-base)!important;
  min-width:auto!important;box-shadow:none!important;cursor:pointer}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover{background:var(--grey-100)!important;border-color:var(--border)!important;color:var(--text)!important}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{background:var(--o)!important;border-color:var(--o)!important;color:var(--surface)!important}
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{background:var(--surface)!important;color:var(--grey-300)!important;cursor:default;border-color:var(--border)!important}
/* Eine Gruppe bricht nicht um — bei Platzmangel kürzt stattdessen der ResizeObserver (dtx-pg-compact/-min) */
.dataTables_wrapper .dataTables_paginate{white-space:nowrap}
/* Pager = EINE Gruppe (wie grouped icons): innen keine Doppel-Border — border-right 0 bis aufs letzte Element */
.dataTables_wrapper .dataTables_paginate .paginate_button{border-right:0!important;border-radius:0!important}
.dataTables_wrapper .dataTables_paginate .paginate_button.first{border-radius:var(--radius) 0 0 var(--radius)!important}
.dataTables_wrapper .dataTables_paginate .paginate_button.last{border-right:1px solid var(--border)!important;border-radius:0 var(--radius) var(--radius) 0!important}
.dataTables_wrapper .dataTables_paginate .ellipsis{display:inline-block;border:1px solid var(--border);border-right:0;padding:var(--sp-1) var(--sp-4);background:var(--surface);color:var(--grey-500);font-size:var(--fs-base)}
/* Aktive Seite rechts abgrenzen: die Trennlinie IST die linke Border des Nachbarn — die färben wir,
   statt der aktiven Seite eine eigene rechte Border zu geben (das würde die Gruppe verschieben). */
.dataTables_wrapper .dataTables_paginate .paginate_button.current + .paginate_button,
.dataTables_wrapper .dataTables_paginate .paginate_button.current + .ellipsis{border-left-color:var(--o)!important}

/* Gruppen-Kopfzeile (data-group-by) — vom Kern gerendert, damit kein Modul eigene Gruppen-<tr> baut */
.mage-table tbody tr.dtx-group td{background:var(--grey-50);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--tracking);color:var(--grey-500);font-weight:var(--fw-bold);padding:var(--sp-3) var(--sp-6) !important;border-bottom:1px solid var(--border)}
.mage-table tbody tr.dtx-group:hover td{background:var(--grey-50) !important}
/* Klickbarer Gruppenkopf (Zelle group_attrs, Kern 2.7.0): Zeiger + Hover wie ein Control, Fokusring wie die Kern-Controls.
   Die Hover-Regel überstimmt die !important-Regel darüber gezielt (höhere Spezifität). */
.mage-table tbody tr.dtx-group.dtx-group-link{cursor:pointer}
/* group_action (Kern 2.9.4): Knopf am rechten Rand des Gruppenkopfs, in normaler Schrift, ohne die Kopfhöhe zu ändern. */
.mage-table tbody tr.dtx-group td.dtx-group-hasact{padding-top:0 !important;padding-bottom:0 !important}
.mage-table tbody tr.dtx-group td.dtx-group-hasact::after{content:"";display:table;clear:both}
.mage-table tbody tr.dtx-group .dtx-group-act{float:right;display:inline-flex;align-items:center;gap:var(--sp-2);text-transform:none;letter-spacing:normal;font-weight:var(--fw-normal)}
.mage-table tbody tr.dtx-group td.dtx-group-hasact{line-height:var(--sz-30)}
.mage-table tbody tr.dtx-group.dtx-group-link:hover td{background:var(--grey-100) !important;color:var(--grey-700)}
.mage-table tbody tr.dtx-group.dtx-group-link:focus-visible{outline:none}
.mage-table tbody tr.dtx-group.dtx-group-link:focus-visible td{box-shadow:var(--focus);position:relative}

/* Responsive Pagination (dtx-pg-compact/-min via ResizeObserver in datatable.js) — Platz sparen bei kleinen Fenstern. */
.dataTables_wrapper.dtx-pg-compact .dataTables_paginate .paginate_button:not(.previous):not(.next):not(.first):not(.last){display:none}
.dataTables_wrapper.dtx-pg-min .dataTables_paginate .paginate_button.first,
.dataTables_wrapper.dtx-pg-min .dataTables_paginate .paginate_button.last,
.dataTables_wrapper.dtx-pg-min .dataTables_paginate .paginate_button:not(.previous):not(.next){display:none}

/* Inaktive Zeile (Design::table Zeile ['inactive'=>true]) — EINE System-Optik für „aus". */
.mage-table tbody tr.dt-row-inactive td{opacity:var(--op-dim)}

/* ── Eine Datentabelle sprengt NIE ihr Fenster ─────────────────────────────────────────────
   Entitäts-Zellen (Design::entityCell) enthalten lange Titel mit `white-space:nowrap`. In einer
   auto-Layout-Tabelle zieht das die Spalte auf die volle Textbreite → die Tabelle wird breiter als
   das Fenster und die hinteren Spalten (Status, Tags …) waren nicht mehr zu sehen. `max-width:0`
   nimmt der Zelle diesen Mindest-Anspruch: der Titel kürzt mit „…" (wie im ERP), die Spalten
   bleiben. Kern-Regel, damit KEIN Modul das je wieder selbst lösen muss. */
.mage-table td:has(> .cc-ent) { max-width: 0; overflow: hidden; min-width: var(--sz-240); }
/* Lange Titel (Ticket-Betreffs!) brechen in der Zelle auf ZWEI Zeilen um, statt nach drei Wörtern
   zu enden. Die Tabelle sagt hier nur die ZAHL DER ZEILEN — wie gekürzt wird, steht in layout
   (.cc-ent-title, --cc-ent-lines). Kein zweiter Nachbau der Entitäts-Zelle. */
.mage-table td > .cc-ent { --cc-ent-lines: 2; min-width: 0; }
/* Der NAME ist das, wonach man sucht: er darf nie zur Briefmarke schrumpfen. Wird das Fenster zu
   schmal für alle Spalten, rollt die Tabelle waagerecht — der Name bleibt lesbar. */
.dataTables_wrapper { min-width: 0; max-width: 100%; }
/* STICKY beim Scrollen (Florian 2026-09-12, jede Tabelle in jedem Fenster): die Werkzeugzeilen
   (Suche · Filter · Aktionen · Pager) kleben als EIN Block oben, der Tabellenkopf direkt darunter
   (top = gemessene Blockhöhe --dtx-head-h, datatable.js). Der Rahmen um die Tabelle ist NUR dann ein
   waagerechter Rollbereich, wenn die Tabelle wirklich breiter ist als das Fenster (.dtx-scrollx) —
   jeder Rollbereich wäre sonst der Bezugsrahmen des klebenden Kopfes und der klebte nie. */
/* Der Abstand zum Tabellenkopf ist Teil des Blocks (padding, nicht margin) — damit steht er auch im
   klebenden Zustand und ist in der gemessenen Höhe (--dtx-head-h) enthalten. Er ist derselbe wie
   zwischen den Werkzeugzeilen (--sp-5): „es braucht hier den gleichen Abstand". */
.dataTables_wrapper .dtx-head { position: sticky; top: 0; z-index: var(--z-sticky); background: var(--surface); padding-bottom: var(--sp-5); }
/* Der Block klebt an der INNENkante des Rollbereichs — darüber liegt noch dessen Innenabstand (Fenster:
   --sp-7). Diese Fläche deckt ihn ab, sonst schimmern hochgerollte Zeilen über der Suche durch. */
.dataTables_wrapper .dtx-head::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: var(--sp-7); background: var(--surface); }
/* … aber NUR, solange der Block wirklich klebt (.dtx-klebt setzt datatable.js). Ungeklebt lag die Fläche
   über dem, was vor der Tabelle steht, und schnitt die untere Kante einer Werkzeugzeile ab (1.12.3). */
.dataTables_wrapper .dtx-head:not(.dtx-klebt)::before { content: none; }
/* Verschachtelte Tabellen (Unterzeile einer Liste, Tabelle in der Sidebar eines Fensters) erben den
   Versatz NICHT: sonst klebt ihr Kopf um die Höhe der FREMDEN Werkzeugleiste versetzt — über ihrer
   ersten Zeile, deren Klicks er dann schluckt. */
.mage-table tbody tr.cc-row-child, .dataTables_wrapper .dataTables_wrapper { --dtx-head-h: 0px; }
.dataTables_wrapper .dtx-tblwrap { overflow-x: visible; max-width: 100%; }
.dataTables_wrapper.dtx-scrollx .dtx-tblwrap { overflow-x: auto; }
/* Wird das Fenster schmal, darf der Inhalt NICHT in die Nachbarspalte laufen (Status-Chip lag
   sonst über dem Projektnamen). Alles in der Entitäts-Zelle kürzt statt zu überlaufen. */
.mage-table td > .cc-ent > .cc-ent-info { overflow: hidden; }
.mage-table td .cc-ent-meta { min-width: 0; overflow: hidden; flex-wrap: nowrap; }
.mage-table td .cc-ent-meta-text { overflow: hidden; text-overflow: ellipsis; }

/* Spaltenbreiten-Skala (Design::table ['width' => 30]) — feste Stufen statt geratener Pixelwerte. */
.mage-table th.dt-w-5  { width: 5%; }
.mage-table th.dt-w-7  { width: 7%; }
.mage-table th.dt-w-10 { width: 10%; }
.mage-table th.dt-w-12 { width: 12%; }
.mage-table th.dt-w-15 { width: 15%; }
.mage-table th.dt-w-20 { width: 20%; }
.mage-table th.dt-w-25 { width: 25%; }
.mage-table th.dt-w-30 { width: 30%; }
.mage-table th.dt-w-35 { width: 35%; }
.mage-table th.dt-w-40 { width: 40%; }
.mage-table th.dt-w-50 { width: 50%; }

/* ── Tabellen IN DER SIDEBAR: kein Querlauf ──────────────────────────────────────────────────
   Im Fenster darf eine Tabelle waagerecht rollen (der Name bleibt dann lesbar). In der Sidebar
   NICHT: dort ist der Querlauf nicht erkennbar, und die Bedien-Knöpfe der letzten Spalte werden
   unerreichbar (gemeldet bei den DNS-Records). Deshalb hier: die deklarierten Spaltenbreiten
   gelten EXAKT (table-layout: fixed), der Mindestanspruch der Namensspalte entfällt, und jeder
   Inhalt kürzt mit „…" statt die Tabelle breiter zu machen. */
[data-cc-sidepanel] .dataTables_wrapper .dtx-tblwrap { overflow-x: hidden; }
[data-cc-sidepanel] .mage-table { table-layout: fixed; width: 100%; }
[data-cc-sidepanel] .mage-table td:has(> .cc-ent) { min-width: 0; }
[data-cc-sidepanel] .mage-table th,
[data-cc-sidepanel] .mage-table td { overflow: hidden; text-overflow: ellipsis; }
[data-cc-sidepanel] .mage-table td > * { max-width: 100%; }
/* Kennungen (Endpunkte, Pfade, Schlüssel) sind KEIN Fliesstext, der gekürzt werden darf — „i18n.capt…" ist
   wertlos. Sie brechen deshalb in der schmalen Sidebar-Spalte um, statt abgeschnitten zu werden. */
[data-cc-sidepanel] .mage-table td code,
[data-cc-sidepanel] .mage-table td .txt-mono { white-space: normal; overflow-wrap: anywhere; }
/* Die Aktions-Spalte behält ihre Knöpfe nebeneinander — sie ist das, was man erreichen muss. */
[data-cc-sidepanel] .mage-table td.dt-actions { overflow: visible; white-space: nowrap; }

/* GOLDENE REGEL G9 (Florian 12.09.2026): „Controls in der letzten Spalte müssen rechtsbündig sein."
   Sie standen linksbündig und liessen rechts eine grosse Lücke — die Knöpfe gehören an die Kante,
   an der man sie sucht. Gilt für Kopf und Zelle, in Fenstern wie in Sidebars. */
.mage-table th.dt-actions, .mage-table td.dt-actions { text-align: right; }
.mage-table td.dt-actions > .dt-actions,
.mage-table td.dt-actions > .cc-ent-actions,
.mage-table td.dt-actions > .cc-row { display: flex; justify-content: flex-end; }
/* Zweiter Weg, unabhängig von der Modul-Disziplin: Design::table setzt die Spaltenklasse nur auf den
   KOPF — ob die Zelle sie auch trägt, muss das Modul je Zeile selbst angeben, und genau das wird
   vergessen. Deshalb greift die Regel zusätzlich an der letzten Zelle, wenn dort Bedienknöpfe sitzen. */
.mage-table td:last-child:has(> .cc-ent-actions),
.mage-table td:last-child:has(> .dt-actions),
.mage-table td:last-child:has(> .ac-btn-action),
.mage-table td:last-child:has(> .cc-row > .ac-btn-action) { text-align: right; }
.mage-table td:last-child > .dt-actions,
.mage-table td:last-child > .cc-ent-actions { display: flex; justify-content: flex-end; }

/* ── Tabellen IN DER SIDEBAR kleben NICHT (Florian 12.09.2026) ───────────────────────────────
   Eine Sidebar ist eine Lesefläche mit vielen Akkordeon-Tabs, kein Datengitter. Ein klebender
   Tabellenkopf hängt dort über fremdem Inhalt und lag VOR der ersten Zeile — „man sieht den ersten
   Record nicht", „die erste Zeile ist am Text abgeschnitten, etwas Weisses liegt darüber" (WAF,
   Monitorings, Git, Verbindungsdaten, Controlling-Detail). Deshalb: Kopf und Werkzeugblock stehen
   hier im Fluss, die weisse Deckfläche des Blocks entfällt, und der Abstand über der Tabelle ist
   derselbe wie überall. Das `!important` spiegelt nur das `!important` der Basisregel oben. */
[data-cc-sidepanel] .mage-table thead th { position: static !important; top: auto !important; }
[data-cc-sidepanel] .dataTables_wrapper .dtx-head { position: static; padding-bottom: var(--sp-5); }
[data-cc-sidepanel] .dataTables_wrapper .dtx-head::before { content: none; }
/* Ohne Werkzeugleiste (features 'none') trägt der leere Block keinen Abstand — sonst steht die
   Tabelle grundlos tief im Tab („zu viel Whitespace bis zum Tableheader"). */
[data-cc-sidepanel] .dataTables_wrapper .dtx-head:empty { display: none; }
/* Der Platzhalter über der ersten Zeile ist im Fenster die Luft unter dem klebenden Kopf; in der
   Sidebar klebt nichts — dort ist er nur Leerraum. */
[data-cc-sidepanel] .mage-table tbody::before { display: none; }

/* ── SIDEBAR: Suche steht LINKS NEBEN der Paginierung, in EINER Zeile ────────────────────────
   Florian 12.09.2026: „Das Suchfeld steht heute oberhalb der Paginierung. Es soll in ALLEN
   Sidebar-Tabellen links neben der Paginierung stehen, in einer Zeile." Das dom in datatable.js
   setzt die Suche dafür in Zeile 2; hier bekommt sie den freien Platz links, der Pager sitzt
   (über das margin-left:auto von .dtx-r2-r) unmittelbar rechts daneben. min-width:0 sorgt dafür,
   dass die Suche schrumpft statt die Zeile umzubrechen — in der schmalen Sidebar der Normalfall. */
[data-cc-sidepanel] .dataTables_wrapper .dtx-r2 .dataTables_filter { flex: 1; min-width: 0; margin: 0; text-align: left; position: relative; }
[data-cc-sidepanel] .dataTables_wrapper .dtx-r2 .dataTables_filter input { width: 100%; min-width: 0; margin: 0 !important; }
/* Die linke Gruppe (Bulk-Aktionen) steht in der Sidebar meist leer — als leeres Flex-Kind kostet sie
   trotzdem einen Zeilen-Abstand zwischen Suche und Pager. „Links NEBEN der Paginierung" heisst genau
   ein Abstand, nicht zwei. Mit Aktionen (Auswahl-Spalte) greift die Regel nicht. */
[data-cc-sidepanel] .dataTables_wrapper .dtx-r2 > .dtx-r2-l:empty { display: none; }
/* GLEICHE HÖHE wie das Suchfeld — und zwar die im System vorhandene, nicht eine erfundene: das
   Formular-Kernmodul gibt ALLEN einzeiligen Controls (Input/Select/Picker) var(--sz-36)
   (forms.css: „EINE Höhe für ALLE einzeiligen Controls"). Das Suchfeld ist ein input[type=search]
   und hat sie damit schon; die Pager-Knöpfe holten ihre Höhe bisher aus dem Polster und waren
   niedriger. Also: feste Höhe, Polster oben/unten raus, Inhalt mittig. Das !important spiegelt
   nur das !important der Pager-Grundregel weiter oben — sonst gewönne dort das Polster. */
[data-cc-sidepanel] .dataTables_wrapper .dtx-r2 .dataTables_paginate .paginate_button,
[data-cc-sidepanel] .dataTables_wrapper .dtx-r2 .dataTables_paginate .ellipsis {
  height: var(--sz-36) !important; box-sizing: border-box !important;
  display: inline-flex; align-items: center; justify-content: center; vertical-align: middle;
  padding-top: 0 !important; padding-bottom: 0 !important;
}
/* Zeile 1 trägt in der Sidebar jetzt nur noch die Knöpfe (Filter/Spalten/Export/Modul-Buttons).
   Ist dort keiner — oder nur der ausgeblendete Filter-Knopf, weil es keine Facetten gibt —, wäre
   sie eine leere Zeile samt Abstand. Dann fällt sie ganz weg. */
[data-cc-sidepanel] .dataTables_wrapper .dtx-r1:not(:has(> .dtx-r1-btns > *)),
[data-cc-sidepanel] .dataTables_wrapper .dtx-r1:has(> .dtx-r1-btns > .dtx-dd:only-child > button[hidden]) { display: none; }

/* ── SIDEBAR mit HÖCHSTENS ZEHN Datensätzen: kein Suchfeld, keine Paginierung ────────────────
   Florian 12.09.2026: bei zehn oder weniger Datensätzen sind beide „sinnlos und nur Lärm";
   ab dem elften erscheinen sie automatisch wieder. Die Klasse setzt datatable.js nach jedem
   Zeichnen anhand der Gesamtzahl (page.info().recordsTotal) — damit greift es auch bei
   server-seitig geladenen Listen, wo die Zahl erst nach der Antwort feststeht. */
/* Runde 4 (Florian 12.09.2026): „Suche, Filter und Paginierung werden nur angezeigt, wenn die Tabelle
   mehr als zehn Elemente hat" — der Filter-Knopf gehört ausdrücklich dazu. Export bleibt (optional). */
.dataTables_wrapper.dtx-sb-few .dataTables_filter,
.dataTables_wrapper.dtx-sb-few .dtx-filter-dd,
.dataTables_wrapper.dtx-sb-few .dataTables_paginate { display: none; }

/* Schlichte Tabelle (Design::plainTable) — Datei-Inhalt (CSV): Gitter, klebender Kopf, Zebra, Zeilennummern.
   Bewusst KEINE Datentabelle (kein dunkler Kopf, keine Suche/Pager). */
.cc-ptable-wrap { overflow: auto; max-width: 100%; }
.cc-ptable { border-collapse: collapse; font-size: var(--fs-sm); background: var(--surface); }
.cc-ptable th, .cc-ptable td { border: 1px solid var(--grey-200); padding: var(--sp-2) var(--sp-4); text-align: left; white-space: nowrap; vertical-align: top; }
.cc-ptable thead th { position: sticky; top: 0; background: var(--grey-100); font-weight: var(--fw-bold); color: var(--grey-700); z-index: var(--z-base); }
.cc-ptable tbody tr:nth-child(even) { background: var(--grey-50); }
.cc-ptable .cc-ptable-num { background: var(--grey-100); color: var(--muted); font-size: var(--fs-2xs); text-align: right; position: sticky; left: 0; z-index: var(--z-base); }

/* Zeitraster in einer Tabelle (Design::gridCell) — Stunden je Tag im Wochenblatt: zentrierter Wert in Mono;
   Tageszustände heute (Markenfarbe, hauchzart) und Wochenende (schraffiert); klickbare Zelle beim Zeigen in
   Markenfarbe. Kopf der heutigen Spalte = Spalten-'class' cc-col-today; Zeilen: cc-row-sum (Summenzeile, fett mit
   kräftiger Unterkante), cc-row-group (Gruppenzeile mit Trennlinie oben).
   GEWICHTUNG: FETT sind die SUMMEN (cc-gcell-sum, cc-row-sum) — Einzelwerte bleiben normal, auch wenn sie
   klickbar sind. Ein Blatt, in dem jede Einzelzahl fett ist, hat keine auffällige Summe mehr. */
.mage-table th.cc-col-today { border-bottom: 2px solid var(--o); }
.cc-gcell { display: block; text-align: center; font-family: var(--mono); min-height: var(--sz-20); }
.cc-gcell.cc-gcell-today { background: color-mix(in srgb, var(--o) 8%, transparent); }
.cc-gcell.cc-gcell-weekend { background: repeating-linear-gradient(135deg, transparent 0 var(--sz-6), color-mix(in srgb, var(--grey-300) 45%, transparent) var(--sz-6) calc(var(--sz-6) + 1px)); }
.cc-gcell.cc-gcell-link { cursor: pointer; color: var(--ink); font-weight: var(--fw-normal); }
.cc-gcell.cc-gcell-link:hover { color: var(--o); }
.cc-gcell.cc-gcell-sum { color: var(--ink); font-weight: var(--fw-bold); }
.mage-table tbody tr.cc-row-sum td { font-weight: var(--fw-bold); border-bottom: 2px solid var(--border); }
.mage-table tbody tr.cc-row-group td { border-top: 1px solid var(--border); }
/* UNTERZEILE einer Gruppenzeile (CC.table.childRow): nachgeladener Inhalt zu EINER Zeile, über die
   volle Breite eingerückt und hauchzart hinterlegt — damit sichtbar bleibt, wozu er gehört. */
.mage-table tbody tr.cc-row-child > td { background: var(--grey-50); border-top: 0; padding: 0 0 0 var(--sp-8); }

/* Sidebar: die Knopfgruppe sitzt in Zeile 2 zwischen Suche und Blätterung (datatable.js verschiebt sie). */
[data-cc-sidepanel] .dataTables_wrapper .dtx-r2 > .dtx-r1-btns { display: flex; align-items: center; gap: var(--sp-2); flex: 0 0 auto; }
[data-cc-sidepanel] .dataTables_wrapper .dtx-r2 > .dtx-r1-btns:empty { display: none; }
/* Wenige Datensätze (<= 10): Suche und Blätterung sind aus. Bleibt dann auch kein sichtbarer Knopf,
   fällt der ganze Werkzeugblock samt seinem Polster weg — vorher standen dort 12 px Leerraum,
   weil :empty an den nur versteckten Kindern scheiterte. */
[data-cc-sidepanel] .dataTables_wrapper.dtx-sb-few .dtx-head:not(:has(.dtx-r1-btns > :not(.dtx-filter-dd))) { display: none; }

/* documents.css — dv-Viewer: NUR ANORDNUNG (Flex/Grid, Breiten/Höhen, Abstände, Lage, Sichtbarkeits-Zustände).
   Jedes Aussehen (Flächen, Rahmen, Schrift, Farben, Schatten) liefern die Kern-Bausteine aus core/Design.php:
   pane · stage · thumb · mediaCard · divider · popover · noPreview · textPage · richText(doc) · metaLine ·
   editTitle · chip(tint/remove/sm) · iconDot(sm) · iconBtn(pressed/badge) · mediaLightbox · floatbar/toolBtn ·
   dropOverlay · plainTable · loading. */

/* Fenster-Body-Höhe (100% statt 100vh — sonst ist die Kachel höher als das Fenster → Endlos-Scroll). */
.dv-wrap { display: flex; height: 100%; overflow: hidden; position: relative; }
.dv-content-col { display: flex; flex-direction: column; flex: 1; min-width: 0; min-height: 0; }
.dv-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--sp-4); }

/* ── Werkzeugleiste (Design::pane edge bottom) ── */
.dv-topbar { display: flex; align-items: center; gap: var(--sp-3); padding: 0 var(--sp-7) 0 var(--sp-1); height: var(--sz-48); flex-shrink: 0; z-index: var(--z-raised); }
.dv-topbar-left, .dv-topbar-right { display: flex; align-items: center; gap: var(--sp-3); }
.dv-topbar-center { flex: 1; display: flex; align-items: center; justify-content: center; gap: var(--sp-3); }
/* Suche: löschbares Kern-Feld, das × liegt im Feld rechts */
.dv-search { position: relative; width: var(--sz-220); display: flex; align-items: center; }
.dv-search-input { width: 100%; }
.dv-search-reset { position: absolute; right: var(--sp-1); top: 50%; transform: translateY(-50%); }
.dv-search-reset[hidden] { display: none; }
/* Filter-Panel (Design::popover) klappt unter dem Filter-Knopf auf */
.dv-filter-wrap { position: relative; }
.dv-filter-dropdown { display: none; position: absolute; top: 100%; left: 0; margin-top: var(--sp-1); z-index: var(--z-nav); width: var(--sz-320); }
.dv-filter-dropdown.open { display: block; }
.dv-nav-info { min-width: var(--sz-40); text-align: center; }
.dv-tool-sep { height: var(--sz-24); margin: 0 var(--sp-1); }
.dv-tool-zoom-group, .dv-tool-file-group { display: inline-flex; align-items: center; gap: 0; }
.dv-tool-zoom-group[hidden], .dv-tool-annotate[hidden] { display: none; }

/* ── Hauptfläche: Bühne + Filmstreifen | rechte Spalte ── */
.dv-main { display: flex; flex: 1; min-height: 0; overflow: hidden; }
.dv-viewer-col { display: flex; flex-direction: column; flex: 1; min-width: 0; }

/* Bühne (Design::stage) */
.dv-viewer { flex: 1; display: flex; align-items: center; justify-content: center; overflow: auto; position: relative; min-width: 0; transition: opacity var(--dur); }
.dv-viewer.dv-loading { opacity: var(--op-dim); pointer-events: none; }
.dv-viewer img { max-width: 100%; max-height: 100%; object-fit: contain; transition: transform var(--dur); cursor: grab; }
.dv-viewer img.zoomed { cursor: zoom-out; }
.dv-viewer iframe { width: 100%; height: 100%; border: none; }
.dv-viewer .dv-text { max-width: 100%; max-height: 100%; margin: var(--sp-8); }
.dv-md-viewer { min-height: 100%; overflow-y: auto; width: 100%; }
/* Office-Vorschau: der Rahmen blendet ein, sobald geladen; bis dahin liegt der Ladezustand darüber */
.dv-office-frame { opacity: 0; transition: opacity var(--dur-slow); }
.dv-office-frame.loaded { opacity: 1; }
.dv-office-loading { position: absolute; inset: 0; z-index: var(--z-base); }
/* Einbettungsmodus (documents.viewer, 1.21.0): Rahmen ohne Einblend-JS, Code/CSV scrollen im Teil */
.dv-einbett-frame { display: block; width: 100%; height: 100%; min-height: var(--sz-320); border: none; }
/* Eingebettetes Bild (Einbettungsmodus, z. B. Arbeitsfläche des KI-Chats): passt sich der Breite des Gastgebers an statt in
   Naturgrösse herauszulaufen — die Regel .dv-viewer img gilt nur auf der eigenen Bühne. */
.dv-einbett-bild { display: block; max-width: 100%; height: auto; }
.dv-einbett-code { width: 100%; max-height: 100%; overflow: auto; }
/* CSV-Tabelle (Design::pane + Design::plainTable) füllt die Bühne */
.dv-csv-view { flex: 1; width: 100%; height: 100%; align-self: stretch; overflow: auto; box-sizing: border-box; padding: var(--sp-5); }

/* Filmstreifen (Design::pane edge top + Design::thumb) */
.dv-thumb-strip { height: var(--sz-80); min-height: var(--sz-80); display: flex; align-items: center; padding: 0 var(--sp-7); overflow: hidden; flex-shrink: 0; }
.dv-thumb-strip-inner { display: flex; gap: var(--sp-3); overflow-x: auto; scroll-behavior: smooth; padding: var(--sp-3) 0; scrollbar-width: thin; flex: 1; min-width: 0; }
.dv-thumb-expand-btn { flex-shrink: 0; margin-right: var(--sp-3); }
/* Ausgeklappt = Galerie über die ganze Bühne */
.dv-thumb-strip.expanded { height: auto; min-height: var(--sz-80); flex: 1; overflow: hidden; align-items: stretch; }
.dv-thumb-strip.expanded .dv-thumb-expand-btn { align-self: center; }
.dv-thumb-strip.expanded .dv-thumb-strip-inner { flex-wrap: wrap; overflow-x: hidden; overflow-y: auto; align-content: flex-start; padding: var(--sp-7) var(--sp-5); gap: 0; display: block; }
.dv-viewer-col.thumbs-expanded .dv-viewer { display: none; }
/* Galerie: Zeitgruppen (Design::divider) mit Karten-Raster (Design::mediaCard) */
.dv-gallery-group { margin-bottom: var(--sp-10); }
.dv-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-5); padding: 0 var(--sp-1); }

/* ── Rechte Spalte (Design::pane edge left + Design::stack divided) ── */
.dv-sidebar { width: var(--sz-320); flex-shrink: 0; overflow-y: auto; overflow-x: hidden; display: flex; flex-direction: column; }
/* Der Kern-Picker (Dokumenttyp/Tags) darf aus der schmalen Spalte heraus aufklappen. WIE er dort
   aufklappt (rechtsbündig, spaltenbreit), sagt sein eigenes Modul anhand von data-cc-sidepanel —
   hier steht nur noch, dass unsere Spalte ihn dann nicht abschneidet. `data-mpp-open` setzt der
   Picker selbst; vorher fragte diese Zeile seine INNERE Klasse ab (:has(.mpp-dropdown.open)). */
.dv-sidebar[data-mpp-open] { overflow: visible; }
.dv-sb-section { padding: var(--sp-7) var(--sp-8); }
.dv-sb-section:last-child { padding-bottom: var(--sp-9); }
.dv-sb-subtitle, .dv-file-meta { display: block; margin-top: var(--sp-1); word-break: break-word; }
.dv-sb-subtitle[hidden] { display: none; }
.dv-file-source { display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-2); }
.dv-sb-ref { margin-top: var(--sp-3); }
.dv-tags-wrap { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-2); }
/* „+ Tag" (Kern-Picker) in EIGENER Zeile unter den Chips → das Dropdown dockt am Trigger an */
.dv-addtag { flex-basis: 100%; margin-top: var(--sp-1); }
#dvNotesEditor { margin-top: var(--sp-2); }
/* Freigabe-Segmented füllt die Spaltenbreite (drei gleich breite Optionen) */
#dvVisibility { width: 100%; }
#dvVisibility .cc-seg-btn { flex: 1; }
/* Metadaten-Ansicht (ersetzt die Spalte vorübergehend) */
.dv-meta-panel { padding: var(--sp-6) var(--sp-8); display: flex; flex-direction: column; gap: var(--sp-5); align-items: flex-start; min-width: 0; overflow-wrap: anywhere; }
.dv-meta-panel .cs-sec { width: 100%; }

/* dokumente-annotate.css — Annotieren: NUR Lage/Grösse. Die Werkzeugleiste ist Design::floatbar mit
   Design::toolBtn / btn('ghost'), ihr Aussehen kommt aus dem Kern (layout/buttons). */

/* Zeichenfläche liegt genau über dem Bild der Lightbox: über der Lightbox (gleiche Ebene, später im DOM),
   aber UNTER dem Kern-Modal — sonst verdeckt sie den Bestätigen-Dialog und fängt dessen Klicks ab. */
.dv-annotate-canvas { position: fixed; z-index: var(--z-drawer); cursor: crosshair; touch-action: none; }
.dv-annotate-canvas.dv-annotate-erasing { cursor: cell; }

/* Werkzeugleiste oben mittig über allem */
.dv-annotate-toolbar { position: fixed; top: var(--sp-5); left: 50%; transform: translateX(-50%); z-index: var(--z-guide); }
.dv-annotate-tool-btn { width: var(--sz-36); height: var(--sz-36); }
/* Eigene Farbe: das Kern-Farbfeld sitzt unsichtbar im Regenbogen-Knopf (Klick darauf öffnet den Farbwähler) */
.dv-annotate-color-custom input[type="color"] { position: absolute; width: 0; opacity: 0; pointer-events: none; }

/* Drag & Drop — das AUSSEHEN des Ziehens. Die Lage (left/top) ist ein Laufzeitwert und bleibt im
   JS; alles andere ist Gestaltung und gehört in eine Klasse.

   Bis zum 15.09.2026 setzte dragdrop.js 'position:absolute' und 'cursor:move' als Inline-Stile.
   Bei einem Kern-JS-Besitzer ist ein Inline-WERT die übliche Ausnahme — diese beiden sind aber
   keine Werte, sondern Aussehen: im Design-Audit unsichtbar und von aussen nicht übersteuerbar. */
.cc-draggable { position: absolute; }
.cc-drag-handle { cursor: move; }
/* Während des Ziehens: keine Textauswahl auf der ganzen Seite (sonst markiert der Zeiger den Inhalt
   unter dem Element). Das JS setzt die Klasse am <body> und nimmt sie beim Loslassen wieder weg. */
body.cc-dragging { user-select: none; }

/* Emoji-Auswahl — Gruppen-Reiter oben, Suche, Raster darunter. */
.cc-emo-box { width: var(--sz-320); }
.cc-emo-tabs { display: flex; gap: var(--sp-1); flex-wrap: wrap; padding-bottom: var(--sp-2);
               border-bottom: 1px solid var(--border); margin-bottom: var(--sp-2); }
.cc-emo-tab { border: 0; background: transparent; cursor: pointer; padding: var(--sp-1) var(--sp-2);
              border-radius: var(--radius); font-size: var(--fs-md); line-height: 1; }
.cc-emo-tab:hover { background: var(--grey-100); }
.cc-emo-tab-active { background: var(--grey-200); }
.cc-emo-search { width: 100%; margin-bottom: var(--sp-2); }
.cc-emo-panes { max-height: var(--sz-240); overflow-y: auto; }
.cc-emo-grid { display: flex; flex-wrap: wrap; gap: var(--sp-1); }
.cc-emo { border: 0; background: transparent; cursor: pointer; font-size: var(--fs-lg);
          line-height: 1; padding: var(--sp-1); border-radius: var(--radius); }
.cc-emo:hover { background: var(--grey-100); }

/* Extensions-KB — nur, was die Kern-Bausteine nicht abdecken. */
.ex-main { min-width: 0; }
.ex-row { cursor: pointer; }

/* Dateien — nur Anordnung/Größe der Vorschau-Elemente. Farben, Rahmen und Flächen kommen aus den
   Kern-Bausteinen (Bühne, Code-Block, schlichte Tabelle). */
.fl-prev-img { max-width: 100%; max-height: var(--sz-500); object-fit: contain; display: block; margin: 0 auto; }
.fl-prev-frame { width: 100%; height: var(--sz-500); border: 0; display: block; }
.fl-jumps { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-top: var(--sp-3); }
.fl-actions { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-top: var(--sp-5); }

/* Git-Sektion im Projekt — Filterzeile über der Commit-Liste. */
.git-reload-cell { flex: 0 0 auto; }
.git-list { min-height: var(--sz-56); }

/* Adress-Vorschläge — schwebende Liste unter dem Strassenfeld. */
.ga-suggest { position: absolute; z-index: var(--z-popover); left: 0; right: 0; margin-top: var(--sp-1);
              background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
              box-shadow: var(--shadow-md); max-height: var(--sz-320); overflow-y: auto; }
.ga-row { padding: var(--sp-3) var(--sp-4); cursor: pointer; }
.ga-row:hover { background: var(--grey-100); }
.ga-main { display: block; color: var(--ink); }
.ga-sub  { display: block; color: var(--muted); font-size: var(--fs-sm); }

/* Felder — nur modul-eigene Anordnung, keine Optik. */

/* Fenster „Felder": die Inhaltsspalte darf schrumpfen, damit die breite Registry-Tabelle
   waagerecht in IHREM Rahmen rollt statt das ganze Fenster zu schieben. */
.lb-main { min-width: 0; }
.lb-row { cursor: pointer; }

/* Freifelder IM Datensatz (CRM-Sidebar-Tab) — Label+Eingabe links, das eine X rechts bündig.
   Die Zeile selbst kommt aus dem Kern (Design::listRow); hier nur die Breitenverteilung. */
.lbl-field-row .lbl-field-main { flex: 1 1 auto; min-width: 0; }
.lbl-field-row .lbl-field-main .mage-field { margin-bottom: 0; }
/* Geladenes Werte-Formular unter der Filterzeile: Luft zur Zeile darüber. */
.lb-values-form:not(:empty) { margin-top: var(--sp-7); }
/* Zeile im Datenblatt „Vorkommen" führt zum dortigen Feld. */
.lb-occ-row { cursor: pointer; }

/* Lightbox / Modal — 1:1 aus ERP mage-components.css (MageOverlay), zentriertes Overlay. */
.mage-overlay-backdrop {
    display: none; position: fixed; inset: 0;
    background: var(--scrim); z-index:var(--z-modal); opacity: 0; transition: opacity var(--dur);
}
.mage-overlay-backdrop.active { display: block; opacity: 1; }
/* Zentriert über inset + margin:auto, NICHT über transform: ein transform macht das Overlay zum containing
   block für position:fixed — Picker-Panels im Overlay stünden dann versetzt (gleiche Falle wie in der Sidebar).
   Standardgrösse „mittel" (820); die Grösse schaltet der Kopf-Umschalter (cc-ov-*, lightbox.js). */
.mage-overlay-panel {
    display: none; position: fixed; inset: 0; margin: auto; height: fit-content;
    background: var(--surface); border-radius:var(--radius); box-shadow:var(--shadow-md);
    z-index:var(--z-popover); max-height: 85vh; width: var(--ov-w-m); max-width: 96vw; overflow: hidden; flex-direction: column;
    opacity: 0; transition: opacity var(--dur);
}
.mage-overlay-panel.active { display: flex; opacity: 1; }
/* Grössen (Design::overlaySizes; gemerkt je Overlay-Art). Doppelte Klasse + Attribut = stärker als die
   Vorgaben einzelner Overlay-Arten (z.B. Code-Editor), unabhängig von der Ladereihenfolge. */
/* Die BREITEN kommen aus der Kern-Skala (--ov-w-*, core/Ui.php) — dieselbe, aus der sich auch das
   zweite Sidebar-Schubfach bedient. „Klein" heisst damit überall dasselbe. Die HÖHEN bleiben hier:
   ein zentriertes Panel hat eine, ein Schubfach nicht. */
.mage-overlay-panel[data-ov-kind].cc-ov-s { width: var(--ov-w-s); height: fit-content; max-height: 85vh; }
.mage-overlay-panel[data-ov-kind].cc-ov-m { width: var(--ov-w-m); height: fit-content; max-height: 85vh; }
.mage-overlay-panel[data-ov-kind].cc-ov-l { width: var(--ov-w-l); height: 85vh; max-height: 85vh; }
.mage-overlay-panel[data-ov-kind].cc-ov-full { width: var(--ov-w-full); height: 94vh; max-height: 94vh; }
/* DIE GRÖSSEN JEDER OVERLAY-ART STEHEN HIER (15.09.2026). Die Klassen .cc-ov-s/m/l/full gehören
   diesem Modul; wer sie benutzt, soll ihre Masse nicht selbst festlegen. Die Layer-2-Sidebar tat
   das mit vier eigenen Regeln in sidebar.css — dieselben Wörter, zweite Stelle, und beim nächsten
   Anfassen wären sie auseinandergelaufen (bis zum selben Tag hiess „klein" hier 440 px und dort
   40vw). data-ov-kind sagt, welche Art gemeint ist; die Breiten kommen aus der Kern-Skala. */
/* JEDE Layer-2-Art (lightbox 1.10.3): ein Layer 2 mit eigener Art (CC.sidebar.stack(…, {kind:
   'ticketing-portal'}), i18n-Quelle …) trägt data-ov-kind="<art>", nicht "layer2" — die Regel griff
   dann nicht, und die Grössen-Knöpfe im Kopf schalteten nur aria-pressed um. Die Art bestimmt, WELCHE
   Wahl gemerkt wird, nicht OB die Grösse wirkt. Angesprochen über den Kern-Vertrag data-cc-overlay
   (trägt jede Ebene über der Seite), nicht über die Klasse des sidebar-Moduls; drei Merkmale sind
   stärker als dessen Grundbreite (.mage-sidebar-panel.mage-sidebar-layer2), unabhängig von der
   Ladereihenfolge. Das zentrierte Modal setzt dieselben Breiten ohnehin selbst (oben). */
[data-ov-kind="layer2"].cc-ov-s, [data-cc-overlay][data-ov-kind].cc-ov-s { width: var(--ov-w-s); }
[data-ov-kind="layer2"].cc-ov-m, [data-cc-overlay][data-ov-kind].cc-ov-m { width: var(--ov-w-m); }
[data-ov-kind="layer2"].cc-ov-l, [data-cc-overlay][data-ov-kind].cc-ov-l { width: var(--ov-w-l); }
[data-ov-kind="layer2"].cc-ov-full, [data-cc-overlay][data-ov-kind].cc-ov-full { width: var(--ov-w-full); }

.cc-ov-sizes { display: inline-flex; align-items: center; gap: var(--sp-1); margin-left: auto; margin-right: var(--sp-3); }
/* Panel-Kopf = Panel-Kopf: dieselbe Fläche wie der Sidebar-Kopf und die Fenster-Leiste
   (--chrome). Sonst sähe derselbe Kopf je nach Panel-Art verschieden aus — genau das, was
   Florian am 13.09.2026 abgestellt haben wollte („alle sidebars haben EIN design, systemweit"). */
.mage-overlay-header {
    --muted: var(--grey-500);   /* wie Leiste und Sidebar-Kopf: auf --chrome eine Stufe kräftiger */
    display: flex; align-items: center; justify-content: space-between;
    padding:var(--sp-6) var(--sp-7); border-bottom: 1px solid var(--border);
    background: var(--chrome);
}
.mage-overlay-title { font-size:var(--fs-md); font-weight:var(--fw-bold); color: var(--ink); }
.mage-overlay-close {
    background: none; border: none; font-size:var(--fs-xl); color: var(--muted);
    cursor: pointer; width:var(--sz-28); height:var(--sz-28); display: flex;
    align-items: center; justify-content: center; border-radius:var(--radius);
}
.mage-overlay-close:hover { background: var(--grey-100); color: var(--grey-700); }
.mage-overlay-body { overflow-y: auto; flex: 1 1 auto; min-height: 0; padding:var(--sp-7); }
.mage-overlay-footer { padding:var(--sp-5) var(--sp-7); border-top: 1px solid var(--grey-100); display: flex; justify-content: flex-end; gap:var(--sp-3); }

/* Medien-Lightbox (Design::mediaLightbox) — dunkle Vollbild-Fläche für Bilder/Dokumente. Offen = cc-mlb-open. */
.cc-mlb { display: none; position: fixed; inset: 0; z-index: var(--z-drawer); background: color-mix(in srgb, var(--grey-900) 88%, transparent);
          align-items: center; justify-content: center; }
.cc-mlb.cc-mlb-open { display: flex; }
/* Solange die Grossansicht offen ist, scrollt die Arbeitsflaeche darunter nicht mit (CC.mlb setzt die
   Klasse). Lag bisher als body.dv-noscroll im documents-Modul — die Sperre gehoert zum Verhalten der
   Lightbox, nicht zu einem ihrer Verwender. Zwei Klassen schlagen die Grundregel body.cc-desktop. */
body.cc-mlb-lock { overflow: hidden; }
.cc-mlb-content { position: relative; max-width: 92vw; max-height: 90vh; display: flex; align-items: center; justify-content: center; }
.cc-mlb-content img { max-width: 92vw; max-height: 90vh; object-fit: contain; border-radius: var(--radius); box-shadow: var(--shadow-lg); }
.cc-mlb-content iframe { width: 90vw; height: 88vh; border: none; background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow-lg); }
.cc-mlb-close { position: fixed; top: var(--sp-7); right: var(--sp-8); z-index: var(--z-popover); }
.cc-mlb-actions { position: fixed; top: var(--sp-7); right: var(--sz-64); display: flex; gap: var(--sp-3); z-index: var(--z-popover); }
.cc-mlb-nav { position: fixed; top: 50%; transform: translateY(-50%); z-index: var(--z-popover); }
.cc-mlb-prev { left: var(--sp-8); }
.cc-mlb-next { right: var(--sp-8); }
.cc-mlb-title { position: fixed; bottom: var(--sp-7); left: 50%; transform: translateX(-50%); color: var(--surface); font-size: var(--fs-base);
                font-weight: var(--fw-bold); opacity: var(--op-soft); max-width: 60vw; text-align: center; white-space: nowrap; overflow: hidden;
                text-overflow: ellipsis; z-index: var(--z-popover); }

/* BETRIEBSART „nackt" (CC.mlb.bare): nur der Inhalt. Ein Verwender bedient die Flaeche gerade selbst
   — documents zeichnet darin und braucht Schliessen/Blaettern/Titel/Zusatzknoepfe voruebergehend weg.
   Vorher setzte das Fach-Modul hier von aussen style.display='none' an unseren Knoten. */
.cc-mlb-bare .cc-mlb-close,
.cc-mlb-bare .cc-mlb-actions,
.cc-mlb-bare .cc-mlb-nav,
.cc-mlb-bare .cc-mlb-title { display: none; }

/* Naberion — das GLOBALE Login, 1:1 zur Vorlage (Login-Designer, _t.html-Werte). Split-Card über dem
   Farbraben: links die Marke auf translucentem Navy→Schwarz-Verlauf, rechts das Formular als
   FROSTGLAS (weiss 20% — der Rabe scheint klar durch). Karte trägt EINEN Backdrop-Blur über beide
   Hälften. Alle Werte aus Kern-Tokens (core/Ui.php :root, --login-*). */

.cc-loginpage{
  position:fixed; inset:0; overflow:auto;
  display:grid; place-items:center; padding:var(--sp-9);
  background:
    radial-gradient(118% 88% at 50% 46%, transparent 38%, var(--login-vig) 100%),
    var(--grey-200) url("data:image/webp;base64,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") center right / cover no-repeat;
}

.cc-login-card{
  position:relative; z-index:var(--z-raised);
  width:min(var(--login-card-w),100%); min-height:var(--login-card-minh);
  display:grid; grid-template-columns:1fr 1fr;
  border-radius:var(--login-card-radius); overflow:hidden; box-shadow:var(--shadow-lg);
  backdrop-filter:blur(var(--login-card-blur)) saturate(1.3);
  -webkit-backdrop-filter:blur(var(--login-card-blur)) saturate(1.3);
}

/* ── Linke Karte: die Marke — translucenter Navy→Schwarz-Verlauf ─────────── */
.cc-login-left{
  position:relative; display:flex; flex-direction:column; justify-content:space-between;
  color:var(--surface);
  background:linear-gradient(var(--login-left-angle), var(--login-left-1), var(--login-left-2));
}
.cc-login-left-in{display:flex;flex-direction:column;justify-content:center;flex:1;padding:var(--login-pad)}
.cc-login-wordmark{
  font-family:var(--font-brand); font-weight:var(--fw-light); font-size:var(--login-title-size); line-height:1.02;
  letter-spacing:var(--login-title-track); text-transform:uppercase; color:var(--surface); margin-bottom:var(--sp-4);
}
.cc-login-claim{font-size:var(--login-claim-size);font-weight:var(--fw-normal);color:var(--surface);opacity:var(--op-strong);margin-bottom:var(--sp-9)}
.cc-login-lead{font-size:var(--login-text-size);font-weight:var(--fw-light);line-height:1.65;color:var(--surface);opacity:var(--op-strong);margin:0 0 var(--sp-7);max-width:36em}
.cc-login-info{
  margin-top:var(--sp-3); font-size:var(--login-small-size); line-height:1.5; color:var(--surface);
  background:var(--login-info-bg); border-radius:var(--login-card-radius); padding:var(--sp-6) var(--sp-7);
}
.cc-login-actions{
  display:flex; align-items:stretch;
  background:var(--login-foot);
}
.cc-login-act{
  flex:1; display:inline-flex; align-items:center; justify-content:center; gap:var(--sp-3);
  padding:var(--sp-5) var(--sp-3); font-size:var(--login-small-size); color:var(--surface); opacity:var(--op-strong);
  text-decoration:none; transition:background var(--dur-fast), opacity var(--dur-fast);
}
.cc-login-act:hover{opacity:1;background:var(--login-act-hover);text-decoration:none}

/* ── Rechte Karte: das Formular — Frostglas (weiss 20%, Rabe scheint durch) ── */
.cc-login-right{
  display:flex; flex-direction:column; gap:var(--login-right-gap); justify-content:center;
  padding:var(--login-right-pad); background:var(--login-right);
}
.cc-login-logo{display:flex;justify-content:center;margin:0 0 var(--sp-3)}
.cc-login-nmark{font-size:var(--fs-mark);color:var(--surface)}
.cc-login-nmark .cc-brand-n{fill:var(--surface)}

.cc-login-right label{font-size:var(--login-label-size);font-weight:var(--fw-normal);color:var(--surface);opacity:var(--op-strong)}
.cc-login-right input[type=email],
.cc-login-right input[type=password],
.cc-login-right input.cc-login-code{
  width:100%; height:var(--sz-36); border:1px solid var(--login-field-line); border-radius:var(--login-field-radius);
  background:var(--surface); color:var(--login-field-ink); padding:0 var(--sp-6); font-size:var(--sz-14);
}
.cc-login-right input::placeholder{color:var(--login-field-ink);opacity:var(--op-dim)}
.cc-login-right input:focus{outline:none;border-color:var(--o);box-shadow:var(--focus)}

.cc-login-right .cc-check{display:flex;align-items:center;gap:var(--sp-4);font-size:var(--login-check-size);color:var(--surface);opacity:var(--op-strong);cursor:pointer}
.cc-login-right .cc-check input{width:var(--sz-16);height:var(--sz-16);accent-color:var(--o)}

.cc-login-btn{width:100%;justify-content:center;height:var(--sz-36);border-radius:var(--login-field-radius);font-weight:var(--login-btn-weight);font-size:var(--login-btn-text)}
.cc-login-copy{margin-top:var(--sp-2);text-align:center;font-size:var(--login-small-size);color:var(--surface);opacity:var(--op-half)}
.cc-hidden{display:none}

@media(max-width:720px){
  .cc-login-card{grid-template-columns:1fr;width:min(var(--sz-440),100%)}
  .cc-login-right{padding:var(--sp-9) var(--sp-8)}
}

/* mail.css — E-Mail-Client (Farben/Radien/Abstände/Größen/Ebenen ausschließlich über Kern-Tokens,
   keine Schriftgrößen hier — die liefert das typo-Kernmodul). */

.mail-wrap { display:flex; flex-direction:column; height:100%; min-height:0; }
.mail-shell { display:flex; flex:1; min-height:0; }

/* ───── Mailbox-Sidebar (Kern-Rail .wn-sidebar, identisch zu CRM) ───── */
.mail-mbx { min-height:0; flex-direction:column; }
.mail-folders { flex:1; overflow-y:auto; padding:0; min-height:0; }
/* Statusleiste unten in der Rail (Outlook): Text + Fortschritt (Kern-Baustein), ruhig = „Bereit/Zuletzt …" */
.mail-status { flex:0 0 auto; margin-top:auto; padding:var(--sp-3) var(--sp-3) 0; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:var(--sp-2); }
.mail-status[data-idle="1"] { opacity:var(--op-half); }
.mail-status .cc-progress[hidden] { display:none; }
.mail-status-text { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* Verschachtelte IMAP-Ordner: je Ebene eingerückt */
.mail-folders .wn-item[data-depth="1"] { padding-left:var(--sp-8); }
.mail-folders .wn-item[data-depth="2"] { padding-left:var(--sp-10); }
.mail-folders .wn-item[data-depth="3"] { padding-left:var(--sp-12); }

/* ───── Hauptbereich: EINE Werkzeugzeile, darunter Liste | Trenner | Inhalt ───── */
.mail-main { flex:1; display:flex; flex-direction:column; min-width:0; min-height:0; }
.mail-toolbar { display:flex; align-items:center; gap:var(--sp-4); padding:var(--sp-3) var(--sp-4); border-bottom:1px solid var(--border); flex:0 0 auto; }
/* Suche rechts aussen, nimmt den freien Platz (lang), Controls links */
.mail-tb-search { margin-left:auto; flex:1 1 var(--sz-500); min-width:var(--sz-240); max-width:var(--sz-820); }
.mail-tb-search .mage-input, .mail-tb-search input { width:100%; }
/* Konto-/Ordnergruppen: klappbare Kern-Rail-Gruppen (Design::railGroup toggle/sub) — hier keine eigene Optik. */
.mail-tb-switch { display:inline-flex; align-items:center; gap:var(--sp-2); white-space:nowrap; }
.mail-tb-switch.mail-tb-off { opacity:var(--op-half); }
.mail-tb-lbl { display:inline-flex; align-items:center; gap:var(--sp-1); }
.mail-split { flex:1; display:flex; min-height:0; }

/* ───── Listen-Spalte ───── */
.mail-listcol {
  flex:0 0 var(--mail-list-w, var(--sz-380)); width:var(--mail-list-w, var(--sz-380));
  display:flex; flex-direction:column; min-height:0; border-right:1px solid var(--border);
}
.mail-list { flex:1; overflow-y:auto; min-height:0; }

/* Nachrichtenzeilen, Gruppenköpfe und Blätter-Leiste sind Kern-Bausteine (Design::entryRow/entryGroup/pager) —
   hier nur die Anordnung der Fuss-Leiste unter der Liste. */
.mail-list-foot { display:flex; align-items:center; justify-content:center; gap:var(--sp-2); padding:var(--sp-3); border-top:1px solid var(--border); }

/* Schnellbearbeitung an der Listenzeile — erscheint beim Zeigen, Aktionen rechtsbündig.
   Das Menü selbst ist am Viewport verankert (Kern: data-cc-menu-fixed) → nie abgeschnitten. */
.mail-item-quick { position:absolute; right:var(--sp-3); top:var(--sp-3); display:none; gap:var(--sp-1); }
/* Die Leiste bleibt sichtbar, solange IHR Menü offen ist — gefragt wird über den Zustands-Haken
   des Menü-Moduls (.cc-menu-open), gesetzt wird nur die EIGENE Klasse. Bis zum 15.09.2026 standen
   hier zwei Regeln, die das display des fremden Rahmens umschrieben. */
.mail-item:hover .mail-item-quick, .mail-item-quick:has(.cc-menu-open) { display:flex; }

/* ───── Lese-Pane ───── */
.mail-preview { flex:1; display:flex; flex-direction:column; min-width:0; min-height:0; overflow:hidden; }
.mail-empty { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--sp-4); }
.mail-busy { display:flex; align-items:center; gap:var(--sp-2); }
.mail-empty-ico { opacity:var(--op-half); }
.mail-preview-body { flex:1; display:flex; flex-direction:column; min-height:0; overflow-y:auto; }
.mail-pv-head { padding:var(--sp-6) var(--sp-8) var(--sp-4); border-bottom:1px solid var(--border); }
.mail-pv-subject { margin-bottom:var(--sp-3); }
.mail-pv-meta { display:flex; flex-wrap:wrap; gap:var(--sp-2) var(--sp-5); }
.mail-pv-actions { display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2); padding:var(--sp-4) var(--sp-8); border-bottom:1px solid var(--border); }
.mail-pv-atts { display:flex; flex-wrap:wrap; gap:var(--sp-2); padding:var(--sp-4) var(--sp-8); border-bottom:1px solid var(--border); }
.mail-pv-body { flex:1; min-height:0; }
.mail-pv-frame { width:100%; height:100%; border:0; }
.mail-remote-notice { margin:var(--sp-3) var(--sp-8); }

/* [hidden]-Guard: die display:flex-Regeln haben dieselbe Spezifität wie das native [hidden]. */
.mail-preview-body[hidden], .mail-empty[hidden], .mail-move-menu[hidden], .mail-set-form[hidden] { display:none; }

/* Flag-Schalter (Kern Design::swatchBtn) in der Aktionsleiste, Abruf-Knopf dreht während des Abrufs */
.mail-pv-flags { display:inline-flex; gap:var(--sp-2); align-items:center; margin-left:var(--sp-3); }
/* WÄHREND DES ABRUFS: gedämpft und unbedienbar — das DREHEN kommt vom Kern (.cc-spin, spinner).
   Bis zum 15.09.2026 stand hier ein zweiter Dreh-Effekt mit eigenem Keyframe und eigener Kurve,
   obwohl der Kreisel des Systems ausdrücklich „ein Spinner, ein Ort" ist. */
.mail-spin { opacity:var(--op-half); pointer-events:none; }

/* ───── CRM-Kontaktzeile in der Vorschau ───── */
.mail-pv-contact { display:flex; align-items:center; gap:var(--sp-2); margin-top:var(--sp-3); }

/* ───── Verschieben-Menü (server-gerendert, je Konto eine Gruppe) ───── */
/* Verschieben-Box = Kern Design::popover — hier nur Lage, Innenabstand und Spalten. */
.mail-move-menu { margin:var(--sp-3) var(--sp-8); padding:var(--sp-3) var(--sp-4); display:flex; flex-wrap:wrap; gap:var(--sp-4) var(--sp-8); }
.mail-move-group { display:flex; flex-direction:column; gap:var(--sp-1); min-width:var(--sz-160); }
.mail-move-group .txt-label { margin-bottom:var(--sp-1); }
.mail-move-row { justify-content:flex-start; text-align:left; }

/* ───── Teilen-Inhalt im Kern-Modal / Anlege-Zeilen der Einstellungen ───── */
.mail-share-list { display:flex; flex-direction:column; }

/* ───── Einstellungen (Sidebar; Feld-Layout kommt vom Kern forms.css) ───── */
.mail-set-list { display:flex; flex-direction:column; margin-bottom:var(--sp-3); }
.mail-set-form { margin-top:var(--sp-6); padding-top:var(--sp-6); border-top:1px solid var(--border); }
.mail-set-result { margin-top:var(--sp-3); display:flex; flex-direction:column; gap:var(--sp-2); }
.mail-set-add { margin-bottom:var(--sp-3); }
.mail-rule { display:flex; flex-direction:column; }
/* Regel-Baukasten: Bedingungs-/Aktionszeilen (Zeilen-Vorlagen vom Server) */
.mail-rows { display:flex; flex-direction:column; gap:var(--sp-3); margin-bottom:var(--sp-3); }
.mail-row-x { flex:0 0 auto; min-width:0; display:flex; align-items:flex-end; }
.mail-act-val[hidden], .mail-act-row .mpp-mount[hidden] { display:none; }
.mail-cond-row .cc-input-cell:not(.mail-row-x), .mail-act-row .cc-input-cell:not(.mail-row-x) { flex:1 1 var(--sz-140); min-width:var(--sz-120); }

/* ───── Verfassen (eigenes Fenster) — Aufbau wie im ERP: kompakte Kopfzeilen, Editor wächst mit, Anhänge unten ───── */
.mail-compose { display:flex; flex-direction:column; height:100%; width:100%; }
.mail-compose-body { flex:1; overflow:auto; min-height:0; display:flex; flex-direction:column; }
.mail-compose-head { display:flex; flex-direction:column; gap:var(--sp-2); padding:var(--sp-4) var(--sp-5); border-bottom:1px solid var(--border); flex:0 0 auto; }
.mail-compose .mail-crow { display:flex; align-items:center; gap:var(--sp-3); margin:0; }
.mail-compose .mail-crow[hidden] { display:none; }
/* Kompakte Kopfzeilen des Verfassens: nur die Spaltenbreite ist eigen — Schrift/Farbe des Labels bleiben Kern. */
.mail-compose .mail-crow > .mage-field-label { flex:0 0 var(--sz-72); min-width:0; margin:0; padding:0; }
.mail-compose .mail-crow > .mage-field-body { flex:1; min-width:0; max-width:none; }
.mail-crow-inner { display:flex; align-items:center; gap:var(--sp-2); }
.mail-crow-inner > .cc-input-cell:first-child, .mail-crow-inner > .cc-tokens { flex:1; min-width:0; }
.mail-crow-inner .cc-input-cell { padding:0; }
.mail-crow-small { flex:0 0 var(--sz-160); }
.mail-cc-toggle { white-space:nowrap; }
.mail-cc-toggle[hidden] { display:none; }
/* Editor ohne eigenen Scrollbereich: er wächst mit dem Inhalt, das Fenster scrollt — so bleibt das Zitat sichtbar. */
.mail-compose-editor { flex:1 0 auto; display:flex; flex-direction:column; }
/* Der rahmenlose, hoehenfuellende Editor ist seit dem 15.09.2026 eine VARIANTE des Bausteins
   (Design::wysiwyg ['fill' => true], Klasse .cc-wysiwyg-fill beim Besitzer). Hier standen drei
   Regeln auf seine Innereien — eine davon auf .cc-wys-toolbar, eine Klasse, die es nicht gibt. */
.mail-compose-attrow { flex:0 0 auto; padding:var(--sp-3) var(--sp-5); display:flex; flex-direction:column; gap:var(--sp-2); }
.mail-compose-atts { display:flex; flex-wrap:wrap; gap:var(--sp-2); }
.mail-compose-atts:empty { display:none; }
.mail-hidden-file { display:none; }
.mail-compose-flash { padding:0 var(--sp-5); }
.mail-compose-flash:empty { display:none; }
/* Fussleiste = Kern Design::footBar */
.mail-compose-foot { flex:0 0 auto; }
.mail-foot-spacer { flex:1; }
/* Zitat der Ursprungsnachricht: Kern-Optik des Editors (wysiwyg .cc-wys-area blockquote) */

/* Ziehbarer Trenner zwischen Liste und Inhalt = Kern Design::splitter (layout .cc-splitter) */

/* ───── responsiv ───── */
@media (max-width:900px) {
  .mail-tb-lbl { display:none; }
  .mail-listcol { width:var(--sz-280); flex-basis:var(--sz-280); }
}
@media (max-width:720px) {
  .mail-shell { flex-direction:column; }
  .mail-mbx { width:100%; flex-basis:auto; border-right:0; border-bottom:1px solid var(--border); }
  .mail-split { flex-direction:column; }
  .mail-listcol { width:100%; flex-basis:auto; border-right:0; border-bottom:1px solid var(--border); }
}

/* E-Mail-Templates — Tabelle/Datenblatt/Akkordeon/WYSIWYG/Buttons kommen aus ihren Kernmodulen.
   Hier bleibt NUR modul-eigene Anordnung: die Variablen-Knöpfe als umbrechende Reihe und der Abstand
   der Vorschau (Rahmen/Fläche der Vorschau = Kern-Baustein Design::htmlFrame). */
.mt-vars{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.mt-preview-frame{margin-top:var(--sp-5)}

/* Team-Gedächtnis — nur Anordnung; Aussehen kommt aus den Kern-Bausteinen (Zeilen: clickable-row). */
.me-main { min-width: 0; }   /* oberer Abstand kommt aus dem windownav-Kern */
.me-rail .wn-item span:first-of-type { overflow: hidden; text-overflow: ellipsis; }
/* Der Eintrag ist Fliesstext (Markdown), kein Code: volle Höhe. Den Zeilenumbruch macht seit
   heute der Kern-Baustein selbst (Design::codeBlock ['softwrap'=>true]) — hier bleibt nur die Höhe. */
.me-detail .cc-code { max-height: none; }
/* Das Eingabefeld des Eintrags darf wachsen: 18 Zeilen Notiz sind keine 140-px-Deckungsfläche. */
.me-detail .me-f-body .cc-code-stage { min-height: var(--sz-320); }

/* Modul-Verwalter — Tabelle/Buttons/Chips/Badges/Listen kommen aus Kernmodulen.
   Das Modul-Detail ist ein Kern-DATENBLATT (Design::sheet); hier bleibt NUR Modul-Kontext:
   Busy-Zustand einer Zeile, klickbare Namenszelle, die zweispaltige Dateiliste des Datenblatts. */
.mod-row-busy{opacity:var(--op-half);pointer-events:none}
.mod-open{cursor:pointer}

/* Monitoring — nur eigene .mo-*-Klassen für die Anordnung, ausschliesslich Kern-Tokens.
   Text-Rollen (fett/grau/mono), Farben, Schriftgrössen und Trennlinien kommen aus den Kern-Bausteinen. */

.mo-runner-note { margin-bottom: var(--sp-5); }
.mo-projects { display: flex; flex-wrap: wrap; gap: var(--sp-1); }

/* Anlege-Formulare unter den Listen (Skript/Regel/Zuweisung): Abstand zur Liste darüber. Felder und
   Knöpfe stehen in der Kern-Flucht (Label links, Feld rechts, Knopf bündig zur Feldspalte). */
.mo-rule-add, .mo-assign-add, .mo-script-add { margin-top: var(--sp-5); }

/* Zugewiesene Skripte: Schrittnummer und Name stehen auf EINER Linie (die Plakette sass oben links
   neben dem Namensblock statt bündig zum Text). Nur Anordnung — Plakette/Zeile kommen aus dem Kern. */
.mo-script > .cc-lrow-main { display: flex; align-items: center; gap: var(--sp-4); }
.mo-script > .cc-lrow-main > .badge-status { flex: 0 0 auto; }
.mo-script > .cc-lrow-main > .cc-ent { flex: 1 1 auto; min-width: 0; }

/* Stimmungsbarometer — nur, was die Kern-Bausteine nicht abdecken (Anordnung der Belege).
   Die Skala selbst kommt aus dem Kern (Design::gauge, feedback-Kernmodul): sie sieht hier genauso
   aus wie beim Kunden, im Projekt und im Ticketing; das Datenblatt ist Design::sheet. */
.md-main { min-width: 0; }
.md-row { cursor: pointer; }

/* Barometer-Zeile in fremden Sektionen (Kunde, Projekt): Skala, Tendenz und Stand nebeneinander. */
.md-inline { flex-wrap: wrap; margin-bottom: var(--sp-3); }

/* Belege: jede Zeile ein Kern-listRow (die Wertung trägt die Plakette); hier nur die Anordnung. */
.md-ex-list { display: flex; flex-direction: column; }
.md-ex-click { cursor: pointer; }

/* Notizen — frei bewegliche Post-its auf dem Desktop (nts-*). Zettelfläche, Griffleiste, Farbpunkte, Löschen und das
   randlose Textfeld zeichnet der Kern (Design::widget variant note, swatch ring, iconBtn ghost). Die Zettelfarbe ist ein
   DATENWERT je Notiz (Palette im Template, wie die Kategorie-Palette im Kalender): das JS setzt --nts-bg, der Kern liest
   sie als --cc-note-bg und dunkelt daraus die Griffleiste ab. Hier nur Grösse und Anordnung. */
.nts-postit { --cc-note-bg: var(--nts-bg); }
/* Eckenrundung: KEINE eigene — der Zettel trägt die Kern-Rolle .cc-widget (layout.css) mit var(--radius),
   also exakt denselben Radius wie das Navigations-Widget .cc-nw. Hier nichts überschreiben. */
/* Breite kommt vom Dashboard (Design::widget size=md) — dort gehoert sie hin. Was HIER bleibt, ist
   das, was nur einen Notizzettel betrifft: er darf mit der Maus gezogen werden und hat dabei eine
   Untergrenze. Vorher stand die Breite auf der Klasse des Gastgebers (.nts-postit.dash-widget). */
.nts-postit { min-width: var(--sz-200); min-height: var(--sz-160); resize: both; }
/* Farbpunkte erst beim Zeigen auf den Zettel. */
.nts-colors { display: inline-flex; gap: var(--sp-2); align-items: center; opacity: 0; transition: opacity var(--dur-fast) var(--ease); }
.nts-postit:hover .nts-colors, .nts-postit:focus-within .nts-colors { opacity: 1; }
.cc-deskwidgets .nts-postit textarea.nts-text { overflow: hidden; }
.nts-postit.nts-manual .nts-text { overflow: auto; }

/* Benachrichtigungen — Desktop-Widget (wie im ERP: dunkler Kopf, Reiter mit Zählern, Liste). Kopf und Reiterfläche
   tragen DIESELBEN Töne wie das Kalender-Widget (Kopf grey-900, Fläche grey-800) — zwei dunkle Widgets, ein Blau. */

/* Eckenrundung: KEINE eigene — die Kachel trägt die Kern-Rolle .cc-widget (layout.css) mit var(--radius),
   also exakt denselben Radius wie das Navigations-Widget .cc-nw. Hier nichts überschreiben. */
.nfw-widget[data-widget-id]{width:var(--sz-500);max-height:var(--sz-640);display:flex;flex-direction:column;background:var(--surface);color:var(--text)}
.nfw-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);background:var(--grey-900);border-bottom:1px solid var(--shadow-line);color:var(--surface);cursor:move;user-select:none}
.nfw-title{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--surface)}
.nfw-new{color:var(--grey-300);font-weight:var(--fw-med);font-size:var(--fs-sm)}
.nfw-actions{display:inline-flex;gap:var(--sp-1)}
.nfw-actions .ac-btn-action,.nfw-actions .mage-btn-icon{color:var(--grey-300);background:transparent;border-color:transparent}
.nfw-actions .ac-btn-action:hover,.nfw-actions .mage-btn-icon:hover{color:var(--surface);background:color-mix(in srgb,var(--surface) 15%,transparent)}
.nfw-body{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}
.nfw-widget.nfw-collapsed .nfw-body{display:none}
.nfw-flash{box-shadow:var(--focus)}

/* Reiter mit Zähler (data-count als Badge) */
/* border-radius:0 — die Reiterleiste ist hier KEIN schwebender Umschalter, sondern ein durchgehender Balken
   von Kante zu Kante. Der Radius der Kern-Gruppe .cc-seg (var(--radius)) riss an den Widget-Rändern helle
   Kerben in die dunkle Fläche; der Kopf darüber ist ebenfalls eckig. Nur die Knöpfe behalten ihren Radius. */
.nfw-tabs{display:flex;flex-shrink:0;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--grey-800);border-bottom:1px solid var(--grey-700);border-radius:0}
.nfw-tabs .cc-seg-btn{display:inline-flex;align-items:center;gap:var(--sp-2);background:var(--grey-700);color:var(--surface);border-color:var(--grey-600)}
.nfw-tabs .cc-seg-btn:hover{background:var(--grey-600)}
.nfw-tabs .cc-seg-btn.cc-seg-active{background:var(--surface);color:var(--ink);border-color:var(--surface)}
.nfw-tabs .cc-seg-btn::after{content:attr(data-count);display:inline-block;min-width:var(--sz-18);padding:0 var(--sp-2);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 20%,transparent);color:var(--surface);font-size:var(--fs-2xs);font-weight:var(--fw-heavy);text-align:center;line-height:var(--sz-18)}
.nfw-tabs .cc-seg-btn.cc-seg-active::after{background:var(--grey-200);color:var(--ink)}
.nfw-tabs .cc-seg-btn .bi{font-size:var(--fs-sm)}
/* KEINE Farben je fremdem Modul mehr: welcher Ton zu 'mail', 'ticket' oder 'monitoring' gehört, ist
   eine Entscheidung dieser Module — hier standen sie als feste Liste und galten weiter, wenn das
   Modul längst abgeschaltet war. Symbol und Name eines Reiters kommen jetzt aus der Registry. */

/* Liste */
.nfw-list{flex:1 1 auto;overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);background:var(--grey-50)}
.nfw-item{display:flex;gap:var(--sp-3);padding:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-left:3px solid transparent;border-radius:var(--radius);cursor:pointer}
.nfw-item:hover{border-color:var(--grey-300)}
.nfw-item.nfw-unread{border-left-color:var(--o);background:color-mix(in srgb,var(--warn-bg) 40%,var(--surface))}
.nfw-ava{flex:0 0 auto;width:var(--sz-40);height:var(--sz-40);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--surface);font-weight:var(--fw-heavy);font-size:var(--fs-sm)}
.nfw-main{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0;flex:1}
.nfw-row1{display:flex;align-items:center;gap:var(--sp-2);min-width:0}
.nfw-sender{font-weight:var(--fw-bold);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nfw-cat{font-size:var(--fs-2xs);font-weight:var(--fw-heavy);letter-spacing:var(--tracking);padding:var(--sp-0) var(--sp-2);border-radius:var(--radius);background:var(--grey-100);color:var(--grey-700)}
/* Zeilen, deren Herkunft nicht mehr läuft: gedämpft und ohne Sprung — die Meldung bleibt lesbar,
   verspricht aber kein Fenster mehr, das es nicht gibt. */
.nfw-item.nfw-dead{cursor:default;opacity:var(--op-muted)}
.nfw-item.nfw-dead:hover{border-color:var(--border)}
.nfw-time{margin-left:auto;color:var(--muted);font-size:var(--fs-xs);white-space:nowrap}
.nfw-subject{font-weight:var(--fw-bold);color:var(--ink);font-size:var(--fs-base)}
.nfw-text{color:var(--text);font-size:var(--fs-sm);white-space:pre-line;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.nfw-empty{color:var(--muted);font-size:var(--fs-md);padding:var(--sp-6);text-align:center}

/* ── Schematische Miniatur fürs Widget-Auswahl-Kachel (Fragment WidgetPick, Punkt 'dashboard.picker') ──
   Rein dekorativ (aria-hidden): dunkle Kopfzeile mit Glocke und Zähler, darunter Meldungszeilen — erkennbar
   als Benachrichtigungen. Füllt die Vorschaufläche der Kachel (dashboard: .cc-pick-tile .cc-tile-img).
   Eigene nfw-*-Chrome (Modul-Namensraum). */
.nfw-pick{display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;background:var(--surface)}
.nfw-pick-head{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);background:var(--ink);flex:0 0 auto}
.nfw-pick-bell{width:var(--sz-10);height:var(--sz-10);border-radius:50% 50% 40% 40%;background:var(--surface);opacity:var(--op-strong)}
.nfw-pick-count{margin-left:auto;width:var(--sz-12);height:calc(var(--sz-10) * 0.5);border-radius:var(--radius-pill);background:var(--o)}
.nfw-pick-rows{flex:1;display:flex;flex-direction:column;justify-content:center;gap:var(--sp-2);padding:var(--sp-2)}
.nfw-pick-row{display:flex;align-items:center;gap:var(--sp-2)}
.nfw-pick-mark{flex:0 0 auto;width:calc(var(--sz-10) * 0.7);height:calc(var(--sz-10) * 0.7);border-radius:50%;background:var(--o);opacity:var(--op-strong)}
.nfw-pick-line{flex:1;height:calc(var(--sz-10) * 0.5);border-radius:var(--radius-pill);background:var(--surface-2)}

/* Passwörter — nur Anordnung; Aussehen kommt aus den Kern-Bausteinen. */
.pw-main { min-width: 0; }   /* oberer Abstand kommt aus dem windownav-Kern */

/* Eingabe + Knöpfe in EINER Zeile (Benutzername kopieren, Passwort anzeigen/erzeugen):
   das Feld nimmt den Platz, die Knöpfe bleiben daneben statt darunter zu rutschen. */
.pw-inline { display: flex; align-items: center; gap: var(--sp-2); }
.pw-inline > .form-control { flex: 1 1 auto; min-width: 0; }

.pw-share-row strong, .pw-log-row strong { margin-right: var(--sp-2); }
.pw-shares { display: flex; flex-direction: column; gap: var(--sp-1); }

/* Unsichtbares Hilfsfeld für den Zwischenablage-Rückfall (Browser ohne Clipboard-Recht). */
.pw-clip { position: fixed; top: 0; left: 0; width: var(--sp-1); height: var(--sp-1); opacity: 0; pointer-events: none; }

/* Anbindung ans Mailfenster: Schaltfläche in der Leseleiste und beim Verfassen. */
.pw-compose-act { margin-right: auto; }

/* Öffentliche Freigabe-Seite (ohne Desktop): schmale, mittige Spalte mit Marke — statt randlos über die volle Breite. */
.pw-pub { max-width: var(--sz-640); margin: var(--sp-10) auto; padding: 0 var(--sp-7); }
.pw-pub-logo { display: flex; justify-content: center; margin-bottom: var(--sp-8); }

/* Zugangszeile: Beschriftung links (feste, schmale Spalte, linksbündig) und Wert rechts auf
   DERSELBEN Grundlinie — nicht das rechtsbündige Backend-Raster. Lange Werte brechen um,
   statt die Spalte zu sprengen. Dünne Trennlinie wie in Listen des Kerns. */
.pw-pub-row { display: flex; align-items: baseline; gap: var(--sp-5);
    padding: var(--sp-3) 0; border-bottom: 1px solid var(--line, var(--border)); }
.pw-pub-row:last-of-type { border-bottom: 0; }
.pw-pub-k { flex: 0 0 var(--sz-140); color: var(--muted); font-weight: var(--fw-med); }
.pw-pub-v { flex: 1 1 auto; min-width: 0; font-family: var(--mono);
    word-break: break-word; user-select: all; }
.pw-pub-leer { color: var(--muted); font-family: inherit; font-style: italic; user-select: none; }

/* Schmal (Mail-Vorschau, Telefon): Beschriftung über den Wert. */
@media (max-width: 30rem) {
    .pw-pub-row { flex-direction: column; gap: var(--sp-1); align-items: stretch; }
    .pw-pub-k { flex-basis: auto; }
}

/* mage-picker-plus.css — MagePickerPlus inline dropdown selection with add/search */

/* =============================================
   MagePickerPlus - Inline Dropdown
   ============================================= */

/* Wrapper: positioning context for trigger + dropdown */
.mpp-wrap {
    position: relative;
    display: inline-block;
    width: 100%;
}

/* VARIANTEN, die der BEHÄLTER anfordert (data-mpp-variant an einem Vorfahren, siehe
   MagePickerPlus.js): 'block' füllt die Zeile aus, 'auto' ist so breit wie sein Inhalt.
   Bis zum 15.09.2026 erzwang das Ticketing genau diese zwei Formen mit vier Regeln auf
   .mpp-wrap/.mpp-trigger in SEINEM CSS — Klassen, die es nicht besitzt. */
.mpp-wrap.mpp-wrap-auto { width: auto; }
.mpp-wrap.mpp-wrap-block { width: 100%; min-width: 0; }
.mpp-wrap.mpp-wrap-block .mpp-trigger { width: 100%; min-width: 0; box-sizing: border-box; }

/* Dropdown panel: appears below trigger.
   DIE FLÄCHE kommt seit dem 15.09.2026 vom Kern-Baustein (.cc-popover .cc-popover-flush, Eigentümer
   menu): Hintergrund, Rahmen, Rundung und Schatten stehen dort EINMAL. Hier bleibt, was dieses
   Panel ausmacht: wo es liegt, wie breit es wird, wie es überläuft. */
.mpp-dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: auto;
    min-width: 100%;
    /* Nie breiter als der Viewport, mit kleinem Sicherheitsabstand */
    max-width: calc(100vw - 32px);
    box-sizing: border-box;
    z-index:var(--z-popover);
    margin-top:var(--sp-0);
    max-height:var(--sz-320);
    flex-direction: column;
    overflow: hidden;
    white-space: nowrap;
}
.mpp-dropdown.open { display: flex; }

/* SCHMALE FLÄCHE (Kern-Vertrag data-cc-sidepanel: Sidebar-Rumpf, Dokumente-Spalte, …): dort läuft ein
   linksbündiges Auswahlfeld aus der Spalte heraus. Es klappt deshalb rechtsbündig auf und bleibt so
   breit wie die Fläche. Bis zum 15.09.2026 stellte ein Fach-Modul unsere Klasse dafür von aussen um
   (right:0, left:auto, eigene Höchstbreite) — fremdes CSS auf unserem Markup, das ein Umbenennen
   hier still zerbrochen hätte. */
[data-cc-sidepanel] .mpp-dropdown { right: 0; left: auto; max-width: 100%; }

/* Flip: dropdown opens upward when near bottom */
.mpp-dropdown.mpp-flip {
    top: auto;
    bottom: 100%;
    margin-top: 0;
    margin-bottom:var(--sp-0);
}

/* Add row (new value input + button) */
.mpp-add-row {
    display: flex;
    align-items: center;   /* + -Button vertikal mittig zum Eingabefeld (war top-aligned → wirkte verrutscht) */
    gap:var(--sp-3);
    padding:var(--sp-3) var(--sp-4);
    border-bottom: 1px solid var(--grey-200);
    flex-shrink: 0;
}
.mpp-add-input {
    flex: 1;
    padding:var(--sp-2) var(--sp-4);
    border: 1px solid var(--grey-200);
    border-radius:var(--radius);
    font-size:var(--fs-base);
    color: var(--grey-700);
    outline:none;box-shadow:var(--focus);
}
.mpp-add-input:focus { border-color: var(--info); }
.mpp-add-input::placeholder { color: var(--muted); font-style: italic; }
/* Kompaktes oranges Plus-Icon (kein breiter Textbutton — schoss sonst rechts über das Dropdown hinaus) */
.mpp-add-btn {
    background: var(--o);
    border: none;
    color: var(--surface);
    width: var(--sz-32);
    height: var(--sz-32);
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-lg);
    line-height: 1;
    cursor: pointer;
    border-radius: var(--radius);
}
.mpp-add-btn:hover { background: var(--o-h); }

/* Search input */
.mpp-search {
    padding:var(--sp-3) var(--sp-4);
    border-bottom: 1px solid var(--grey-200);
    flex-shrink: 0;
}
.mpp-search input {
    width: 100%;
    padding:var(--sp-2) var(--sp-4);
    border: 1px solid var(--grey-200);
    border-radius:var(--radius);
    font-size:var(--fs-base);
    color: var(--grey-700);
    outline:none;box-shadow:var(--focus);
    box-sizing: border-box;
}
.mpp-search input:focus { border-color: var(--info); }
.mpp-search input::placeholder { color: var(--muted); font-style: italic; }

/* Scrollable body */
.mpp-body {
    flex: 1;
    overflow-y: auto;
    min-height:var(--sz-56);
}

/* Table list */
.mpp-table {
    width: 100%;
    border-collapse: collapse;
    font-size:var(--fs-base);
}
.mpp-table tbody td {
    padding:var(--sp-3) var(--sp-4);
    border-bottom: 1px solid var(--grey-100);
    color: var(--grey-800);
}
.mpp-table tbody tr {
    cursor: pointer;
    transition: background var(--dur-fast);
}
/* ZEIGEN und AUSGEWÄHLT sind zwei verschiedene Zustände und müssen verschieden aussehen. Vorher trugen
   beide dieselbe blaue Fläche (--info-bg): in der Mehrfachauswahl wirkte damit jede Zeile dauerhaft
   „blau hinterlegt", Zeigen änderte nichts und eine angeklickte Zeile war nicht zu erkennen
   (Florian 12.09.2026). Jetzt: Zeigen = neutraler Grauton, Ausgewählt = Markenfarbe mit Kante links
   und fetter Schrift, Zeigen auf einer ausgewählten Zeile etwas kräftiger. */
.mpp-table tbody tr:hover { background: var(--grey-100) !important; }
/* Kante als echter Rahmen an der ersten Zelle — ein eigener box-shadow fällt im Design-Audit
   (css-shadow: nur die Kern-Skala var(--shadow-*)), und die Kern-Skala hat keinen Kantenschatten. */
.mpp-table tbody tr.mpp-selected { background: color-mix(in srgb, var(--o) 10%, transparent) !important; }
.mpp-table tbody tr.mpp-selected td:first-child { border-left: 3px solid var(--o); }
.mpp-table tbody tr.mpp-selected td { color: var(--ink); font-weight: var(--fw-bold); }
.mpp-table tbody tr.mpp-selected:hover { background: color-mix(in srgb, var(--o) 18%, transparent) !important; }

/* GESPERRTE ZEILE (item.disabled, picker 1.13.0): sichtbar und durchsuchbar, aber nicht wählbar.
   Gedämpft über den Token --op-muted, Zeiger not-allowed; das Zeigen bleibt der neutrale Grauton
   von oben — eine Auswahl-Hervorhebung gibt es nicht, weil es keine Auswahl gibt. Der Hinweis des
   Lieferanten (disabled_hint) steht klein darunter. */
.mpp-table tbody tr.mpp-row-off { cursor: not-allowed; }
.mpp-table tbody tr.mpp-row-off > td { opacity: var(--op-muted); }
.mpp-row-hint { font-size: var(--fs-xs); color: var(--muted); line-height: 1.4; margin-top: var(--sp-1); white-space: normal; }

.mpp-value-cell { flex: 1; }

/* Subtitle column (optional second cell) */
.mpp-table tbody td.mpp-subtitle {
    color: var(--grey-500);
    font-size:var(--fs-sm);
    text-align: right;
    white-space: nowrap;
    max-width:var(--sz-140);
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Inline badge (colored label next to label text) */
.mpp-inline-badge {
    display: inline-block; font-size:var(--fs-2xs); font-weight:var(--fw-bold);
    padding:var(--sp-0) var(--sp-2); border-radius:var(--radius); line-height: 1.6;
    color: var(--surface); margin-left:var(--sp-3); vertical-align: middle;
}

/* HINTEN angestelltes Label (item.badge — z.B. Freifeld-/Lookup-Verknüpfung): rechtsbündige
   schmale letzte Zelle; neutraler Grundton, eine Datenfarbe (badge_color) überschreibt ihn. */
.mpp-tail-cell { text-align: right; white-space: nowrap; width: 1%; }
.mpp-tail-cell .mpp-inline-badge { background: var(--muted); }

/* Stacked layout: subtitle below label in same cell */
.mpp-subtitle-stacked {
    font-size:var(--fs-sm);
    color: var(--grey-500);
    margin-top:var(--sp-0);
    line-height: 1.3;
}
.mpp-subtitle-stacked .badge-type { margin-right:var(--sp-1); }
.mpp-script-desc {
    font-size:var(--fs-xs); color: var(--muted); line-height: 1.4;
    margin-bottom:var(--sp-1);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden;
}
.mpp-script-badges { display: flex; flex-wrap: wrap; gap:var(--sp-1); }

/* Empty state */
.mpp-empty {
    padding:var(--sp-8) var(--sp-6);
    text-align: center;
    color: var(--muted);
    font-size:var(--fs-base);
}

/* Footer with count */
.mpp-footer {
    padding:var(--sp-2) var(--sp-4);
    border-top: 1px solid var(--grey-200);
    font-size:var(--fs-sm);
    color: var(--grey-500);
    text-align: right;
    flex-shrink: 0;
}

/* MagePickerPlus Trigger (in modals/forms)
   Border, border-radius, padding, font-size, color, background → forms.css (global)
*/
.mpp-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    width: 100%;
    box-sizing: border-box;
    gap:var(--sp-3);
    user-select: none;
}
/* hover → forms.css (global) */
.mpp-trigger .mpp-trigger-text {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mpp-trigger .mpp-trigger-arrow {
    font-size:var(--fs-2xs);
    color: var(--grey-600);
    flex-shrink: 0;
}

/* =============================================
   Gelieferte Zeile — item.row_html (Aufrufer)
   =============================================
   Der Picker gibt der fertigen Zeile NUR die Zelle. Ihr Aussehen kommt aus den Kern-Bausteinen,
   mit denen der Aufrufer sie server-seitig gebaut hat (Design::entityCell, avatar, chip …) —
   deshalb steht hier weder Avatar- noch Plaketten- noch Fach-CSS. */
.mpp-dropdown.mpp-rich { min-width:var(--sz-380); }
.mpp-row-cell { vertical-align: middle; }   /* Polster kommt aus '.mpp-table tbody td' — eine Quelle */


/* Trigger sieht aus wie ein Formfeld (aus forms.css hierher geholt: das Design der Komponente
   gehört dem Kernmodul, das sie liefert — sonst stylen mehrere Module dieselbe Klasse). */
/* MagePickerPlus Trigger — sieht aus wie ein Formfeld */
.mpp-trigger {
    border: 1px solid var(--grey-200) !important;
    border-radius:var(--radius) !important;
    padding:var(--sp-3) var(--sp-4) !important;
    font-size:var(--fs-md) !important;
    color: var(--grey-800) !important;
    background: var(--surface) !important;
}
.mpp-trigger:hover {
    border-color: var(--muted) !important;
}
/* GESPERRTER AUSLÖSER (gesperrtes <select> über fromSelect): öffnet nicht, gedämpft wie die Zeile. */
.mpp-trigger.mpp-trigger-off { cursor: not-allowed; opacity: var(--op-muted); }

/* VARIANTE „nackt" (.mpp-trigger-bare): der Auslöser sitzt IN einem fremden Eingabefeld und soll
   darin verschwinden — kein eigener Rahmen, kein eigener Grund, nur der Text und der Pfeil. Die
   Regeln standen bis zum 15.09.2026 im combo-Modul und überschrieben von dort mit acht !important
   das Design dieser Komponente. Jetzt gehört die Variante dem, dem die Komponente gehört; combo
   setzt nur noch die Klasse. Die !important bleiben — sie schlagen die Formfeld-Optik oben, die
   selbst welche trägt. */
.mpp-trigger.mpp-trigger-bare {
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 var(--sp-5) !important;
    font-size: var(--fs-base) !important;
    font-weight: var(--fw-med) !important;
    color: var(--grey-600) !important;
    background: transparent !important;
    gap: var(--sp-1);
    white-space: nowrap;
    min-width: auto;
    width: auto !important;
    transition: background var(--dur-fast);
}
.mpp-trigger.mpp-trigger-bare:hover { background: var(--grey-100) !important; }
.mpp-trigger.mpp-trigger-bare .mpp-trigger-arrow { font-size: var(--fs-2xs); color: var(--muted); }
.mpp-trigger.mpp-trigger-bare .mpp-trigger-text { font-size: var(--fs-base); }

/* Plesk — nur eigene .pk-*-Klassen, ausschliesslich Kern-Tokens. */
/* Ladezeile = Kern (Design::loading inline); .pk-lazy-load bleibt nur der JS-Haken. */
.pk-head { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; margin-bottom: var(--sp-5); }
.pk-foot { display: flex; align-items: center; justify-content: flex-end; gap: var(--sp-4); margin-top: var(--sp-5); }

/* ===== Projekte — nur eigene .pj-*-Klassen, ausschliesslich Kern-Tokens, NUR Anordnung
   (Farben/Schriften/Radien liefern die Kern-Bausteine: sheet, muted, chip, listRow, iconBtn …) ===== */

/* URLs TABELLARISCH: Bezeichnung links in fester Spalte (nie zweizeilig), Adresse daneben und bei
   Überlänge mit … gekürzt. */
/* Die feste Breite der Bezeichnung ist seit dem 15.09.2026 eine VARIANTE des Bausteins
   (Design::badge(..., ['fixed' => true]) → .badge-fixed, gestylt bei badges). Hier standen drei
   Regeln auf .badge-status — eine Klasse, die diesem Modul nicht gehört. */
.pj-url-link { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Alarmierung (die Betreuer zeigt das CRM selbst — eigenes Fragment, eigene Bausteine) */
.pj-care-name { flex: 1; }
/* Alarmierungs-Tabelle: Zeilen ohne Klick-Optik (nichts zu öffnen), X rechts aussen bündig. */
.pj-alert-table td { vertical-align: middle; }
.pj-alert-table .pj-care-name { margin-left: var(--sp-2); }
.pj-monpick { min-width: 0; }

/* CRM-Kontakt-Sektion: kompakte Projekt-Liste (Zeilen = Kern-Baustein listRow) */
.pj-contact-projects { display: flex; flex-direction: column; gap: var(--sp-1); }

/* Qontour — nur Anordnung; Optik kommt aus den Kern-Bausteinen. */
.qo-wrap { min-width: 0; }
.qo-main { min-width: 0; }   /* Abstand zum Fensterrand wie im CRM */
.qo-rail .wn-item span:first-of-type { overflow: hidden; text-overflow: ellipsis; }
.qo-period { margin-bottom: var(--sp-4); }
.qo-heatmap { width: 100%; }
.qo-canvas { width: 100%; height: auto; display: block; }
/* Scrolltiefe-Zeile: feste Beschriftungsspalte, der Balken füllt den Rest */
.qo-scroll .txt-label { min-width: var(--sz-48); }
.qo-scroll .cc-progress { flex: 1; }
.qo-scroll .txt-muted { min-width: var(--sz-40); text-align: right; }

/* QR-Code (Baustein Core\Design::qr → Module\Qrcode\Qr::path).
   EINE Quelle für das Aussehen eines Codes: immer dunkle Module auf hellem Grund — auch im
   Dunkelmodus, denn ein Scanner braucht den festen Kontrast, nicht das Seitenthema. Darum eine
   EIGENE kleine Palette dieses Design-Providers (nicht die Themen-Tokens): die Ruhezone (heller
   Rand) steckt bereits in der viewBox. Farben als Klassen — keine Inline-Stile im SVG. */
:root{
  --qrcode-paper:#ffffff;       /* heller Grund inkl. Ruhezone — fest, damit jede App scannt */
  --qrcode-ink:#000000;         /* die dunklen Module */
}
.cc-qr{
  display:block;
  width:100%;
  max-width:var(--sz-200);
  height:auto;
  margin-inline:auto;           /* zentriert sich in jedem Behälter, ohne dass der Aufrufer stylt */
}
.cc-qr-bg{ fill:var(--qrcode-paper); }
.cc-qr-fg{ fill:var(--qrcode-ink); }

/* Suche — die Treffer der Seite sind Kern-Bausteine (listRow/chip/strong/mono, emptyState); hier nur
   die Anordnung. Das eigene Vollbild-Overlay (srch-ov-*, search ist JS_MARKUP_OWNER) steht darunter.

   WARUM DIESE ÜBERLAGERUNG EIGEN IST UND KEIN LIGHTBOX-PANEL (entschieden 15.09.2026): sie ist keine
   Variante des zentrierten Panels, sondern eine eigene FLÄCHE — dunkles Navy über dem unscharfen
   Desktop, Suchbalken oben, darunter ein Raster aus Modul-Kacheln. Sie ist im Manifest als Eigentum
   dieses Moduls deklariert (ui_contract.dictates) und kein Nachbau eines geteilten Bausteins. Was
   NICHT eigen sein durfte, war der Schliessen-Knopf: der kommt seit heute aus dem buttons-Kernmodul
   (.ac-btn-glass-round), wie in der Lightbox auch. */
.srch-input{width:100%}
.srch-results{margin-top:var(--sp-6);display:flex;flex-direction:column}
.srch-row{cursor:pointer}

/* ── Vollbild-Overlay (wie im alten ERP): dunkles Navy über dem unscharfen Desktop, Suchbalken oben,
   darunter ein Raster aus Modul-Kacheln. Farben aus Kern-Tokens gemischt (Navy = Blau in Grau-900). ── */
body.srch-ov-lock{overflow:hidden}
.srch-ov{--srch-navy:color-mix(in srgb, var(--info) 22%, var(--grey-900));--srch-line:color-mix(in srgb, var(--surface) 10%, transparent);
  position:fixed;inset:0;z-index:var(--z-overlay);display:none;flex-direction:column;align-items:center;
  background:color-mix(in srgb, var(--srch-navy) 88%, transparent);backdrop-filter:blur(8px);padding:var(--sp-10) var(--sp-9) var(--sp-9)}
.srch-ov.srch-ov-on{display:flex}
/* Nur noch die LAGE. Aussehen und Zeigen-Verhalten des Knopfes kommen vom buttons-Kernmodul
   (.ac-btn-glass-round — die Variante für einen Icon-Knopf auf dunklem Vollbild-Grund, dieselbe wie
   in der Lightbox). Hier stand bis zum 15.09.2026 ein vollständig eigener runder × samt Farbe, Rand
   und Hover: derselbe Knopf, an zwei Orten zweimal gebaut. */
.srch-ov-x{position:absolute;top:var(--sp-7);right:var(--sp-7)}
.srch-ov-inner{width:100%;max-width:92vw;display:flex;flex-direction:column;align-items:center;gap:var(--sp-5);min-height:0;flex:1 1 auto}

/* Suchbalken: dunkle Leiste, weisses Feld, Lupe davor. */
.srch-ov-bar{width:100%;max-width:var(--sz-640);display:flex;align-items:center;gap:var(--sp-5);padding:var(--sp-5) var(--sp-6);
  background:var(--grey-800);border:1px solid var(--srch-line);border-radius:var(--radius);box-shadow:var(--shadow-lg)}
.srch-ov-bico{color:var(--grey-300);font-size:var(--fs-lg)}
.srch-ov-bar > :not(.srch-ov-bico){flex:1 1 auto;min-width:0;margin:0}
.srch-ov-input{width:100%}
.srch-ov-meta{font-size:var(--fs-sm);color:var(--grey-300)}

/* Raster der Modul-Kacheln. */
.srch-ov-grid{width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--sz-320),1fr));gap:var(--sp-6);overflow-y:auto;align-content:start;padding-bottom:var(--sp-9)}
.srch-ov-block{background:color-mix(in srgb, var(--grey-800) 88%, transparent);border:1px solid var(--srch-line);border-radius:var(--radius);height:max-content;overflow:hidden}
.srch-ov-bh{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-6) var(--sp-3)}
.srch-ov-bi-ico{color:var(--grey-400);font-size:var(--fs-sm)}
.srch-ov-bt{flex:1 1 auto;font-size:var(--fs-sm);font-weight:var(--fw-heavy);text-transform:uppercase;letter-spacing:var(--tracking);color:var(--grey-100);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srch-ov-bc{font-size:var(--fs-2xs);font-weight:var(--fw-heavy);color:var(--grey-100);background:color-mix(in srgb, var(--surface) 14%, transparent);padding:var(--sp-0) var(--sp-3);border-radius:var(--radius)}
.srch-ov-more{border:0;background:none;color:var(--grey-400);cursor:pointer;padding:var(--sp-1);border-radius:var(--radius);line-height:1;transition:color var(--dur-fast),background var(--dur-fast),transform var(--dur)}
.srch-ov-more:hover{color:var(--surface);background:color-mix(in srgb, var(--surface) 10%, transparent)}
.srch-ov-open .srch-ov-more{transform:rotate(180deg)}

/* Treffer: Icon, Titel (Fundstelle hervorgehoben), Unterzeile. */
.srch-ov-bi{display:flex;flex-direction:column;padding:0 var(--sp-3) var(--sp-4)}
.srch-ov-item{display:flex;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-3);border-radius:var(--radius);text-decoration:none;color:inherit;cursor:pointer;transition:background var(--dur-fast)}
.srch-ov-item:hover{background:color-mix(in srgb, var(--surface) 7%, transparent)}
.srch-ov-extra{display:none}
.srch-ov-open .srch-ov-extra{display:flex}
.srch-ov-ii{flex:0 0 auto;color:var(--grey-400);font-size:var(--fs-md);margin-top:var(--sp-0)}
.srch-ov-it{display:flex;flex-direction:column;gap:var(--sp-0);min-width:0}
.srch-ov-lbl{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srch-ov-sub{font-size:var(--fs-xs);color:var(--grey-400);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srch-ov-hl{background:var(--info);color:var(--surface);padding:0 var(--sp-0);border-radius:var(--radius)}
.srch-ov-empty{grid-column:1 / -1;color:var(--grey-300);text-align:center;padding:var(--sp-8)}

/* Sidebar (Content-Level 2) — 1:1 aus ERP mage-components.css (MageSidebar + MageOverlay). */

/* ── MageSidebar (rechts einschiebendes Panel) ── */
.mage-sidebar-overlay {
    display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0;
    background: var(--scrim); z-index:var(--z-overlay); opacity: 0; transition: opacity var(--dur);
}
/* Abdunklung als Navy-Schleier mit leichter Unschärfe (Florian 2026-09-11, Vorschlag „Best-of"). */
.mage-sidebar-overlay.active { display: block; opacity: 1;
    background: color-mix(in srgb, color-mix(in srgb, var(--info) 22%, var(--grey-900)) 45%, transparent);
    backdrop-filter: blur(3px); }
/* Breite systemweit wie ERP-MageSidebar (Default 72vw), auf grossen Screens gedeckelt.
   Ein-/Ausfahren via transform → breitenunabhängig (kein an die Breite gekoppeltes right:-Xpx). */
.mage-sidebar-panel {
    position: fixed; top: 0; right: 0; height: 100vh;
    width: min(72vw, 900px); max-width: 96vw;
    background: var(--surface); box-shadow:var(--shadow-md); z-index:var(--z-drawer);
    /* Einfahren mit leichtem Nachfedern (Überschwinger in der Kurve). */
    transform: translateX(100%); transition: transform calc(var(--dur-slow) * 1.8) cubic-bezier(.22, 1.2, .36, 1);
    display: flex; flex-direction: column; overflow: hidden;
}
/* Die Abschnitte kommen nacheinander herein, sobald die Sidebar offen ist: der Abschnitt blendet NUR
   ein (opacity), gleiten tut allein sein KOPF. Grund: ein transform auf dem Abschnitt machte ihn zum
   containing block für position:fixed — das Picker-Panel im Abschnittskörper stand dann versetzt und
   schob den Inhalt seitlich weg (E2E „dropdown-panel in der sidebar"). Füllung nur rückwärts, damit
   nach dem Einblenden kein Animationswert hängen bleibt. */
/* Der Auftritt des INHALTS liegt seit 13.09.2026 beim animations-Modul (Welle von links nach
   rechts, beim Schliessen rückwärts, Reihenfolge aus der gemessenen Lage). Die frühere Staffelung
   über :nth-child stand hier — zwei Animationen auf derselben Fläche überlagern sich sichtbar,
   deshalb ist sie entfallen und NICHT zusätzlich zu setzen. Das Panel selbst fährt weiter hier ein. */
@media (prefers-reduced-motion: reduce) {
    .mage-sidebar-panel { transition: none; }
}
/* WICHTIG: im Ruhezustand `none`, NICHT translateX(0) — jeder transform ≠ none macht das Panel zum
   containing block für position:fixed. Dropdown-Panels (Picker) im Innern wären dann panel-relativ
   statt viewport-bezogen und stehen um die Sidebar-Position verschoben „im Nirvana". Die Transition
   bleibt: none interpoliert als Identitäts-Transform. */
.mage-sidebar-panel.open { transform: none; }
/* BREITE Variante (Arbeits-Sidebar: Ticket, Mail-Detail …) — ERP-MageSidebar-Breite 72vw OHNE Deckel.
   Hier arbeitet man mit zwei Spalten, statt nur nachzuschlagen. Modul sagt es beim Öffnen: opts.wide. */
.mage-sidebar-panel.mage-sidebar-wide { width: 72vw; max-width: 96vw; }
/* Kopf auf der RUHIGEN FLÄCHE --chrome mit dunkler Schrift — dieselbe Fläche wie die Fenster-Rail
   (Florian 13.09.2026: „linke sidebar in allen windows: background f6f6f7, genauso wie jeder sidebar
   header … typo farbe entsprechend anpassen, weil man sonst die texte nicht mehr sieht"). Vorher
   Navy mit heller Schrift — deshalb müssen Titel, Kennung, Symbol und die Kopf-Knöpfe hier alle
   mitwandern; jede Regel, die noch --surface als Schriftfarbe trug, wäre jetzt weiss auf weiss. */
.mage-sidebar-header {
    /* wie in der Fenster-Leiste: auf dieser Fläche ist --muted eine Stufe kräftiger (2,35 → 4,8) */
    --muted: var(--grey-500);
    display: flex; align-items: center; justify-content: space-between;
    padding:var(--sp-7) var(--sp-8); flex-shrink: 0;
    background: var(--chrome);
    border-bottom: 1px solid var(--border);
}
.mage-sidebar-header .cc-sheet-title h2 { color: var(--ink); }
.mage-sidebar-header .txt-mono { color: var(--grey-500); }   /* --muted trüge auf --chrome nur Kontrast 2,35 */
.mage-sidebar-header .cc-sheet-ico:not(.cc-sheet-ico-media):not(:has(> img.cc-ico-img)) { background: color-mix(in srgb, var(--ink) 8%, transparent); }
/* ── LAYER 2: eine zweite, schmalere Sidebar ÜBER der aktiven (Zeiterfassung, Verschieben, Protokolle).
   Der Rest der Seite — auch die erste Sidebar — wird abgedunkelt; Klick daneben schliesst nur Layer 2. */
.mage-sidebar-overlay-2 { z-index: var(--z-modal); }
.mage-sidebar-panel.mage-sidebar-layer2 { z-index: var(--z-popover); width: min(60vw, var(--sz-820)); max-width: 96vw; }
/* Keine Grössen-Knöpfe im Layer 2 (sidebar 1.10.4): eine Sidebar hat EINE Breite, klein/mittel/gross/voll
   gehören dem zentrierten Overlay (lightbox). */
/* Schubfach-Optik für modul-eigene Einschub-Rahmen (z.B. Termin-Panel des Kalenders), die NICHT das
   Sidebar-Verhalten wollen: nur Aussehen — Abdunklung bzw. Fläche + Schatten; Lage/Breite/Übergang bleiben beim Modul. */
.cc-drawer-scrim { background: var(--scrim); }
.cc-drawer-surface { background: var(--surface); box-shadow: var(--shadow-lg); }
/* GOLDENE REGEL G2 (Florian 12.09.2026): JEDE Sidebar hat einen FUSS — sticky, immer sichtbar, ganz
   unten. Dort stehen die Knöpfe, die für den ganzen Datensatz gelten („Kontakt löschen", „Monitoring
   entfernen", „Stufe löschen", „Öffnen", „Deaktivieren"). Genau diese Knöpfe machten den KOPF vorher
   zweizeilig; sidebar.js (liftHead) hebt die Aktionszeile des Datenblatts hierher.
   Er liegt ausserhalb des scrollenden Bodys und bleibt damit von sich aus stehen. */
.mage-sidebar-foot { display: flex; align-items: center; justify-content: flex-end; gap: var(--sp-3);
                     padding: var(--sp-5) var(--sp-8); border-top: 1px solid var(--grey-200);
                     background: var(--grey-50); flex-shrink: 0; flex-wrap: wrap; }
.mage-sidebar-foot:empty { display: none; }
/* Die hochgehobene Aktionszeile bringt ihre eigenen Abstände mit — im Fuss trägt sie keine. */
.mage-sidebar-foot .cc-sheet-actions { margin: 0; padding: 0; border-top: 0; width: 100%;
                                       justify-content: flex-end; }
/* REICHER KOPF: das Datenblatt (Design::sheet) liefert Icon/Titel/Kennung/Plaketten/Einleitung/Aktionen —
   die Sidebar hebt den Block hierher (sidebar.js liftHead). Er steht fest, der Inhalt scrollt darunter. */
/* Titelzeile kompakt (Icon 28 px, Titel h4-Grösse, eine Zeile); darunter — wenn das Datenblatt sie mitbringt —
   die Einleitung (z.B. „Kunde: …") und die Aktionen. Sie gehören in den Kopf, nicht in einen Tab „Allgemein". */
.mage-sidebar-sheethead { flex: 1 1 auto; min-width: 0; display: none; }
.mage-sidebar-header-rich { align-items: center; }
.mage-sidebar-header-rich .mage-sidebar-sheethead { display: block; }
.mage-sidebar-header-rich h4 { display: none; }
.mage-sidebar-header-rich .mage-sidebar-header-act { flex: 0 1 auto; align-self: center; }
.mage-sidebar-header-rich .mage-sidebar-close { align-self: center; }
/* Die KOMPAKTE Form des Datenblatt-Kopfes gehört dem Datenblatt (layout, .cc-sheet-kompakt) —
   sidebar.js setzt beim Hochheben nur die Klasse. Hier stand sie bis 13.09.2026 ein zweites Mal. */
/* Der Datenblatt-Körper dockt randlos an den Kopf an (der Kopf steckt jetzt im Header, nicht mehr im Body). */

.mage-sidebar-header h4 { margin: 0; font-size:var(--fs-md); font-weight:var(--fw-bold); color: var(--ink); white-space: nowrap; }
/* Titel in Mono (opts.mono) — wenn der Titel eine Kennung ist (z.B. die Ticketnummer). */
.mage-sidebar-mono .mage-sidebar-header h4 { font-family: var(--mono); }
/* Aktionsfläche im Kopf (wie ERP setHeaderAction): Modul-Steuerung zwischen Titel und Schliessen —
   Kategorie/Eskalation/Termin … Leer = unsichtbar, damit der Titel wie gewohnt links steht. */
.mage-sidebar-header-act { display: flex; align-items: center; justify-content: flex-end; gap: var(--sp-2);
                           flex: 1 1 auto; min-width: 0; flex-wrap: wrap; margin: 0 var(--sp-5); }
.mage-sidebar-header-act:empty { display: none; }
.mage-sidebar-close {
    /* --grey-500 statt --grey-400/--muted: auf der hellen Kopffläche (--chrome) trägt --muted nur
       Kontrast 2,35 — das × war kaum noch zu sehen. */
    background: none; border: none; font-size:var(--fs-xl); color: var(--grey-500); cursor: pointer;
    width:var(--sz-32); height:var(--sz-32); display: flex; align-items: center; justify-content: center;
    border-radius:var(--radius); line-height: 1;
    transition: transform var(--dur) ease, background var(--dur), color var(--dur);
}
/* Schliessen: beim Zeigen orange und eine Vierteldrehung. */
.mage-sidebar-close:hover { background: var(--o); color: var(--surface); transform: rotate(90deg); }
.mage-sidebar-save {
    background: var(--o); color: var(--surface); border: none; border-radius:var(--radius);
    padding:var(--sp-2) var(--sp-7); font-size:var(--fs-sm); font-weight:var(--fw-bold); cursor: pointer;
    transition: background var(--dur-fast); white-space: nowrap; line-height: 1;
}
.mage-sidebar-save:hover { background: var(--o-h); }
.mage-sidebar-save:disabled { opacity:var(--op-half); cursor: default; }
/* overflow-x hidden: ein zu breites Kind (Dropdown-Panel, lange Tabelle) darf den Body NIE seitlich
   aufscrollen — sonst schiebt der Fokus-Sprung des Browsers den ganzen Inhalt nach links weg. */
.mage-sidebar-body { flex: 1; overflow-y: auto; overflow-x: hidden; padding: var(--sp-8); }
/* GOLDENE REGEL G4: zwischen Kopf und erstem Akkordeon steht NIE weisser Raum. Ob der Inhalt oben
   anzudocken hat, MISST sidebar.js (flushTop) am ersten sichtbaren Kind und setzt diese Klasse —
   die alte :first-child/:empty-Kette darunter riss, sobald ein Modul irgendetwas davor rendert. */
.mage-sidebar-body.mage-sidebar-flushtop { padding-top: 0; }
.mage-sidebar-body.mage-sidebar-flushtop > .cc-sheet > .cc-sheet-body,
.mage-sidebar-body.mage-sidebar-flushtop > .acctab,
.mage-sidebar-body.mage-sidebar-flushtop > .accordion-section { margin-top: 0; }
/* Die frühere :first-child/:empty-Kette, die das erste Akkordeon per Negativ-Rand an den Kopf zog, ist
   ERSETZT durch die gemessene Klasse oben (sidebar.js flushTop). Sie riss, sobald ein Modul irgendetwas
   vor das Akkordeon rendert, und zog zusammen mit dem neuen padding-top:0 sogar 20 px zu weit. */
/* Zusatzinhalt eines Datenblatts (Design::sheet 'general') über den Abschnitten — mit Luft zum Akkordeon,
   aber nur wenn wirklich etwas SICHTBARES drinsteht. „cc-sheet-general-leer" setzt sidebar.js, wenn dort
   nach dem Hochheben des Kopfes nur noch Vorlagen (<template>) stehen. */
.mage-sidebar-body .cc-sheet-general:empty,
.mage-sidebar-body .cc-sheet-general-leer { display: none; }
.mage-sidebar-body .cc-sheet-general:not(:empty):not(.cc-sheet-general-leer) + .cc-sheet-body { margin-top: var(--sp-7); }
.mage-sidebar-loading { text-align: center; padding:var(--sp-11); color: var(--muted); font-size:var(--fs-base); }

/* Kind randlos über die volle Sidebar-Breite (bricht aus dem 20px-Body-Padding aus).
   Der Sidebar-Body BESITZT das Padding → hier lebt auch das Gegenstück. */
.mage-sidebar-flush { margin-left: calc(-1 * var(--sp-8)); margin-right: calc(-1 * var(--sp-8)); }
/* Steht das flush-Element ganz OBEN im Body, dockt es auch an den Sidebar-Header an —
   sonst bleibt das obere Body-Padding als grundlose Lücke zwischen Header und erstem Tab. */


/* Slack — nur Anordnung; Optik kommt aus den Kern-Bausteinen. */
.sl-main { min-width: 0; }
.sl-msgs { display: flex; flex-direction: column; gap: var(--sp-2); }

/* Spinner + Loading — 1:1 aus ERP utilities.css (nur diese Komponente). */
/* PRÄFIX: Keyframe-Namen teilen sich EINEN Namensraum über alle geladenen Stylesheets. 'spin' hiess
   dieser hier bis zum 15.09.2026 — jede Modul- oder Vendor-CSS (DataTables!), die denselben Namen
   definiert, hätte ihn je nach Ladereihenfolge übersteuert, und der Kreisel des ganzen Systems
   drehte sich anders. Die Geschwister machen es richtig: cc-fade-in, cc-slide-up, cc-pulse. */
@keyframes cc-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* Ein Spinner, ein Ort. Alle Module nutzen diese Klassen.
   Größen: .mage-spinner-sm (14px), default (18px), .mage-spinner-lg (24px) */
.mage-spinner {
    display: inline-block;
    width:var(--sz-18); height:var(--sz-18);
    border: 2px solid var(--grey-200);
    border-top-color: var(--o);
    border-radius: 50%;
    /* Eine Umdrehung in --dur-slow (0,3 s) flimmert: --dur-slow ist die Dauer eines ÜBERGANGS,
       keine Rotationsdauer für eine Dauerschleife. Dreifach gibt eine ruhige Umdrehung. */
    animation: cc-spin calc(var(--dur-slow) * 3) linear infinite;
    vertical-align: middle;
    /* flex: statt nur shrink auch GROW sperren — in einem Flex-Elternteil mit einer Regel wie
       `.x > span { flex: 1 }` streckt sich der Spinner sonst zur vollen Breite. Ein Kreis mit
       border-radius: 50% wird dabei zur langen Ellipse und wischt beim Drehen quer über die Zeile. */
    flex: 0 0 auto;
}
.mage-spinner-sm { width:var(--sz-14); height:var(--sz-14); border-width: 2px; }
.mage-spinner-lg { width:var(--sz-24); height:var(--sz-24); border-width: 2.5px; }

/* EIN BELIEBIGES SYMBOL DREHEN (.cc-spin) — für Knöpfe, die während einer Arbeit rotieren.
   Dasselbe Tempo, dieselbe Kurve wie der Kreisel: „Ein Spinner, ein Ort." Vorher hatte mail dafür
   einen zweiten Dreh-Effekt mit eigenem Keyframe (15.09.2026). */
.cc-spin { animation: cc-spin calc(var(--dur-slow) * 3) linear infinite; }

/* Zentrierter Ladezustand mit Text:
   <div class="mage-loading"><span class="mage-spinner"></span> Laden…</div> */
.mage-loading {
    display: flex; align-items: center; justify-content: center; gap:var(--sp-3);
    padding:var(--sp-11) var(--sp-8); text-align: center;
    color: var(--muted); font-size:var(--fs-base);
}
.mage-loading-compact { padding:var(--sp-5) var(--sp-7); }
/* Zeilen-Ladezustand (Design::loading ['inline'=>true]) — linksbündig, kleine graue Schrift, wenig Luft:
   eine nachladende Sektion in einer Seitenleiste. */
.mage-loading.mage-loading-inline { justify-content: flex-start; text-align: left; padding: var(--sp-4) 0; font-size: var(--fs-sm); }
/* display:flex darf das hidden-Attribut nicht aushebeln (Module schalten den Ladezustand per el.hidden). */
.mage-loading[hidden] { display: none; }

/* Reduzierte Bewegung (spinner 1.2.1): wer sie im System eingestellt hat, sieht Kreisel und drehende
   Symbole stehen — der Ladezustand bleibt über Form und Text erkennbar. Vorher drehten sich beide
   ohne Ausnahme (der reduced-motion-Block in animations deckt nur dessen eigene Klassen). */
@media (prefers-reduced-motion: reduce) { .mage-spinner, .cc-spin { animation: none; } }

/* Code-Darstellung — Baustein Core\Design::codeBlock. Farben ausschliesslich aus Kern-Token,
   damit helles und dunkles Thema ohne Sonderregeln funktionieren. */
/* Schrift-Massgabe steht EINMAL am Rahmen: Eingabefeld und Färbung erben davon. Wären es zwei
   getrennte Angaben, liefen Text und Farbe beim Tippen auseinander (Browser runden Zeilenhöhen
   je Element unterschiedlich) — genau das war der Fall. */
.cc-codewrap { position: relative; border: 1px solid var(--border); border-radius: var(--radius);
               overflow: hidden; font-family: var(--mono); font-size: var(--fs-sm);
               line-height: 1.5; letter-spacing: normal; tab-size: 2; }
.cc-code { margin: 0; padding: var(--sp-4); overflow-x: auto; background: var(--grey-50);
           font: inherit; letter-spacing: inherit; tab-size: inherit; }
.cc-code code { font: inherit; letter-spacing: inherit; tab-size: inherit; white-space: pre; }

.cs-kw      { color: var(--accent-2); font-weight: var(--fw-bold); }
.cs-string  { color: var(--ok); }
.cs-comment { color: var(--muted); font-style: italic; }
.cs-num     { color: var(--info); }
.cs-var     { color: var(--danger); }
.cs-tag     { color: var(--accent-2); }

/* Bearbeitbar: das Eingabefeld liegt DECKUNGSGLEICH über der Hervorhebung. Beide teilen exakt
   Schrift, Zeilenhoehe und Innenabstand — sonst laufen Text und Farbe auseinander. */
.cc-code-editable .cc-code { pointer-events: none; }
.cc-code-editable .cc-code-input {
    position: absolute; inset: 0; width: 100%; height: 100%;
    margin: 0; padding: var(--sp-4); border: 0; resize: none;
    background: transparent; color: transparent; caret-color: var(--ink);
    white-space: pre; overflow: auto;
    /* Die globale Textfeld-Regel (forms.css) setzt Schriftgroesse und Innenabstand mit !important.
       Ein Code-Feld MUSS aber zeichengenau auf der Faerbung darunter liegen — sonst wandert der
       Text beim Tippen gegenueber den Farben. Deshalb hier die einzige begruendete Ausnahme. */
    font: inherit !important;
    letter-spacing: inherit !important;
    tab-size: inherit;
    padding: var(--sp-4) !important;
    border: 0 !important;
    background: transparent !important;
    height: 100% !important;
    /* Die globale Textfeld-Regel (forms.css) setzt `color` mit !important. Ohne dieselbe Staerke
       hier blieb der Text des Eingabefeldes SICHTBAR und lag als zweite, verschobene Schrift ueber
       der Faerbung — jedes bearbeitbare Code-Feld las sich doppelt. Der Cursor bleibt sichtbar
       (caret-color oben), nur die Glyphen sind es nicht. */
    color: transparent !important;
}
/* ['softwrap'=>true] (Design::codeBlock): Fliesstext in Monospace — lange Zeilen brechen um, statt
   waagerecht wegzulaufen. Hervorhebung UND Eingabefeld brechen identisch um, sonst wandern Text und
   Farbe auseinander. Der waagerechte Rollbalken entfällt damit. Nicht mit der Zeilenleiste nutzen. */
.cc-code-soft .cc-code { overflow-x: hidden; }
.cc-code-soft .cc-code code,
.cc-code-soft .cc-code-input { white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; }

.cc-code-editable { min-height: var(--sz-180); }
.cc-code-stage { position: relative; min-height: var(--sz-140); }   /* Deckungsfläche: pre + Eingabe, ohne Werkzeugleiste */
.cc-code-editable .cc-code-input::selection { background: var(--accent-2-bg); color: var(--ink); }

.cc-code-tools { display: flex; align-items: center; gap: var(--sp-1); flex-wrap: wrap;
                 padding: var(--sp-2); border-bottom: 1px solid var(--border); background: var(--surface); }
.cc-code-tools .cc-code-lang { margin-left: auto; color: var(--muted); font-size: var(--fs-xs);
                               text-transform: uppercase; letter-spacing: var(--tracking); }
.cc-code-editable .cc-code { padding-top: var(--sp-4); }

/* ── Zeilenleiste (Design::codeBlock ['lines'=>true]) ─────────────────────────────────────────
   Sitzt absolut in der Deckungsfläche, trägt reinen Text (1\n2\n3 …) und wird beim Tippen/Scrollen
   vom syntax-JS nachgeführt (scrollTop) — deshalb overflow:hidden statt einer zweiten Bildlaufleiste.
   Feld und Färbung rücken um dieselbe Breite ein, sonst liefen Text und Nummern auseinander. */
.cc-code-lined .cc-code-stage { position: relative; }
.cc-code-lined .cc-code { padding-left: var(--sz-56); }
.cc-code-lined .cc-code-input { padding-left: var(--sz-56) !important; }
.cc-code-gutter {
    position: absolute; left: 0; top: 0; bottom: 0; width: var(--sz-48);
    padding: var(--sp-4) var(--sp-3) var(--sp-4) 0; box-sizing: border-box;
    overflow: hidden; white-space: pre; text-align: right;
    color: var(--muted); background: var(--grey-100);
    border-right: 1px solid var(--border);
    user-select: none; pointer-events: none;
}

/* ── Code-Editor-Overlay (Design::codeEditor) ────────────────────────────────────────────────
   Fläche/Kopf/Fuss kommen aus den Kern-Overlay-Klassen (lightbox). Hier steht NUR, dass ein
   Code-Overlay breiter und höher ist als ein Melde-Dialog und dass das Feld die Fläche füllt. */
/* Doppelte Klasse bzw. eigener Kontext = hoehere Spezifitaet als die lightbox-Vorgabe; die
   Ladereihenfolge der Modul-CSS ist nicht garantiert, eine gleich starke Regel wuerde verlieren. */
/* Die GRÖSSE steht nicht mehr hier (15.09.2026). Das Panel trägt data-ov-kind="code"
   (Core\Design), und lightbox.js legt darauf die gemerkte Grösse, sonst „gross" — dessen Regel
   (.mage-overlay-panel[data-ov-kind].cc-ov-l) ist ohnehin spezifischer als die hiesige und hat
   immer gewonnen. Eine eigene Höhe daneben war also eine Zusage, die nie galt, und sie nahm dem
   Nutzer nichts ab: umschalten kann er sie über den Kopf wie bei jedem anderen Overlay. */
.cc-codeed-panel .mage-overlay-body.cc-codeed-body { max-height: none; flex: 1 1 auto; display: flex; min-height: 0; }
.cc-codeed-body .cc-codewrap { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; }
.cc-codeed-body .cc-code-stage { flex: 1 1 auto; min-height: 0; }
.cc-codeed-body .cc-code { height: 100%; overflow: auto; }
.cc-codeed-note { margin-right: auto; color: var(--danger); }

/* Konsole (Design::console) — dunkle Terminal-Fläche mit Kopfleiste (Terminals-Modul). */
.cc-console { display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden;
  border: 1px solid var(--grey-700); border-radius: var(--radius); background: var(--grey-900); color: var(--grey-100); }
.cc-console.cc-console-active { border-color: var(--o); }
.cc-console-head { display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-1) var(--sp-2); min-width: 0;
  background: var(--grey-800); color: var(--grey-100); }
.cc-console-meta { font-size: var(--fs-xs); color: var(--grey-400); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cc-console-gap { flex: 1; }
.cc-console-body { flex: 1; min-height: 0; }

/* ── Markierte Zeile (Design::codeBlock ['mark' => N]) ─────────────────────────────────────────
   „Zeig mir die Stelle im Quelltext": ein farbiges Band über genau einer Zeile. Seine Lage kommt
   aus der Zeilennummer (--cc-mark, vom Baustein gesetzt) und der gemeinsamen Zeilenhöhe von
   Zeilenleiste und Code — beide sitzen in derselben Deckungsfläche, deshalb trägt die Rechnung. */
.cc-code-mark { position: absolute; left: 0; right: 0; pointer-events: none; z-index: var(--z-base);
    top: calc(var(--sp-4) + (var(--cc-mark) - 1) * 1.5em); height: 1.5em;
    background: color-mix(in srgb, var(--o) 16%, transparent);
    border-left: 2px solid var(--o); }
.cc-code-marked .cc-code { position: relative; z-index: var(--z-raised); background: transparent; }
.cc-code-marked .cc-code-stage { background: var(--grey-50); border-radius: var(--radius); }

/* Fliesstext hat keine Kommentarzeichen — „Auskommentieren" wird dort nicht angeboten (syntax 1.6.0). */
.cc-codewrap[data-lang="text"] [data-code-act="comment"] { display: none; }

/* == muster.css == */
/* Naberion Marktplatz — Musterfläche als Grund.
   Fassung „Wolken + Ecken" bei −25 %, Farbstand Mitternacht wie die Loginmaske.
   Der Verlaufswinkel ist eine registrierte Eigenschaft (@property) — nur dadurch
   lässt sich ein Winkel überhaupt animieren; ohne Registrierung springt er. */

/* Muster, Verlauf und Drehung (Tokens --muster-*, @property --nb-winkel, @keyframes nb-winkel) liefern seit
   system 1.17.0 der Kern (Design::muster, Kern-Tokens) und layout (cc-muster, cc-muster-flaeche). Hier bleibt
   nur die Anordnung der Anwendung. */

.mk-app{
  /* Marktplatz-Palette als eigene Tokens (Gate: keine oklch-Literale in Deklarationen) */
  --mk-c1:oklch(0.237 0.071 255.1); --mk-c2:oklch(0.140 0.050 257.2); --mk-c3:oklch(0.918 0.015 264.5); --mk-c4:oklch(0.960 0.009 258.3); --mk-c5:oklch(0.710 0.036 255.3); --mk-c6:oklch(0.810 0.026 255.6); --mk-c7:oklch(0.752 0.161 46.5); --mk-c8:oklch(0.688 0.034 255.6); --mk-c9:oklch(0.242 0.075 255.0); --mk-c10:oklch(0.239 0.026 251.3); --mk-c11:oklch(0.558 0.033 248.4); --mk-c12:oklch(0.929 0.010 252.8); --mk-c13:oklch(0.972 0.003 247.9); --mk-c14:oklch(0.974 0.014 46.2); --mk-c15:oklch(0.448 0.135 40.5); --mk-c16:oklch(0.569 0.142 46.5); --mk-c17:oklch(0 0 0 / .34); --mk-c18:oklch(0 0 0 / .55); --mk-c19:oklch(0.913 0.049 46.8); --mk-c20:oklch(0.342 0.033 248.8); --mk-c21:oklch(0 0 0); --mk-c22:oklch(0 0 0 / .72); --mk-c23:oklch(0 0 0 / .42); --mk-c24:oklch(0 0 0 / .65); --mk-c25:oklch(0.325 0.044 249.3); --mk-c26:oklch(0.848 0.024 256.1); --mk-c27:oklch(0.819 0.026 255.6); --mk-c28:oklch(0.642 0.036 256.8); --mk-c29:oklch(0.171 0.019 255.8); --mk-c30:oklch(0.727 0.032 256.0); --mk-c31:oklch(0.913 0.017 256.3); --mk-c32:oklch(.72 .03 255); --mk-c33:oklch(.55 .14 46);
  --nb-dauer:var(--dur-ambient);
  --mkz-0:0;--mkz-1:1;--mkz-2:2;--mkz-3:3;--mkz-4:4;--mkz-kopf:5;--mkz-schirm:6;--mkz-schiene:7;
}


/* Der Inhalt liegt über der Fläche. */

/* ── Der Grund ist jetzt dunkel: alles, was direkt darauf sitzt, wird hell ── */
.feld-kopf h1{ color:var(--mk-c4) }
.feld-kopf .zahl{ color:var(--mk-c5) }
.sortier button{ background:color-mix(in srgb,var(--surface) 7%,transparent); border-color:color-mix(in srgb,var(--surface) 16%,transparent); color:var(--mk-c6) }
.sortier button:hover{ background:color-mix(in srgb,var(--surface) 13%,transparent); color:var(--surface) }
.sortier button[aria-pressed=true]{ background:color-mix(in srgb,var(--o) 16%,transparent); border-color:var(--o); color:var(--mk-c7) }
.karte .titel{ color:var(--mk-c4) }
.karte .unter{ color:var(--mk-c8) }
.karte .unter .pill{ border-color:color-mix(in srgb,var(--surface) 18%,transparent) }
.leer{ color:var(--mk-c8) }
.karte:hover .kachel{ box-shadow:var(--shadow-md)}

/* Die Schiene bleibt hell — sie ist ein Blatt Papier vor der Fläche. */
.schirm{ background:color-mix(in srgb,var(--brand-night-2) 62%,transparent) }


/* == markt.css == */
/* Naberion Marktplatz — Kacheln nach dem Ton-in-Ton-Rezept, heller Rahmen drumherum.
   Jede Kachel: dunkler Grund (L .30 C .120), helle Zeichnung (L .88 C .090),
   Fussband (L .86 C .085) mit dunkler Schrift (L .28 C .120) — ein Farbtonwinkel pro Modul. */
.mk-app{
  --nacht1:oklch(0.242 0.075 255.0); --nacht2:oklch(0.140 0.050 257.2);
  --ink:oklch(0.239 0.026 251.3); --mut:oklch(0.558 0.033 248.4); --line:oklch(0.929 0.010 252.8); --flaeche:oklch(0.972 0.003 247.9); --weiss:var(--surface);
  --radius:4px; --rail:264px;
  color-scheme:light;
}
*{box-sizing:border-box}
html,.mk-app{height:100%}
.mk-app{margin:0;background:var(--flaeche);color:var(--ink);
  font:14px/1.6 -apple-system,system-ui,"Segoe UI",Roboto,sans-serif}
button{font:inherit;cursor:pointer}
a{color:inherit;text-decoration:none}

/* ── Kopfleiste ──────────────────────────────────────────────────────────── */
.kopf{position:sticky;top:0;z-index:var(--mkz-kopf);height:3.75rem;display:flex;align-items:center;gap:1.125rem;
  padding:0 1.25rem;background:var(--nacht2);color:var(--surface)}
.kopf .marke{display:flex;align-items:center;gap:0.6875rem}
.kopf .marke svg{height:1.625rem;width:auto;fill:var(--surface);overflow:visible}
.kopf .wort{font:300 15px/1 'Exo 2',system-ui,sans-serif;letter-spacing:var(--tracking-wide);text-transform:uppercase}
.kopf .wort b{font-weight:var(--fw-med)}
.suche{flex:1;max-width:32.5rem;position:relative}
/* Die EINE gebrandete Header-Suche der Marktplatz-App (brings_design) überstimmt die Feld-Grundregel
   (forms.css arbeitet selbst mit !important) — kein neuer Feldtyp, nur dieses dunkle Header-Feld. */
.mk-app .suche input{width:100%!important;height:2.375rem!important;
  border:1px solid color-mix(in srgb,var(--surface) 16%,transparent)!important;border-radius:var(--radius)!important;
  background:color-mix(in srgb,var(--surface) 8%,transparent)!important;color:var(--surface)!important;
  padding:0 0.75rem 0 2.375rem!important;font-size:var(--fs-base)!important}
.mk-app .suche input::placeholder{color:color-mix(in srgb,var(--surface) 50%,transparent)}
.mk-app .suche input:focus{border-color:var(--o)!important;background:color-mix(in srgb,var(--surface) 12%,transparent)!important;box-shadow:none!important}
.mk-app .suche .bi{position:absolute;left:11px;top:8px;color:color-mix(in srgb,var(--surface) 50%,transparent);font-size:var(--fs-md)}
.kopf-rechts{margin-left:auto;display:flex;align-items:center;gap:1.25rem;font-size:var(--fs-base)}
.kopf-rechts a{color:color-mix(in srgb,var(--surface) 72%,transparent)}
.kopf-rechts a:hover{color:var(--surface)}
.konto{display:flex;align-items:center;gap:0.5625rem;padding-left:1.25rem;border-left:1px solid color-mix(in srgb,var(--surface) 14%,transparent)}
.konto .kreis{width:1.75rem;height:1.75rem;border-radius:50%;background:var(--o);color:var(--surface);
  display:grid;place-items:center;font-size:var(--fs-sm);font-weight:var(--fw-bold)}
.konto span{color:color-mix(in srgb,var(--surface) 85%,transparent)}

/* ── Gerüst ──────────────────────────────────────────────────────────────── */
@media(max-width:900px){}

.rail{background:var(--weiss);border-right:1px solid var(--line);padding:1.375rem 0 2.5rem;
  position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto}
@media(max-width:900px){.rail{position:static;height:auto}}
.rail h3{margin:0;padding:0 1.25rem 0.5625rem;font-size:var(--fs-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--mut)}
.rail .gruppe{padding-bottom:1.125rem;margin-bottom:1.125rem;border-bottom:1px solid var(--line)}
.rail .gruppe:last-child{border:0}
.filter{display:flex;align-items:center;gap:0.625rem;width:100%;padding:0.4375rem 1.25rem;border:0;background:none;
  color:var(--ink);font-size:var(--fs-base);text-align:left;border-left:2px solid transparent}
.filter:hover{background:var(--flaeche)}
.filter[aria-pressed=true]{background:var(--mk-c14);border-left-color:var(--o);color:var(--mk-c15);font-weight:var(--fw-med)}
.filter .zahl{margin-left:auto;font-size:var(--fs-xs);color:var(--mut);font-variant-numeric:tabular-nums}
.filter[aria-pressed=true] .zahl{color:var(--mk-c16)}
.filter .punkt{width:0.5rem;height:0.5rem;border-radius:var(--radius);flex:0 0 auto}
/* „Bei mir aktiv"-Punkt = Marken-Akzent; unsichtbarer Platzhalter hält den Slot frei, damit alle
   Zeilen (auch ohne Farbpunkt) links gleich einrücken. */
.filter .an-punkt{background:var(--o)}
.filter .punkt-leer{visibility:hidden}

/* ── Kachelfeld ──────────────────────────────────────────────────────────── */
.feld{padding:1.625rem 1.75rem 3.75rem;min-width:0}
.feld-kopf{display:flex;align-items:baseline;gap:0.875rem;margin-bottom:1.25rem;flex-wrap:wrap}
.feld-kopf h1{margin:0;font:300 26px/1.1 'Exo 2',system-ui,sans-serif;letter-spacing:var(--tracking);text-transform:uppercase}
.feld-kopf .zahl{color:var(--mut);font-size:var(--fs-base)}
.feld-kopf .sortier{display:flex;gap:0.375rem}
.feld-kopf .ansicht{margin-left:auto}
.sortier button{border:1px solid var(--line);background:var(--weiss);border-radius:var(--radius);
  padding:0.3125rem 0.6875rem;font-size:var(--fs-sm);color:var(--mut)}
.sortier button[aria-pressed=true]{border-color:var(--o);color:var(--o)}

.gitter{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:1.375rem 1.25rem}
.karte{border:0;background:none;padding:0;text-align:left;display:flex;flex-direction:column;gap:0.5625rem}
.karte:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--radius-md)}
.kachel{position:relative;aspect-ratio:1;border-radius:var(--radius-lg);overflow:hidden;
  background:oklch(.30 .12 var(--h));display:flex;flex-direction:column;
  box-shadow:var(--shadow-md);
  transition:transform var(--dur-fast) ease, box-shadow var(--dur-fast) ease}
.karte:hover .kachel{transform:translateY(-5px);
  box-shadow:var(--shadow-lg)}
.kachel .n{position:absolute;inset:0;display:grid;place-items:center;opacity:var(--op-faint)}
.kachel .n svg{height:118%;width:auto;fill:oklch(.88 .09 var(--h));transform:rotate(-26deg) translateX(-4%)}
.kachel .zeichen{flex:1;display:grid;place-items:center;position:relative}
.kachel .zeichen>*{grid-area:1/1}
.kachel .zeichen .bi{font-size:var(--fs-hero);color:oklch(.88 .09 var(--h))}

/* ── Einfassung „Kompass 48" ─────────────────────────────────────────────────
   Ruhezustand: Ringe bei 20 %, die vier Marken voll deckend. Beim Überfahren wacht das
   Instrument auf — der verdeckte Teilkreis dreht sich, die Ringe werden heller, die Marken
   rücken nach aussen. Das Zeichen selbst bewegt sich fast nicht: es soll lesbar bleiben,
   nicht tanzen. */
.kachel .mark{width:88%;height:88%;display:block;overflow:visible;
  fill:none;stroke:oklch(.93 .07 var(--h));stroke-width:2.6}
.kachel .spur circle{transform-box:fill-box;transform-origin:center;
  transition:opacity var(--dur-slow) ease, r var(--dur-slow) ease}
.kachel .r1{opacity:var(--op-faint)}
.kachel .r2{stroke-width:1.6;opacity:var(--op-faint)}
.kachel .rd{stroke-width:1.2;stroke-dasharray:3 9;opacity:0;
  transform-box:fill-box;transform-origin:center}
.kachel .marken{transform-box:fill-box;transform-origin:center;
  transition:transform var(--dur-slow) cubic-bezier(.34,1.3,.5,1), opacity var(--dur-slow) ease}
.kachel .marken line{stroke-width:2.6}
/* KEIN transform-origin hier: das SVG-Attribut transform wird auf die CSS-Eigenschaft
   abgebildet, und ein gesetzter Ursprung verschiebt die ganze Kette — der Glyph landet
   dann ausserhalb des Rahmens. Ursprung bleibt 0 0, die Mitte steckt in der Kette selbst. */
.kachel .glyph{transform-box:view-box;
  transition:transform var(--dur-slow) cubic-bezier(.34,1.2,.5,1)}
.kachel .glyph .f{fill:oklch(.74 .13 var(--h));opacity:var(--op-half);stroke:none;transition:opacity var(--dur-slow) ease}
.kachel .glyph .z{fill:oklch(.93 .07 var(--h));stroke:none}

.karte:hover .kachel .r1{opacity:var(--op-soft)}
.karte:hover .kachel .r2{opacity:var(--op-half)}
.karte:hover .kachel .rd{opacity:var(--op-strong);animation:nb-dreh var(--dur-drift) linear infinite}
.karte:hover .kachel .marken{transform:scale(1.18)}
.karte:hover .kachel .glyph{transform:translate(50px,50px) scale(2.95) translate(-8px,-8px)}
.karte:hover .kachel .glyph .f{opacity:var(--op-strong)}
@keyframes nb-dreh{to{transform:rotate(360deg)}}
/* Wer Bewegung abgestellt hat, bekommt nur den Helligkeitswechsel. */
@media (prefers-reduced-motion: reduce){
  .kachel .marken,.kachel .glyph{transition:none}
  .karte:hover .kachel .rd{animation:none;opacity:var(--op-dim)}
  .karte:hover .kachel .marken{transform:none}
  .karte:hover .kachel .glyph{transform:translate(50px,50px) scale(2.55) translate(-8px,-8px)}
}
.kachel .fuss{height:23%;background:oklch(.86 .085 var(--h));display:grid;place-items:center}
.kachel .fuss span{font:400 10px/1 'Exo 2',system-ui,sans-serif;letter-spacing:var(--tracking-wide);text-transform:uppercase;
  color:oklch(.28 .12 var(--h));max-width:92%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.karte .titel{font-size:var(--fs-base);font-weight:var(--fw-bold);line-height:1.3}
.karte .unter{font-size:var(--fs-xs);color:var(--mut);display:flex;gap:0.4375rem;flex-wrap:wrap}
.karte .unter .pill{border:1px solid var(--line);border-radius:var(--radius-pill);padding:0 0.4375rem;font-size:var(--fs-2xs)}
.leer{padding:3.75rem 0;text-align:center;color:var(--mut)}

/* ── Schiene (Detail) ────────────────────────────────────────────────────── */
.schirm{position:fixed;inset:0;background:color-mix(in srgb,var(--brand-night-2) 42%,transparent);opacity:0;pointer-events:none;
  transition:opacity var(--dur);z-index:var(--mkz-schirm)}
.schirm.auf{opacity:1;pointer-events:auto}
.schiene{position:fixed;top:0;right:0;bottom:0;width:50vw;min-width:28.75rem;background:var(--weiss);
  z-index:var(--mkz-schiene);transform:translateX(100%);transition:transform var(--dur-slow) cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}
.schiene.auf{transform:none}
@media(max-width:900px){.schiene{width:100vw;min-width:0}}
.schiene-lauf{overflow-y:auto;flex:1}

/* Modul-Detail in der GLOBALEN Kern-Sidebar: die Marktplatz-Optik (Held/Kopfkarte/Inhalt) sitzt
   randlos wie früher in der Schiene — die Sidebar-Polsterung wird per Negativrand aufgehoben. Das
   vollständige Datenblatt (Modul-Verwalter) darunter läuft im normalen Theme mit eigenem Rand. */
.mage-sidebar-body > .sy-modul-detail{margin:calc(-1 * var(--sp-8))}
/* Nur die Marktplatz-TOKENS von .mk-app, nicht dessen Flex-Layout (Schiene/Held/Kopfkarte sollen als
   normaler Block fliessen, sonst kollabieren sie auf 0 Breite). */
.sy-detail-markt.mk-app{display:block;height:auto;overflow:visible}
.sy-detail-trenn{height:1px;background:var(--border);margin:var(--sp-2) 1.625rem var(--sp-6)}
.sy-detail-mehr{padding:0 1.625rem var(--sp-8)}
.sy-detail-mehr:empty{padding:0}
/* Standard-Akkordeon (acctab) randlos bis zur Sidebar-Kante, wie jede andere Sidebar (Doktrin: selbe Elemente = selbes Design). Die Polsterung von .sy-detail-mehr bleibt fuer Knoepfe/Intro. */
/* mage-sidebar-flush (Design::sheet) macht das Akkordeon randlos — eine ZUSAETZLICHE negative Marge waere doppelter Flush (schob die Sektion ~20px ueber die Sidebar-Kante, Florian 20.09.). Nicht wieder hinzufuegen. */

/* Oberes Drittel: Vollbild, darüber geschoben die Kachel mit den Eckdaten */
.held{position:relative;height:33vh;min-height:13.75rem;
  background:linear-gradient(155deg,oklch(.42 .13 var(--h)),oklch(.16 .07 var(--h)))}
.held img.bild{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center}
/* Kein Farbschleier mehr über dem Demo-Bild: das Bild ist der Inhalt, nicht der Grund.
   Es bleibt nur eine neutrale Abdunklung am unteren Rand, damit die Bildunterschrift
   lesbar bleibt und die überlappende Kopfkarte einen Halt hat. */
.held .schleier{position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 0%,transparent 46%,color-mix(in srgb,var(--brand-night-2) 34%,transparent) 78%,color-mix(in srgb,var(--brand-night-2) 72%,transparent) 100%)}
.held .muster{display:none}
.held .schliessen{position:absolute;top:14px;right:16px;width:2rem;height:2rem;border-radius:50%;
  border:0;background:var(--mk-c17);color:var(--surface);font-size:var(--fs-md);display:grid;place-items:center}
.held .schliessen:hover{background:var(--mk-c18)}
.held .platzhalter{position:absolute;left:20px;bottom:74px;font-size:var(--fs-2xs);letter-spacing:var(--tracking-wide);
  text-transform:uppercase;color:color-mix(in srgb,var(--surface) 72%,transparent);
  background:color-mix(in srgb,var(--brand-night-2) 50%,transparent);padding:0.1875rem 0.5625rem;border-radius:var(--radius-pill);backdrop-filter:blur(3px)}

/* Die Kopfkarte überlappt das Bild, fährt beim Scrollen mit nach oben und bleibt
   dort als Kopfzeile kleben. Oben angekommen legt sie die Karten-Attribute ab —
   volle Breite, keine Rundung, flacherer Satz — und wird zur Leiste. */
.kopfkarte{margin:-3.5rem 1.625rem 0;position:sticky;top:0;z-index:var(--mkz-3);background:var(--weiss);
  border:1px solid var(--line);border-radius:var(--radius-md);padding:1rem;display:flex;gap:1rem;
  align-items:flex-start;flex-wrap:wrap;
  box-shadow:var(--shadow-sm);
  transition:margin var(--dur) cubic-bezier(.4,0,.2,1), border-radius var(--dur), padding var(--dur),
             box-shadow var(--dur), gap var(--dur)}
.kopfkarte.fest{margin-left:0;margin-right:0;border-radius:0;border-left:0;border-right:0;border-top:0;
  padding:0.6875rem 1.625rem;gap:0.8125rem;align-items:center;
  box-shadow:var(--shadow-sm)}
.kopfkarte .kachel{width:6rem;flex:0 0 96px;border-radius:var(--radius-md);
  transition:width var(--dur) cubic-bezier(.4,0,.2,1), flex-basis var(--dur) cubic-bezier(.4,0,.2,1),
             border-radius var(--dur)}
.kopfkarte.fest .kachel{width:2.5rem;flex:0 0 40px;border-radius:var(--radius-md)}
.kopfkarte.fest .kachel .fuss{display:none}
.kopfkarte.fest h2{font-size:var(--fs-lg)}
.kopfkarte.fest .meta{margin-top:0.1875rem}
.kopfkarte.fest .meta span:not(.mk-marke){display:none}
.kopfkarte h2,.kopfkarte .meta{transition:font-size var(--dur), margin var(--dur)}
.kopfkarte .knopf{transition:none}
.kopfkarte .kachel .zeichen .bi{font-size:var(--fs-display)}
.kopfkarte .kachel .zeichen .duo{width:44%}
.kopfkarte h2{margin:0;font:300 24px/1.15 'Exo 2',system-ui,sans-serif;letter-spacing:var(--tracking)}
.kopfkarte .meta{margin-top:0.4375rem;display:flex;gap:0.5rem;flex-wrap:wrap;font-size:var(--fs-xs);color:var(--mut)}
.kopfkarte .meta b{color:var(--ink);font-weight:var(--fw-bold)}
.mk-marke{display:inline-flex;align-items:center;gap:0.3125rem;border-radius:var(--radius-pill);padding:0.125rem 0.5625rem;
  font-size:var(--fs-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;border:1px solid var(--line)}
.mk-marke.kat{background:oklch(.95 .04 var(--h));border-color:oklch(.86 .06 var(--h));color:oklch(.35 .12 var(--h))}
.mk-marke.schutz{background:var(--mk-c14);border-color:var(--mk-c19);color:var(--mk-c15)}
.kopfkarte .knopf{margin-left:auto;align-self:flex-start;display:flex;gap:0.5rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.kopfkarte.fest .knopf{align-self:center}
/* Der × im Bild ist weggescrollt, sobald die Leiste klebt — dann übernimmt dieser. */
.kopfkarte .zu-leiste{display:none;border:0;background:none;color:var(--mut);font-size:var(--fs-md);
  width:2rem;height:2rem;border-radius:50%;place-items:center;margin-left:0.25rem}
.kopfkarte.fest .zu-leiste{display:grid}
.kopfkarte .zu-leiste:hover{background:var(--flaeche);color:var(--ink)}
.knopf-haupt{background:var(--o);color:var(--surface);border:0;border-radius:var(--radius);padding:0.5625rem 1.125rem;font-size:var(--fs-base);font-weight:var(--fw-bold)}
.knopf-haupt:hover{background:var(--o-h)}
.knopf-neben{background:var(--weiss);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:0.5625rem 0.875rem;font-size:var(--fs-base)}
.knopf-neben:hover{border-color:var(--o);color:var(--o)}

.inhalt{padding:1.375rem 1.625rem 3.75rem;background:var(--weiss);position:relative;z-index:var(--mkz-1)}
.einleitung{font-size:var(--fs-lg);line-height:1.6;color:var(--mk-c20);margin:0 0 1.25rem}

/* Bilderfolge */
.folge{position:relative;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;margin-bottom:1.5rem;background:var(--mk-c21)}
.folge-band{display:flex;transition:transform var(--dur-slow) cubic-bezier(.4,0,.2,1)}
.folge-bild{flex:0 0 100%;aspect-ratio:16/9;position:relative;display:grid;place-items:center;
  background:linear-gradient(140deg,oklch(.34 .1 var(--h)),oklch(.14 .05 var(--h)))}
.folge-bild img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.folge-bild .bi{font-size:var(--fs-mark);color:oklch(.88 .09 var(--h));opacity:var(--op-half)}
.folge-bild .schild{position:absolute;left:0;right:0;bottom:0;padding:1.625rem 0.875rem 0.625rem;
  background:linear-gradient(transparent,var(--mk-c22));font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);
  text-transform:uppercase;color:color-mix(in srgb,var(--surface) 62%,transparent)}
.folge-nav{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;
  padding:0 0.5rem;pointer-events:none}
.folge-nav button{pointer-events:auto;width:2rem;height:2rem;border-radius:50%;border:0;
  background:var(--mk-c23);color:var(--surface);display:grid;place-items:center}
.folge-nav button:hover{background:var(--mk-c24)}
.folge-punkte{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:0.375rem}
.folge-punkte i{width:0.375rem;height:0.375rem;border-radius:50%;background:color-mix(in srgb,var(--surface) 40%,transparent)}
.folge-punkte i.an{background:var(--surface);width:1rem;border-radius:var(--radius)}

.abschnitt{margin-bottom:1.625rem}
.abschnitt h3{margin:0 0 0.5625rem;font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--mut);
  padding-bottom:0.4375rem;border-bottom:1px solid var(--line)}
.abschnitt p{margin:0 0 0.625rem;color:var(--mk-c20)}
.paare{display:grid;grid-template-columns:auto 1fr;gap:0.4375rem 1.125rem;font-size:var(--fs-base)}
.paare dt{color:var(--mut)}
.paare dd{margin:0}
.marken{display:flex;flex-wrap:wrap;gap:0.375rem}
.marken code,.marken span{font:11.5px/1.7 ui-monospace,"SF Mono",Menlo,monospace;background:var(--flaeche);
  border:1px solid var(--line);border-radius:var(--radius);padding:0.0625rem 0.4375rem;color:var(--mk-c25)}
.marken .mod{cursor:pointer}
.marken .mod:hover{border-color:var(--o);color:var(--o)}
.hinweis{color:var(--mut);font-size:var(--fs-base);font-style:italic}

/* == landing.css == */
/* Naberion Marktplatz — Startseite.
   Aufbau wie ein Schaufenster: eine grosse Bühne, darunter Reihen, Raster und Bänder
   im Wechsel. Alles liegt auf der dunklen Musterfläche, darum sind die Flächen hier
   Glas (helle Schleier) statt weisser Karten — weiss würde die Fläche zerschneiden. */

.landing{display:flex;flex-direction:column;gap:3.5rem;padding-bottom:2.5rem}
/* display:flex/grid schlagen das eingebaute [hidden] — darum ausdrücklich. */
[hidden]{display:none!important}

/* ── Abschnittskopf ─────────────────────────────────────────────────────── */
.abs-kopf{display:flex;align-items:flex-end;gap:0.875rem;margin-bottom:1.125rem}
.abs-kopf .auge{font:400 10px/1 'Exo 2',system-ui,sans-serif;letter-spacing:var(--tracking-wide);
  text-transform:uppercase;color:var(--o);margin-bottom:0.4375rem;display:block}
.abs-kopf h2{margin:0;font:300 22px/1.15 'Exo 2',system-ui,sans-serif;letter-spacing:var(--tracking);color:var(--mk-c4)}
.abs-kopf p{margin:0.25rem 0 0;font-size:var(--fs-base);color:var(--mk-c8);max-width:62ch}
.abs-kopf .mehr{margin-left:auto;flex:0 0 auto;border:1px solid color-mix(in srgb,var(--surface) 18%,transparent);
  background:color-mix(in srgb,var(--surface) 5%,transparent);color:var(--mk-c26);border-radius:var(--radius-pill);padding:0.4375rem 0.9375rem;font-size:var(--fs-sm);
  display:flex;align-items:center;gap:0.4375rem;white-space:nowrap}
.abs-kopf .mehr:hover{border-color:var(--o);color:var(--surface);background:color-mix(in srgb,var(--o) 18%,transparent)}

/* ── Bühne ──────────────────────────────────────────────────────────────── */
.buehne-slider{position:relative;border-radius:var(--radius-lg);overflow:hidden;
  background:color-mix(in srgb,var(--surface) 4.5%,transparent);border:1px solid color-mix(in srgb,var(--surface) 10%,transparent);
  box-shadow:var(--shadow-sm)}
.buehne-band{display:flex;transition:transform var(--dur-slow) cubic-bezier(.4,0,.2,1)}
.buehne-bild{flex:0 0 100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);
  align-items:center;gap:2.5rem;padding:2.625rem 0 2.625rem 2.75rem;min-height:22.5rem;position:relative;
  background:linear-gradient(120deg,oklch(.30 .12 var(--h) / .62),transparent 62%)}
.buehne-text{min-width:0;display:flex;flex-direction:column;gap:0.875rem;align-items:flex-start}
.buehne-text .zeile{display:flex;align-items:center;gap:0.8125rem}
.buehne-text .kachel{width:4rem;flex:0 0 64px;border-radius:var(--radius-md)}
.buehne-text .kachel .fuss{display:none}
.buehne-text .kachel .zeichen{padding:0.25rem}
.buehne-text .pillen{display:flex;gap:0.4375rem;flex-wrap:wrap}
.buehne-text h3{margin:0;font:200 40px/1.05 'Exo 2',system-ui,sans-serif;letter-spacing:var(--tracking);color:var(--surface)}
.buehne-text .lang{margin:0;font-size:var(--fs-md);line-height:1.6;color:var(--mk-c27);max-width:46ch;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.buehne-text .knoepfe{display:flex;gap:0.625rem;margin-top:0.375rem}
.buehne-text .kdaten{display:flex;gap:1.125rem;font-size:var(--fs-xs);color:var(--mk-c28);margin-top:0.125rem}
.buehne-text .kdaten b{color:var(--mk-c26);font-weight:var(--fw-med)}
.buehne-schau{position:relative;align-self:stretch;display:flex;align-items:center;overflow:hidden}
.buehne-schau img{width:100%;height:84%;object-fit:cover;object-position:left top;
  border-radius:var(--radius-md) 0 0 10px;border:1px solid color-mix(in srgb,var(--surface) 14%,transparent);border-right:0;
  box-shadow:var(--shadow-lg)}
.buehne-slider .pfeil{position:absolute;bottom:18px;z-index:var(--mkz-3);
  width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid color-mix(in srgb,var(--surface) 18%,transparent);
  background:color-mix(in srgb,var(--brand-night-2) 60%,transparent);color:var(--surface);display:grid;place-items:center;backdrop-filter:blur(6px)}
.buehne-slider .pfeil:hover{background:color-mix(in srgb,var(--brand-night-2) 90%,transparent);border-color:var(--o)}
.buehne-slider .pfeil.l{right:70px}.buehne-slider .pfeil.r{right:16px}
.buehne-punkte{position:absolute;left:44px;bottom:20px;z-index:var(--mkz-3);display:flex;gap:0.4375rem}
.buehne-punkte i{width:0.4375rem;height:0.4375rem;border-radius:50%;background:color-mix(in srgb,var(--surface) 30%,transparent);cursor:pointer}
.buehne-punkte i.an{width:1.375rem;border-radius:var(--radius);background:var(--o)}

/* ── Reihe (waagrechter Lauf) ───────────────────────────────────────────── */
.reihe{position:relative;margin:0 -0.375rem}
.reihe-lauf{display:flex;gap:1.125rem;overflow-x:auto;scroll-snap-type:x proximity;
  scroll-behavior:smooth;padding:0.25rem 0.375rem 0.75rem;scrollbar-width:none}
.reihe-lauf::-webkit-scrollbar{display:none}
.reihe-lauf>*{scroll-snap-align:start;flex:0 0 auto}
.reihe .pfeil{position:absolute;top:calc(50% - 12px);transform:translateY(-50%);z-index:var(--mkz-4);
  width:2.125rem;height:2.125rem;border-radius:50%;border:1px solid color-mix(in srgb,var(--surface) 16%,transparent);
  background:color-mix(in srgb,var(--brand-night-2) 78%,transparent);color:var(--surface);display:grid;place-items:center;backdrop-filter:blur(6px);
  opacity:0;transition:opacity var(--dur)}
.reihe:hover .pfeil{opacity:1}
.reihe .pfeil:hover{border-color:var(--o)}
.reihe .pfeil.l{left:-10px}.reihe .pfeil.r{right:-10px}
.reihe .pfeil[disabled]{opacity:0!important;pointer-events:none}

/* kleine Kachel in der Reihe */
.karte.klein{width:8.25rem}
.karte.klein .titel{font-size:var(--fs-sm)}
.karte.klein .unter{font-size:var(--fs-2xs)}

/* ── Schaukarte: Demo-Bildschirm mit übergreifendem Zeichen ─────────────── */
.karte.schau{width:21.25rem;gap:0;display:block;position:relative}
.karte.schau .rahmen{display:block;border-radius:var(--radius-md);overflow:hidden;border:1px solid color-mix(in srgb,var(--surface) 12%,transparent);
  background:var(--mk-c29);aspect-ratio:16/10;position:relative;
  box-shadow:var(--shadow-sm);transition:transform var(--dur) ease,box-shadow var(--dur) ease}
.karte.schau .rahmen img{width:100%;height:100%;object-fit:cover;object-position:left top;
  opacity:var(--op-strong);transition:transform var(--dur-slow) ease}
.karte.schau .rahmen::after{content:"";position:absolute;inset:0;
  background:linear-gradient(190deg,transparent 42%,color-mix(in srgb,var(--brand-night-2) 90%,transparent) 100%)}
.karte.schau:hover .rahmen{transform:translateY(-3px);box-shadow:var(--shadow-sm)}
.karte.schau:hover .rahmen img{transform:scale(1.035)}
.karte.schau .fuss-karte{position:relative;z-index:var(--mkz-2);margin:-2.375rem 0.875rem 0;display:flex;
  align-items:center;gap:0.75rem}
.karte.schau .kachel{width:4rem;flex:0 0 64px;border-radius:var(--radius-md)}
.karte.schau .kachel .fuss{display:none}
.karte.schau .beschriftung{display:block;min-width:0;padding-bottom:0.375rem}
.karte.schau .beschriftung .unter{display:flex}
.karte.schau .beschriftung .titel{display:block}
.karte.schau .beschriftung .unter{margin-top:0.1875rem}

/* ── Listenkarte ────────────────────────────────────────────────────────── */
.liste-raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(282px,1fr));gap:0.75rem}
.karte.zeile{flex-direction:row;align-items:center;gap:0.8125rem;padding:0.6875rem 0.875rem;
  background:color-mix(in srgb,var(--surface) 4.5%,transparent);border:1px solid color-mix(in srgb,var(--surface) 9%,transparent);border-radius:var(--radius-md);
  transition:background var(--dur-fast),border-color var(--dur-fast),transform var(--dur-fast)}
.karte.zeile:hover{background:color-mix(in srgb,var(--surface) 8.5%,transparent);border-color:color-mix(in srgb,var(--surface) 20%,transparent);transform:translateY(-2px)}
.karte.zeile .kachel{width:2.875rem;flex:0 0 46px;border-radius:var(--radius-md)}
.karte.zeile .kachel .fuss{display:none}
.karte.zeile .kachel .zeichen{padding:0.125rem}
.karte.zeile .rumpf{min-width:0;display:flex;flex-direction:column;gap:0.125rem}
.karte.zeile .titel{font-size:var(--fs-base)}
.karte.zeile .kurz{font-size:var(--fs-xs);color:var(--mk-c8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── Band (Steuerebene) ─────────────────────────────────────────────────── */
.band{border-radius:var(--radius-lg);padding:2rem 2.125rem;border:1px solid color-mix(in srgb,var(--o) 28%,transparent);
  background:linear-gradient(120deg,color-mix(in srgb,var(--o) 16%,transparent),color-mix(in srgb,var(--brand-night-2) 50%,transparent) 58%)}
.band .abs-kopf{margin-bottom:1.25rem}
.band-raster{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
.karte.band-karte{flex-direction:row;align-items:flex-start;gap:0.875rem;padding:1rem;
  background:color-mix(in srgb,var(--brand-night-2) 45%,transparent);border:1px solid color-mix(in srgb,var(--surface) 10%,transparent);border-radius:var(--radius-md)}
.karte.band-karte:hover{border-color:color-mix(in srgb,var(--o) 50%,transparent);background:color-mix(in srgb,var(--brand-night-2) 70%,transparent)}
.karte.band-karte .kachel{width:3.375rem;flex:0 0 54px;border-radius:var(--radius-md)}
.karte.band-karte .kachel .fuss{display:none}
.karte.band-karte .rumpf{min-width:0;display:flex;flex-direction:column;gap:0.3125rem}
.karte.band-karte .kurz{font-size:var(--fs-xs);line-height:1.5;color:var(--mk-c30)}

/* ── Fuss ───────────────────────────────────────────────────────────────── */
.landing-fuss{display:flex;justify-content:center;padding:0.375rem 0 0.625rem}
.landing-fuss button{border:1px solid color-mix(in srgb,var(--surface) 20%,transparent);background:color-mix(in srgb,var(--surface) 5%,transparent);
  color:var(--mk-c31);border-radius:var(--radius-pill);padding:0.75rem 1.625rem;font-size:var(--fs-base);letter-spacing:var(--tracking)}
.landing-fuss button:hover{border-color:var(--o);background:color-mix(in srgb,var(--o) 18%,transparent);color:var(--surface)}

@media (max-width:900px){
  .buehne-bild{grid-template-columns:1fr;gap:1.5rem;padding:2.125rem 1.875rem}
  .buehne-schau{display:none}
  .buehne-text h3{font-size:var(--fs-display)}
}
@media (prefers-reduced-motion: reduce){
  .buehne-band{transition:none}
  .reihe-lauf{scroll-behavior:auto}
}


/* ── Fenster-Schicht: die App füllt den Fenster-Rumpf des ERP (kein Viewport). ──
   Ersetzt den Mock-Rahmen des Clickdummys (rahmen.css). Grund + animierter Winkel
   liegen auf .rechts; die Muster-Fläche ist .app-grund darüber. */
.mk-app{position:relative;display:flex;min-height:0;height:100%;overflow:hidden;background:var(--weiss);animation:none}
/* Full-Bleed im Fenster-Rumpf: .mk-app ist seit 4b4a2e03 die Wurzel (vorher .wn-page-flex). Dieselbe
   Abmeldung wie windownav fuer .wn-page-flex, sonst kommen cc-win-body-Polster + 18px-::before-Spacer
   zurueck = Rand links/oben (Regression). .mk-app ist direktes Kind von .cc-win-body (window.js body.innerHTML). */
.cc-win-body:has(> .mk-app){padding:0!important;overflow:hidden}
.cc-win-body:has(> .mk-app)::before{display:none}
.cc-win-body > .mk-app{height:100%!important;min-height:0!important}
.mk-app>.rail{position:static;width:var(--rail);flex:0 0 var(--rail);height:auto;overflow-y:auto;overscroll-behavior:contain;z-index:var(--mkz-2)}
.rechts{flex:1;min-width:0;display:flex;flex-direction:column;position:relative;overflow:hidden;min-height:0}
.app-grund{z-index:var(--mkz-0)}
.kopf{position:relative;z-index:var(--mkz-2);flex:0 0 3.75rem}
.lauf{flex:1;min-height:0;overflow-y:auto;position:relative;z-index:var(--mkz-1)}
.schirm{position:absolute}
.schiene{position:absolute;width:50%;min-width:23.75rem}

/* ── Ergänzungen des Ports: Screenshot-Ersatz + Kopfkarte-Text + Zusatz-Pillen ──
   Wo die Vorlage Demo-Screenshots zeigte, steht ein farbiges Marken-Feld (Hue je Modul). */
.buehne-schau,.rahmen,.held{position:relative}
.mk-ersatz{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;
  background:linear-gradient(135deg,oklch(.46 .13 var(--h)),oklch(.27 .1 var(--h)))}
.mk-ersatz .n{position:absolute;width:62%;opacity:var(--op-faint);pointer-events:none}
.mk-ersatz .n .cc-brand-n{fill:var(--surface)}
.mk-ersatz>.bi{font-size:var(--fs-hero);color:var(--surface);opacity:var(--op-soft)}
.kopfkarte-text{flex:1 1 12rem;min-width:0}
.abschnitt h3 .anzahl{color:var(--mk-c32);font-weight:var(--fw-normal)}
.mk-marke.an{background:color-mix(in srgb,var(--o) 14%,transparent);border-color:color-mix(in srgb,var(--o) 30%,transparent);color:var(--mk-c33)}
.mk-marke.an .an-punkt{background:var(--o)}
.mk-marke.fork{background:color-mix(in srgb,var(--surface) 10%,transparent);border-color:color-mix(in srgb,var(--surface) 20%,transparent)}

/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */

/**
 *  Default styles for xterm.js
 */

.xterm {
    cursor: text;
    position: relative;
    user-select: none;
    -ms-user-select: none;
    -webkit-user-select: none;
}

.xterm.focus,
.xterm:focus {
    outline: none;
}

.xterm .xterm-helpers {
    position: absolute;
    top: 0;
    /**
     * The z-index of the helpers must be higher than the canvases in order for
     * IMEs to appear on top.
     */
    z-index: 5;
}

.xterm .xterm-helper-textarea {
    padding: 0;
    border: 0;
    margin: 0;
    /* Move textarea out of the screen to the far left, so that the cursor is not visible */
    position: absolute;
    opacity: 0;
    left: -9999em;
    top: 0;
    width: 0;
    height: 0;
    z-index: -5;
    /** Prevent wrapping so the IME appears against the textarea at the correct position */
    white-space: nowrap;
    overflow: hidden;
    resize: none;
}

.xterm .composition-view {
    /* TODO: Composition position got messed up somewhere */
    background: #000;
    color: #FFF;
    display: none;
    position: absolute;
    white-space: nowrap;
    z-index: 1;
}

.xterm .composition-view.active {
    display: block;
}

.xterm .xterm-viewport {
    /* On OS X this is required in order for the scroll bar to appear fully opaque */
    background-color: #000;
    overflow-y: scroll;
    cursor: default;
    position: absolute;
    right: 0;
    left: 0;
    top: 0;
    bottom: 0;
}

.xterm .xterm-screen {
    position: relative;
}

.xterm .xterm-screen canvas {
    position: absolute;
    left: 0;
    top: 0;
}

.xterm .xterm-scroll-area {
    visibility: hidden;
}

.xterm-char-measure-element {
    display: inline-block;
    visibility: hidden;
    position: absolute;
    top: 0;
    left: -9999em;
    line-height: normal;
}

.xterm.enable-mouse-events {
    /* When mouse events are enabled (eg. tmux), revert to the standard pointer cursor */
    cursor: default;
}

.xterm.xterm-cursor-pointer,
.xterm .xterm-cursor-pointer {
    cursor: pointer;
}

.xterm.column-select.focus {
    /* Column selection mode */
    cursor: crosshair;
}

.xterm .xterm-accessibility:not(.debug),
.xterm .xterm-message {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    z-index: 10;
    color: transparent;
    pointer-events: none;
}

.xterm .xterm-accessibility-tree:not(.debug) *::selection {
  color: transparent;
}

.xterm .xterm-accessibility-tree {
  user-select: text;
  white-space: pre;
}

.xterm .live-region {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.xterm-dim {
    /* Dim should not apply to background, so the opacity of the foreground color is applied
     * explicitly in the generated class and reset to 1 here */
    opacity: 1 !important;
}

.xterm-underline-1 { text-decoration: underline; }
.xterm-underline-2 { text-decoration: double underline; }
.xterm-underline-3 { text-decoration: wavy underline; }
.xterm-underline-4 { text-decoration: dotted underline; }
.xterm-underline-5 { text-decoration: dashed underline; }

.xterm-overline {
    text-decoration: overline;
}

.xterm-overline.xterm-underline-1 { text-decoration: overline underline; }
.xterm-overline.xterm-underline-2 { text-decoration: overline double underline; }
.xterm-overline.xterm-underline-3 { text-decoration: overline wavy underline; }
.xterm-overline.xterm-underline-4 { text-decoration: overline dotted underline; }
.xterm-overline.xterm-underline-5 { text-decoration: overline dashed underline; }

.xterm-strikethrough {
    text-decoration: line-through;
}

.xterm-screen .xterm-decoration-container .xterm-decoration {
	z-index: 6;
	position: absolute;
}

.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer {
	z-index: 7;
}

.xterm-decoration-overview-ruler {
    z-index: 8;
    position: absolute;
    top: 0;
    right: 0;
    pointer-events: none;
}

.xterm-decoration-top {
    z-index: 2;
    position: relative;
}

/* Terminals — NUR Anordnung. Aussehen kommt aus den Kern-Bausteinen (Knöpfe, Chips, Plaketten, Rail,
   Textarea, Design::muted/heading, das Überblend-Feld Design::overlay). Datenfarben (Anwesenheits-Punkt)
   setzt das JS als Laufzeitwert. */
.tm-page .tm-main { display: flex; flex-direction: column; min-height: 0; }
/* „Verbindung"-Pane (#tmHost = Naberion-Dienst-Status) füllt die Höhe. Die Mac-mini-Panes (Terminal-Raster,
   „Wer arbeitet", Gedächtnis, Zugänge, Chat auf dem Mac mini, Arbeits-Overlay, Kollisionswarnung) sind 1.55.0
   aus dem Hauptfenster entfernt — Gedächtnis/Zugänge öffnen jetzt ihre eigene App. Darum keine Rest-Regeln mehr. */
.tm-page .tm-host { flex: 1; min-height: 0; overflow: auto; }

/* ── Verlauf statt Projektbaum (linke Sidebar der Standard-App) ── */
/* D3 (02.10.2026): die Rail ist eine eigene Scroll-Spalte; „Offen" darf von „Verlauf" nicht
   zusammengedrückt werden. Jede nicht-leere Liste bekommt eine Mindesthöhe und bleibt für sich
   scrollbar; „Verlauf" (#tmHistList) füllt den Rest. Nur .tm-page .tm-rail / .tm-rail .tm-hist-list
   anfassen — .wn-sidebar/.wn-folders gehören windownav. */
.tm-page .tm-rail { display: flex; flex-direction: column; min-height: 0; overflow-y: auto; }
.tm-hist-actions { display: flex; flex-direction: column; gap: var(--sp-1); margin-bottom: var(--sp-2); }
.tm-hist-list { display: flex; flex-direction: column; gap: var(--sp-1); min-height: 0; overflow-y: auto; }
.tm-rail .tm-hist-list:not(:empty) { min-height: var(--sz-100); flex: 0 1 auto; }
.tm-rail #tmHistList { flex: 1 1 auto; }

/* ── Übersicht A (02.10.2026): Toolbar oben, links die Verlaufs-Sidebar im Content, rechts die offenen Fenster als Kacheln ── */
.tm-start-toolbar { margin-bottom: var(--sp-4); }
.tm-histc-list { display: flex; flex-direction: column; gap: var(--sp-1); }
.tm-histc-ico { flex: 0 0 auto; }
.tm-histc-col { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.tm-histc-titel { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tm-tilegrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--sz-200), 1fr)); gap: var(--sp-4); align-content: start; }

/* ── Fenster-Rumpf ?win=code|chat (nur Anordnung; Aussehen aus Kern-Bausteinen) ── */
.tm-winpage { display: flex; flex-direction: column; height: 100%; min-height: 0; gap: var(--sp-2); }
.tm-winpage .tm-win-head { flex: none; }
.tm-winpage .tm-win-ctl { display: inline-flex; align-items: center; }
.tm-win-body { flex: 1; min-height: 0; display: flex; }
.tm-win-console { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.tm-win-console .cc-console-body { flex: 1; min-height: 0; }
.tm-win-termbox { height: 100%; padding: var(--sp-1) var(--sp-2); box-sizing: border-box; }
.tm-win-termbox .xterm { height: 100%; }
.tm-win-log { flex: 1; min-height: 0; }
.tm-winpage .tm-win-foot { flex: none; }
.tm-win-input { flex: 1; min-width: 0; resize: none; }
.tm-win-emptywrap { flex: 1; display: flex; align-items: center; justify-content: center; }
/* Kopier-Knopf am Code-Block oben rechts (Struktur/Farben aus syntax.css). */
.tm-win-codewrap { position: relative; }
.tm-win-codewrap .tm-win-copy { position: absolute; top: var(--sp-1); right: var(--sp-1); z-index: var(--z-raised); }

/* Schmale Kopf-Eingaben (API-Key / Arbeitsordner) — passen neben Regler/Modell in die Kopfzeile. */
.tm-win-apikey-in { max-width: 24ch; }

/* ── Multi-KI-Auswahl (nur Anordnung; Aussehen der Bausteine kommt aus dem Kern) ── */
.tm-win-panelbox { flex: none; }
/* Schlüssel-Box des alten Fensters im Schlüsselweg „neu“ (P0c): klappt unter dem Kopf auf, wie die KI-Auswahl. */
.tm-win-keybox { flex: none; }
.tm-panel-row { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; padding: var(--sp-1) 0; }
.tm-panel-row .tm-panel-mode { flex: none; }
.tm-panel-row .tm-panel-key { flex: 1; min-width: var(--sz-220); }
.tm-panel-key-in { width: 100%; }

/* ── KI-Chat ?win=kichat (KI-Chat-Plan P3a) — nur Anordnung. Aussehen (Rail, Muster, Blasen, Eingabe-Karte)
      kommt aus den Kern-Bausteinen; hier keine Regel auf Kern-Klassen (cc-chat*, cc-muster*). ── */
.tm-kc { --tm-kc-spalte: calc(var(--sz-560) * 2); }
.tm-kc .tm-kc-aktionen { display: flex; flex-direction: column; gap: var(--sp-1); margin-bottom: var(--sp-2); }
.tm-kc .tm-kc-histsuche { margin-bottom: var(--sp-2); }
.tm-kc .tm-kc-sentinel { height: var(--sp-1); }
.tm-kc-main { position: relative; overflow: hidden; min-height: 0; }
.tm-kc-grund { position: absolute; inset: 0; }
/* Der Verlauf beginnt UNTER der Toolbar-Zone (Abstand statt Balken, C2.4.2): vorher lief der gescrollte Text unter ☀/☾/Zahnrad
   hindurch, weil das Polster nur beim Scrollstand 0 Platz hielt und die Maske nur 24 px abdeckt (R3). Der Muster-Grund liegt
   hinter allem und läuft durch den Streifen weiter — optisch bleibt es „ohne Balken". Das Innenpolster = Maskenhöhe (cc-fade-top). */
.tm-kc-scroll { position: relative; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; margin-top: var(--sp-12); padding: var(--sz-24) var(--sp-10) var(--sp-4); }
.tm-kc-spalte { max-width: var(--tm-kc-spalte); margin-inline: auto; }
.tm-kc-foot { position: relative; flex: none; padding: 0 var(--sp-10) var(--sp-6); }
.tm-kc-eingabe { flex: 1; min-width: 0; resize: none; }
.tm-kc-laden { flex: 1; display: flex; align-items: center; justify-content: center; }
.tm-kc-weg { display: flex; flex-direction: column; align-items: center; gap: var(--sp-4); }
.tm-kc-wegknoepfe { display: flex; gap: var(--sp-2); }

/* ── KI-Chat P5: Eingabe-Zeile, Live-Text und Bündel. Nur Anordnung, Abstände und Umbruch; Knöpfe, Chips, Marken,
      Karussell und Nachrichten sind Kern-Bausteine mit eigenem Aussehen. ── */
.tm-kc-felder { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-2); }
.tm-kc-kifelder { display: contents; }
.tm-kc-kifeld { display: inline-flex; align-items: center; gap: var(--sp-1); }
.tm-kc-send { display: inline-flex; align-items: center; gap: var(--sp-3); margin-inline-start: auto; }
.tm-kc-live { white-space: pre-wrap; overflow-wrap: anywhere; }
.tm-kc-buendel { display: flex; flex-direction: column; gap: var(--sp-2); margin-block: var(--sp-3); }
.tm-kc-buendel-kopf { display: flex; align-items: center; gap: var(--sp-2); }
.tm-kc-reiter-av, .tm-kc-reiter-st { display: inline-flex; align-items: center; }
.tm-kc-reiter-name { margin-inline: var(--sp-1); }
/* Kennzeichen je KI unter der Zusammenfassung (C2.8.2): Marke + Name + Chip, umbrechend. */
.tm-kc-kennzeichen { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-4); margin-top: var(--sp-2); }
.tm-kc-kennzeichen-ki { display: inline-flex; align-items: center; gap: var(--sp-2); }
.tm-kc-kennzeichen-av { display: inline-flex; }
.tm-kc-sitzung { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-2); }

/* ── KI-Chat P3c: Toolbar über dem Muster (rechts oben, ohne Balken) und Anordnung im Einstellungs-Hub.
      Nur Lage und Abstände; Knöpfe, Gruppen und Felder sind Kern-Bausteine. Der Hub liegt in der Sidebar
      (ausserhalb der Chat-Wurzel), deshalb stehen seine Hüllen nicht unter .tm-kc. ── */
.tm-kc-toolbar { position: absolute; top: var(--sp-5); right: var(--sp-8); z-index: var(--z-raised); display: flex; gap: var(--sp-3); }
.tm-kc-toolbar-links { position: absolute; top: var(--sp-5); left: var(--sp-8); z-index: var(--z-raised); display: flex; }
.tm-kc-schrift { display: inline-flex; align-items: center; gap: var(--sp-2); }
.tm-kc-hubtitel { display: inline-flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2) var(--sp-4); }

/* ── KI-Chat P4a: Hub-Tab „KIs & Modelle" — Anbieter-Kopf und Verbindungsblöcke. Nur Anordnung und Abstände;
      Plaketten, Grafik (cc-verbindung), Felder und Knöpfe sind Kern-Bausteine mit eigenem Aussehen. Einspaltig im
      Hub (Standardbreite), zweispaltig erst ab der Breite des Layer-2-Blatts (Container-Breite, nicht Bildschirm). ── */
.tm-kc-kikopf { display: flex; align-items: center; gap: var(--sp-3); margin-bottom: var(--sp-4); }
.tm-kc-vb { display: flex; flex-direction: column; gap: var(--sp-3); padding: var(--sp-4) 0; }
.tm-kc-vb-kopf { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-3); }
.tm-kc-vb-status { margin-left: auto; }
.tm-kc-vb-rumpf { display: flex; flex-direction: column; gap: var(--sp-4); }
.tm-kc-vb-details { display: flex; flex-direction: column; gap: var(--sp-3); min-width: 0; }
.tm-kc-vb-fluss { display: flex; flex-direction: column; gap: var(--sp-1); min-width: 0; }
.tm-kc-vb-flusstext { display: flex; flex-direction: column; align-items: center; text-align: center; }
.tm-kc-vb-knoepfe { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.tm-kc-vb-breit .tm-kc-vb-rumpf { display: grid; grid-template-columns: repeat(auto-fit, minmax(var(--sz-240), 1fr)); align-items: start; }
.tm-kc-vb-modelle { display: flex; flex-direction: column; gap: var(--sp-1); }
.tm-kc-vb-modell { display: flex; align-items: center; gap: var(--sp-2); min-height: var(--sz-28); }
.tm-kc-mwert { margin-left: var(--sp-2); }
/* P4c: Verbrauch gegen Konto-Limit bzw. Gesamtbudget — Satz über dem Kern-Balken (cc-progress). */
.tm-kc-budget { display: flex; flex-direction: column; gap: var(--sp-1); }
/* P6b: ERP-Zeile je KI im Hub-Tab „KIs" (Schalter + Hinweise untereinander) und die Anbieter-Schalter der Obergrenze. */
.tm-kc-erp { display: flex; flex-direction: column; gap: var(--sp-2); }
.tm-erp-anbieter { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-5); }
/* P6b: Vorab-Frage (C2.10) — Karteninhalt, Schrittkopf, Fuss mit Tipp/Zurück links und Überspringen rechts, Tabellenzeile
   Name + „Wählen". Das Kachel-Raster bleibt das des Kerns (Karten ab 260 px; die Variante size md gehört dem Besitzer). */
.tm-kc-vorab { display: flex; flex-direction: column; gap: var(--sp-4); white-space: normal; }
.tm-kc-vorab section { display: flex; flex-direction: column; gap: var(--sp-4); }
.tm-kc-vorab-kopf { display: flex; flex-direction: column; gap: var(--sp-1); }
.tm-kc-vorab-fuss { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--sp-2); }
.tm-kc-vorab-tabelle { min-width: 0; }
.tm-kc-wahlzeile { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); min-width: 0; }
.tm-kc-vorab-schritte { display: flex; flex-direction: column; gap: var(--sp-2); }
.tm-kc-ladeschritt { display: flex; align-items: center; gap: var(--sp-2); }

/* ── KI-Chat P7c: Arbeitsfläche (rechte Rail) und Ablage (C2.11, C5.3.1). Nur Anordnung — Farben, Masse, Kopf
      und Breite liefern Kern-Bausteine und Tokens (railEnd, segmented, listTable, fileChip, feedItem). ── */
.tm-kc [data-tm-kc-dock] { display: flex; flex-direction: column; min-height: 0; }
.tm-kc [data-tm-kc-dock][hidden] { display: none; }
.tm-kc .tm-kc-dockreiter { flex: none; margin: var(--sp-2) var(--sp-3); }
.tm-kc .tm-kc-dockleiste { flex: none; margin: 0 var(--sp-3) var(--sp-2); }
.tm-kc .tm-kc-dockliste { flex: none; margin: 0 var(--sp-3); max-height: var(--sz-240); overflow-y: auto; }
.tm-kc .tm-kc-dockliste:empty { display: none; }
.tm-kc .tm-kc-dockzeile { cursor: pointer; }
.tm-kc .tm-kc-dockbody { flex: 1; min-height: 0; min-width: 0; overflow: auto; padding: var(--sp-2) var(--sp-3) var(--sp-4); }
.tm-kc .tm-kc-leiste { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2); min-width: 0; }
/* Der Pfad hat eine Grundbreite (--sz-180): reicht die Zeile nicht, brechen „Datei von …" und die Knöpfe in die nächste Zeile um,
   statt den Pfad auf wenige Pixel zu quetschen (flex-basis 0 liess ihn Silbe für Silbe umbrechen, KI-Chat R6). */
.tm-kc .tm-kc-leiste-pfad { flex: 1 1 var(--sz-180); min-width: 0; overflow-wrap: anywhere; }
.tm-kc .tm-kc-leiste-ico, .tm-kc .tm-kc-leiste-avatare, .tm-kc .tm-kc-leiste-chips { display: inline-flex; align-items: center; gap: var(--sp-1); }
/* P7d-2 (C2.11.4): der Playground-Bereich — nur Anordnung; Knöpfe, Hinweis und Aufklapper sind Kern-Bausteine. Aufgeklappt
   bricht er unter die Leiste um und bleibt ohne waagerechten Überlauf. */
.tm-kc .tm-kc-pg { flex-basis: 100%; min-width: 0; }
.tm-kc .tm-kc-pgzeile { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); min-width: 0; }
.tm-kc .tm-kc-pgablauf, .tm-kc .tm-kc-pgstale { flex-basis: 100%; min-width: 0; overflow-wrap: anywhere; }
.tm-kc-pgdateien { display: flex; flex-direction: column; gap: var(--sp-1); }
.tm-kc .tm-kc-datei { cursor: pointer; }
.tm-kc .tm-kc-datei-aus { opacity: var(--op-dim); }
.tm-kc .tm-kc-dateifehler { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-1); }
.tm-kc .tm-kc-dateifehler-knoepfe { display: inline-flex; flex-wrap: wrap; gap: var(--sp-2); }
.tm-kc .tm-kc-plankopf { margin-bottom: var(--sp-2); }
.tm-kc .tm-kc-planschritt { display: flex; align-items: flex-start; gap: var(--sp-2); }
.tm-kc .tm-kc-planschritt-st { display: inline-flex; flex: none; padding-top: var(--sp-0); }
/* Todo-Schritt einer Antwort (chatStep art todo): eine Zeile je Plan-Punkt, Status-Symbol + Text (C2.7 Stufe 1). */
.tm-kc .tm-kc-todozeile { display: flex; align-items: flex-start; gap: var(--sp-2); }
.tm-kc .tm-kc-todozeile-st { display: inline-flex; flex: none; padding-top: var(--sp-0); }
.tm-kc .tm-kc-quelle-ico { display: inline-flex; align-items: center; }

/* ── KI-Chat P8b: Teilen (C5.3.2, C5.4.4) — nur Anordnung und Abstände. Wähler, Felder, Knöpfe, Hinweise, Tabelle und Avatare
      sind Kern-Bausteine mit eigenem Aussehen; der Hub liegt in der Sidebar (ausserhalb der Chat-Wurzel), die Datei-Leiste in
      der Arbeitsfläche (enge Rail: gestapelte Felder über den forms-Wrapper cc-form-stack). ── */
.tm-kc-teilen { display: flex; flex-direction: column; gap: var(--sp-3); min-width: 0; }
.tm-kc-vormerk:empty, .tm-kc-sharelistplatz:empty { display: none; }
.tm-kc-vormerkzeile { display: flex; flex-direction: column; gap: var(--sp-2); min-width: 0; padding: var(--sp-3) 0; }
.tm-kc-vormerk-knoepfe { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); }
.tm-kc-teilenbox { display: flex; flex-direction: column; gap: var(--sp-1); flex-basis: 100%; min-width: 0; }
.tm-kc-teilenbox .tm-kc-teilen { padding-top: var(--sp-2); }
.tm-kc-via { display: block; margin-bottom: var(--sp-1); }
/* Hub ohne Netz (R4): „Erneut versuchen“ unter dem Kern-Leerzustand der Sidebar, mit Abstand zum Satz. */
.tm-kc-hubretry { margin-top: var(--sp-6); }
/* Coding-Terminal (C, 02.10.2026, Florian): ganzes Fenster dunkel und ohne Innen-Padding → mehr Konsolenfläche (C3). Die
   Kopfleiste (Titel, Zugang, Modell, Einstellungen, Stopp) frisst keinen Platz mehr: sie schwebt oben rechts über der
   Konsole (C2, höherer z-index statt grauer Leiste). Positionierungs-Anker ist die Terminal-Bühne (.tm-win-codestage,
   position:relative) — NICHT das ganze Fenster: so schwebt der Kopf nur über dem Terminal und verdeckt die Status-
   Hinweise (Nur-lesen-Warnung, Neustart, Neues Modul) darüber nicht mehr, auch bei schmalem Fenster. */
.tm-winpage.tm-win-code { position: relative; gap: 0; background: var(--console-bg); }
.tm-winpage.tm-win-code .tm-win-codestage { position: relative; flex: 1; min-height: 0; display: flex; flex-direction: column; }
.tm-winpage.tm-win-code .tm-win-body { padding: 0; }
.tm-winpage.tm-win-code .tm-win-termbox { padding: 0; }
.tm-winpage.tm-win-code .tm-win-head-code { position: absolute; top: var(--sp-2); right: var(--sp-2); z-index: var(--z-raised); width: auto; max-width: calc(100% - var(--sp-4)); }
/* C2/C3 (Florian 02.10.): der schwebende Kopf gehoert zur dunklen Konsole -- dark in BEIDEN Modi (im Hellmodus sonst eine weisse Box ueber dem dunklen Terminal, widerspricht "ganzes Fenster dark"), Titel in Konsolenschrift lesbar. Konsolen-Tokens (keine erfundenen Farben, kein --border/--shadow -- Modul malt keine Kern-Optik). */
.tm-winpage.tm-win-code .tm-win-head-code { background: var(--console-bg); color: var(--console-fg); border-radius: var(--radius-md); }
.tm-winpage.tm-win-code .tm-win-head-code .cc-etitle { color: var(--console-fg); }
/* C3 (Florian 02.10., Nachtrag 04.10.): auch die STEUER-Elemente im schwebenden Kopf gehoeren zur dunklen Konsole --
   im Hellmodus blieben das Modell-Auswahlfeld (.mpp-trigger) weiss und die Umschalter/Knoepfe (.cc-seg/.ac-btn-action)
   hellgrau, also helle Kaesten ueber dem dunklen Terminal ("weisse Box", Audit r6 #12), was "ganzes Fenster dark"
   widerspricht. Darum Konsolen-Oberflaeche (aus Konsolen-Tokens abgeleitet, wie die Chat-Blasen im Kern -- keine erfundene
   Farbe), in BEIDEN Modi gleich. Der aktive Umschalter bleibt im CI-Orange (Akzent), Hover ueber --console-sel. */
.tm-winpage.tm-win-code .tm-win-head-code .cc-seg,
.tm-winpage.tm-win-code .tm-win-head-code .ac-btn-action {
  background: color-mix(in srgb, var(--console-fg) 12%, var(--console-bg));
  color: var(--console-fg);
  border-color: var(--console-sel);
}
/* Das Modell-Auswahlfeld (.mpp-trigger) setzt seine helle Oberflaeche im Kern mit !important (background --surface,
   color --grey-800, border --grey-200 je !important). Darum hier ebenfalls !important -- nicht um Kern-Optik zu
   erfinden, sondern um dieselbe Deklaration im Konsolen-Kontext zu gewinnen (abgeleitete Konsolen-Oberflaeche). */
.tm-winpage.tm-win-code .tm-win-head-code .mpp-trigger {
  background: color-mix(in srgb, var(--console-fg) 12%, var(--console-bg)) !important;
  color: var(--console-fg) !important;
  border-color: var(--console-sel) !important;
}
.tm-winpage.tm-win-code .tm-win-head-code .mpp-trigger .mpp-trigger-text { color: var(--console-fg); }
.tm-winpage.tm-win-code .tm-win-head-code .mpp-trigger .mpp-trigger-arrow,
.tm-winpage.tm-win-code .tm-win-head-code .cc-seg-btn { color: var(--console-fg); }
.tm-winpage.tm-win-code .tm-win-head-code .mpp-trigger:hover { border-color: var(--console-fg) !important; }
.tm-winpage.tm-win-code .tm-win-head-code .ac-btn-action:hover,
.tm-winpage.tm-win-code .tm-win-head-code .cc-seg-btn:hover { background: var(--console-sel); color: var(--console-fg); }
/* Coding-Terminal-Kopf (1.52.0): kleiner Abstand Titel→Steuerung. */
.tm-winpage .tm-win-head-code { row-gap: var(--sp-2); }
.tm-winpage .tm-win-head-code .tm-win-gap { flex: 0 0 var(--sp-3); }
.tm-winpage .tm-win-etitle { min-width: 8ch; max-width: 40ch; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
/* C2 (Florian 02.10., WebKit-Abgleich): der schwebende Coding-Kopf blieb in Chrome einzeilig, in WebKit fiel das Zahnrad in
   eine zweite Zeile. Ursache: der Kopf ist absolut positioniert mit width:auto (shrink-to-fit) + flex-wrap:wrap — WebKit
   berechnet die shrink-to-fit-Breite eines umbrechenden Flex-Behälters nach dem BREITESTEN Kind statt nach der Summe und
   bricht darum zu früh um; min-width:0 am Titel allein genügt nicht. Lösung: der Kopf bricht NICHT mehr um (nowrap, in
   BEIDEN Engines gleich), die Steuer-Elemente behalten ihre Grösse (flex:none), allein der Titel schrumpft zuerst mit
   Ellipse (min-width:0). So bleibt die Leiste einzeilig; bei sehr schmalem Fenster kürzt der Titel statt umzubrechen. */
.tm-winpage.tm-win-code .tm-win-head-code { flex-wrap: nowrap; }
.tm-winpage.tm-win-code .tm-win-head-code > * { flex: none; }
.tm-winpage.tm-win-code .tm-win-head-code .tm-win-etitle { min-width: 0; flex: 0 1 auto; }
.tm-winpage .tm-win-etitle:focus { text-overflow: clip; }
.tm-winpage .tm-win-neustart { flex: none; }
/* Bau-Stand + „Neues Modul"-Frage (1.54.0): feste Zeilen unter dem Kopf wie der Neustart-Hinweis; das Kennungsfeld schmal. */
.tm-winpage .tm-win-coding, .tm-winpage .tm-win-neumodul { flex: none; }
.tm-winpage .tm-win-neumodul .cc-infobox-body, .tm-winpage .tm-win-coding .cc-infobox-body { display: flex; flex-direction: column; gap: var(--sp-2); }
.tm-winpage .tm-win-neumodul-in { max-width: 32ch; }
/* Hub-Tabellen: eine Zeile ist ein Link (Skill lesen, memory-Eintrag öffnen — 1.55.0). */
.tm-kc-skills tr.terminals-skill-row, .tm-kc-tmtabelle tr[data-tm-kc-tmid] { cursor: pointer; }

/* Theme — Übersichts-Kacheln + ein erkennbares Mini-ERP als Vorschau. theme ist category:core
   (provides.design) und darf das Aussehen seiner eigenen .thm-* definieren. Die Theme-Farben stehen
   NICHT inline und nicht als Laufzeit-<style>, sondern als statische Pro-Preset-Token-Klassen unten
   (.thm-prev[data-theme="<slug>"] setzt --tp-s Fläche, --tp-w Desktop, --tp-l Linien, --tp-o Primär/Aktion,
   --tp-i Sekundär/Struktur, --tp-ink Text, --tp-mut gedämpfter Text). Oben nur Struktur + Kern-Tokens.
   Die winzigen Innenabstände der Vorschau sind in em gehalten (skaliert mit der Kachelgrösse), nicht in
   festen px. Farben = Themes::previewColors(); ein Theme-PAKET bringt für die exakte Vorschau eine eigene
   .thm-prev[data-theme="<slug>"]-Regel mit (z. B. modules/themeplumgold). Bei Preset-Änderung beide
   Stellen nachziehen. */

/* ── Inhaltsspalte des Fensters (rechts der windownav-Navigation) ── */
.thm-main{padding:var(--sp-6);overflow:auto}

/* ── Übersichts-Raster ── */
.thm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--sz-280),1fr));gap:var(--sp-7)}
.thm-grid-compact{grid-template-columns:repeat(auto-fill,minmax(var(--sz-140),1fr));gap:var(--sp-4)}

/* ── Wählbare Kachel (Button) mit farbigem Aktiv-Rahmen statt Radio ── */
.thm-tile{
  display:flex;flex-direction:column;gap:var(--sp-3);
  padding:var(--sp-3);border:2px solid var(--border);border-radius:var(--radius);
  background:var(--surface);cursor:pointer;text-align:left;width:100%;color:var(--ink);
  transition:border-color var(--dur-fast),box-shadow var(--dur-fast);
}
.thm-tile:hover{border-color:var(--o);box-shadow:var(--shadow-sm)}
.thm-tile-on{border-color:var(--o);box-shadow:var(--shadow-sm)}
.thm-tile[disabled]{opacity:var(--op-muted);cursor:default}
.thm-tile-cap{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.thm-tile-compact{gap:var(--sp-2);padding:var(--sp-2)}
/* Zahnrad je Kachel (oben rechts) — öffnet rechts die Feineinstellung. Eigener Knopf NEBEN dem
   Kachel-Button, deshalb über ihn gelegt. Hover kommt vom Kern-iconBtn. */
.thm-tile-wrap{position:relative}
.thm-gear{position:absolute;top:var(--sp-3);right:var(--sp-3);background:var(--surface)}

/* ── Große Vorschau im Detail-Panel ── */
.thm-detail-prev{display:block}

/* ── Die Vorschau: ein erkennbares Mini-ERP mit Fake-Daten (Navi | Fenster[Kopf+Seite+Inhalt]).
      Rein dekorativ (aria-hidden). Farben ausschliesslich über die --tp-*-Token-Klassen unten. ── */
.thm-prev{
  /* Rückfall für Themes OHNE eigene Palette-Klasse: die wirkenden Kern-Tokens, damit keine Kachel
     leer bleibt. Ein Paket bringt eine eigene .thm-prev[data-theme="<slug>"]-Regel mit (höhere
     Spezifität gewinnt). */
  --tp-s:var(--surface);--tp-w:var(--grey-100);--tp-l:var(--border);
  --tp-o:var(--o);--tp-i:var(--info);--tp-ink:var(--ink);--tp-mut:var(--muted);
  /* Querformatig (breiter als hoch), damit die Mini-ERP-Vorschau nicht gestaucht wirkt und ihr Inhalt
     mehr Platz bekommt. Detail- und Kompakt-Vorschau setzen weiter eine feste Höhe (unten). */
  display:flex;width:100%;aspect-ratio:16/10;
  border:1px solid var(--tp-l);border-radius:var(--radius);overflow:hidden;background:var(--tp-w);
  font-size:var(--sz-9);line-height:1.25;color:var(--tp-ink);
}
.thm-detail-prev .thm-prev{height:var(--sz-220);font-size:var(--sz-11)}
.thm-tile-compact .thm-prev{height:var(--sz-120);font-size:var(--sz-7)}

/* Navigation links — Einträge mit Icon-Kästchen + Label, aktiver Eintrag in --tp-o */
.thm-prev-nav{
  flex:0 0 30%;min-width:0;background:var(--tp-s);border-right:1px solid var(--tp-l);
  display:flex;flex-direction:column;gap:.22em;padding:var(--sp-2) var(--sp-1);
}
.thm-prev-navitem{
  display:flex;align-items:center;gap:.4em;padding:.22em .4em;border-radius:var(--radius);
  color:var(--tp-mut);overflow:hidden;white-space:nowrap;
}
.thm-prev-ico{flex:0 0 auto;width:1.1em;height:1.1em;border-radius:var(--radius);background:var(--tp-mut);opacity:var(--op-muted)}
.thm-prev-navitem .thm-prev-txt{overflow:hidden;text-overflow:ellipsis}
.thm-prev-navitem.on{background:color-mix(in srgb,var(--tp-o) 15%,transparent);color:var(--tp-o)}
.thm-prev-navitem.on .thm-prev-ico{background:var(--tp-o);opacity:1}

/* Fenster rechts — Kopf (Punkte + Titel), Seitenspalte (Filter-Chips), Inhalt (Aktionsbalken + Tabelle) */
.thm-prev-win{
  flex:1;min-width:0;display:flex;flex-direction:column;margin:var(--sp-2);background:var(--tp-s);
  border:1px solid var(--tp-l);border-radius:var(--radius);overflow:hidden;
}
.thm-prev-head{flex:0 0 auto;display:flex;align-items:center;gap:var(--sp-2);padding:.33em var(--sp-2);border-bottom:1px solid var(--tp-l)}
.thm-prev-dots{display:flex;gap:.22em;flex:0 0 auto}
.thm-prev-dots i{width:.55em;height:.55em;border-radius:50%;background:var(--tp-l)}
.thm-prev-title{font-weight:var(--fw-bold);color:var(--tp-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thm-prev-cols{flex:1;display:flex;min-height:0}
.thm-prev-side{
  flex:0 0 34%;min-width:0;background:var(--tp-w);border-right:1px solid var(--tp-l);
  display:flex;flex-direction:column;gap:.33em;padding:var(--sp-2);
}
.thm-prev-slabel{color:var(--tp-mut);font-weight:var(--fw-bold)}
.thm-prev-chip{padding:.12em .5em;border-radius:var(--radius-pill);background:var(--tp-l);color:var(--tp-mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thm-prev-chip.on{background:var(--tp-i);color:var(--tp-s)}
.thm-prev-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.33em;padding:var(--sp-2)}
.thm-prev-bar{display:flex;align-items:center;gap:var(--sp-2)}
.thm-prev-act{padding:.12em .7em;border-radius:var(--radius);background:var(--tp-o);color:var(--tp-s);font-weight:var(--fw-bold)}
.thm-prev-badge{padding:0 .5em;border-radius:var(--radius-pill);background:var(--tp-i);color:var(--tp-s);font-weight:var(--fw-bold)}
.thm-prev-rows{display:flex;flex-direction:column;margin-top:.22em}
.thm-prev-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:.22em .33em;border-bottom:1px solid var(--tp-l);color:var(--tp-ink)}
.thm-prev-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thm-prev-rdot{flex:0 0 auto;width:.5em;height:.5em;border-radius:50%;background:var(--tp-l)}
.thm-prev-rdot.ok{background:var(--tp-o)}

/* ── Statische Paletten je Preset (Token-Klassen, NICHT inline). Als Design-Provider legt theme seine
      Vorschau-Palette als eigene --tp-*-Tokens ab — je Zeile eine Token-Definition. ── */
.thm-prev[data-theme="default"]{
  --tp-s:#ffffff;--tp-w:#eef0f3;--tp-l:#e5e7eb;--tp-o:var(--o,#eb5202);--tp-i:#0d6efd;--tp-ink:#1f2937;--tp-mut:#6b7280;
}
.thm-prev[data-theme="dark"]{
  --tp-s:#1e2126;--tp-w:#0f1216;--tp-l:#333a42;--tp-o:#ff5a26;--tp-i:#0d6efd;--tp-ink:#e6e8eb;--tp-mut:#9aa4af;
}
.thm-prev[data-theme="nordlicht"]{
  --tp-s:#f7fafc;--tp-w:#e8eef3;--tp-l:#d4e0ea;--tp-o:#2f6f8f;--tp-i:#3b82f6;--tp-ink:#15202b;--tp-mut:#5b6b78;
}
.thm-prev[data-theme="terrakotta"]{
  --tp-s:#fbf6f1;--tp-w:#f0e6dc;--tp-l:#e6d5c6;--tp-o:#c0552f;--tp-i:#b07d48;--tp-ink:#2a1d17;--tp-mut:#8a7059;
}
.thm-prev[data-theme="mitternacht"]{
  --tp-s:#14161f;--tp-w:#0a0b12;--tp-l:#2a2d3a;--tp-o:#8b7bff;--tp-i:#5aa0ff;--tp-ink:#e6e8eb;--tp-mut:#9aa4af;
}

/* Theme-Paket „Pflaume & Gold" — die Vorschau-Palette der EIGENEN Kachel als statische Token-Klasse
   (nicht inline, kein Laufzeit-<style>). Das theme-Modul zeichnet die Kachel-Struktur (.thm-prev);
   die Farben DIESES Presets gehören aber diesem Paket, darum stehen sie hier. Ohne diese Regel fiele
   die Kachel auf die Kern-Tokens zurück (Marken-Orange statt Pflaume/Gold). A = Pflaume (--tp-o,
   Aktion), B = Gold (--tp-i, Struktur); heller Grund, dunkler Text. Werte = ThemePresets::presets(). */
.thm-prev[data-theme="plumgold"]{
  --tp-s:#ffffff;
  --tp-w:#f4eef6;
  --tp-l:#e7dcea;
  --tp-o:#86198f;
  --tp-i:#eab308;
  --tp-ink:#2a1030;
  --tp-mut:#6b5872;
}

/* ===== Ticketing — NUR Anordnung (eigene .tk-*-Klassen, Kern-Tokens). Das AUSSEHEN (Farben, Schrift,
   Rahmen, Radien, Schatten) kommt aus den Kern-Bausteinen: Design::modeBar, band, richText, fileTile,
   comment, aside, rubric, pickRow, feedItem, listRow-Varianten, btn/iconBtn/segmented/chip-Töne. ===== */

/* Ebenen-Kopf über Liste/Brett (Organisation › Kunde › Projekt + Umschalter Liste ⇄ Kanban):
   nur der Abstand zur Sicht darunter — die Zeile selbst ist Kern-row, der Umschalter Kern-segmented. */
.tk-ctx { margin-bottom: var(--sp-5); }
.tk-ctx-title { margin: 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Listen-Zelle: Zugewiesene als Avatar-Reihe */
.tk-assignees { display: flex; align-items: center; gap: var(--sp-1); flex-wrap: wrap; }

/* CRM-Kontakt-Sektion: kompakte Ticket-Liste (Zeilen = Kern-Baustein listRow) */
.tk-contact-tickets { display: flex; flex-direction: column; }
.tk-contact-row { cursor: pointer; }
.tk-contact-title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ═══════════════════════════════════════════════════════════════════════════
   TICKET-DETAIL (breite Sidebar) — Aufbau 1:1 ERP ticketing-detail.css, nur die Anordnung.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Steuerleiste im Kopf: Kategorie · Eskalation · Sichtbarkeit · Wichtig · Verrechenbar · Zeit · Termin */
/* Die Breite der Wähler und der Abstand der Felder sind seit dem 15.09.2026 VARIANTEN ihrer
   Besitzer: data-mpp-variant="auto"/"block" (picker) am Behälter, Design::field(['flush'=>true])
   (forms) am Feld, Design::sheet(['generalFlush'=>true]) (acctab) am Tab. Hier standen dafür sechs
   Regeln auf .mpp-wrap, .mpp-trigger, .mage-field und .accordion-body — alles fremde Klassen. */
.tk-hd { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; justify-content: flex-end; }
/* Termin: sichtbarer Button, das Datumsfeld liegt unsichtbar dahinter und öffnet den Browser-Picker. */
.tk-hd-duewrap { position: relative; display: inline-flex; }
.tk-hd .tk-hd-date { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; pointer-events: none; }

/* hidden-Attribut gewinnt IMMER gegen die display-Regeln der Bausteine (Editor, Antwort-Hinweis, Zeit-Panel). */
.tk-detail [hidden], .tk-hd [hidden] { display: none !important; }

/* ── Grundgerüst: Modus-Balken links, dann zwei Spalten. Randlos in der Sidebar (flush). ── */
/* KEIN negativer Aussenabstand unten (25.09.2026): der Akkordeon-Inhalt (acctab) schneidet mit
   overflow:hidden ab — ein negativer Abstand (minus --sp-8) zog die unteren 20 Pixel der Arbeitsfläche unter die Kante,
   genau dort stand „Ticket löschen" (abgeschnitten, klebte am Rand). */
.tk-detail { position: relative; display: flex; min-height: calc(100vh - var(--sz-72)); }
/* Die Arbeitsfläche klebt DIREKT am Tab „Allgemein" (Florian 2026-09-12: kein weisser Balken dazwischen).
   Das sagt seit dem 15.09.2026 die KERN-OPTION Design::sheet(['generalFlush' => true]) — hier stand
   vorher eine Regel auf .accordion-body, eine Klasse des acctab-Kernmoduls. */
/* Der Modus-Balken läuft über die GANZE Höhe der Arbeitsfläche (Flex-Stretch), nicht nur 100vh.
   Früher: sticky + height:100vh — sticky greift hier nie, weil der Akkordeon-Inhalt (acctab)
   overflow:hidden trägt und damit selbst der Bezugsrahmen ist; übrig blieb ein Balken in
   Fensterhöhe, der bei langer Timeline mitten im Inhalt endete. Die Beschriftung steht oben
   (dort liegen Verfasser und Umschalter), statt irgendwo in der Mitte eines langen Balkens. */
.tk-mode-bar { flex: 0 0 var(--sz-16); align-self: stretch; align-items: flex-start; padding-top: var(--sp-10); }

.tk-layout { flex: 1 1 auto; display: flex; min-width: 0; }
.tk-main { flex: 1 1 auto; min-width: 0; padding: var(--sp-7) var(--sp-8) var(--sp-9) var(--sp-8); }
/* Rechte Spalte wie ERP: feste Breite. NICHT sticky — sie ist oft höher als das Fenster (Kontakte,
   Labels, Kundenzugang, Status, Löschen); eine klebende hohe Spalte macht ihr Ende unerreichbar.
   Unten Luft (--sp-9), damit „Ticket löschen" nicht an der Kante sitzt. */
.tk-side { flex: 0 0 var(--sz-280); width: var(--sz-280); min-width: 0; }
.tk-side-inner { padding: var(--sp-7) var(--sp-6) var(--sp-9); display: flex; flex-direction: column; gap: var(--sp-5); min-width: 0; }
.tk-sec-add, .tk-sec-list { min-width: 0; }

/* ── Aufgabenteil: Projekt/Ersteller → Titel → Beschreibung → Anhänge (Kopfband bricht bis an die Ränder aus) ── */
.tk-task { margin: calc(-1 * var(--sp-7)) calc(-1 * var(--sp-8)) 0; padding: var(--sp-7) var(--sp-8) var(--sp-4); }
.tk-info { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; margin-bottom: var(--sp-5); }
.tk-info-menu { margin-left: auto; }
.tk-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-4); margin-bottom: var(--sp-4); }
.tk-title { margin: 0; }
.tk-edit-area { display: flex; flex-direction: column; gap: var(--sp-4); align-items: flex-start; }

/* Anhänge: Kachel-Raster (Kacheln = Kern-Baustein fileTile) */
.tk-atts { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-5); }
.tk-att-all { margin-top: var(--sp-3); }
.tk-lb-img { max-width: 100%; height: auto; display: block; }

/* ── Verfasser + Umschalter ── */
.tk-composer { margin-top: var(--sp-7); display: flex; flex-direction: column; gap: var(--sp-3); }
.tk-composer-foot { display: flex; align-items: center; gap: var(--sp-4); }
.tk-composer-hint { display: inline-flex; align-items: center; gap: var(--sp-2); }
/* Verfasser als Antwort unter einem Beitrag (die Mulde selbst setzt das JS als Kern-Zustand cc-well). */
.tk-reply-slot .tk-composer { margin: var(--sp-3) 0 var(--sp-2); }

.tk-vis-row { display: flex; align-items: center; justify-content: center; gap: var(--sp-3); margin: var(--sp-8) 0 var(--sp-3); }

/* ── Kommentare (Beiträge = Kern-Baustein comment) ── */
.tk-comments { display: flex; flex-direction: column; }
.tk-c-editacts { display: flex; align-items: center; gap: var(--sp-4); margin-top: var(--sp-3); }
/* In der öffentlichen Sicht sind interne Beiträge ausgeblendet (der Kunde sieht sie nie) und die
   Öffentlich-Plakette entfällt (dort ist ohnehin alles öffentlich). */
.tk-mode-public .tk-c-internal, .tk-mode-public .tk-c-pub { display: none; }

.tk-time-hours { max-width: var(--sz-100); }
.tk-time-date { max-width: var(--sz-160); }
.tk-time-act { max-width: var(--sz-160); }

/* ── Rechte Spalte: Rubriken (Kern), darin Listen + Hinzufügen ── */
.tk-sec-list { display: flex; flex-direction: column; }
.tk-person-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tk-status-list { display: flex; flex-direction: column; }
.tk-side-foot { margin-top: var(--sp-4); }
.tk-set-table { margin-bottom: var(--sp-6); }

/* Schmale Sidebar (kleine Bildschirme): Spalten untereinander, Modus-Balken bleibt. */
@media (max-width: 900px) {
  .tk-layout { flex-direction: column; }
  .tk-side { flex: none; }
}

/* ── Layer 2 (Zeit/Benachrichtigungen = Datenblatt; Verschieben/Zugriffsprotokoll = Formular/Blöcke) ── */
.tk-l2-move, .tk-l2-access { display: flex; flex-direction: column; gap: var(--sp-5); }

/* ── Liste zweizeilig: Titel darf bis zu drei Zeilen lang sein (er ist das, was man liest). ──
   Gesagt wird nur die ZAHL DER ZEILEN über den dafür vorgesehenen Knopf --cc-ent-lines; wie
   gekürzt wird, steht im Kern (layout, .cc-ent-title). Die Regel hängt jetzt an der EIGENEN Klasse
   .tk-ent statt an .mage-table (datatable) — und die zweite Regel ist ersatzlos weg: .cc-ent-meta
   bricht ohnehin um (layout.css:67), sie wiederholte nur fremdes Verhalten (15.09.2026). */
.tk-wrap .tk-ent { --cc-ent-lines: 3; }

/* ── Aktivität (Spezial-Controls = Kern-row, Inhalt = Kern-Tabelle) ──
   Kein eigener Innenabstand: .tk-main polstert schon, der Abstand Zeile → Tabelle kommt aus dem
   layout-Kern (.cc-row + .dataTables_wrapper). Nur die Blätter-Gruppe rückt enger zusammen, und die
   Bezeichnung hat eine Mindestbreite, damit ‹ › beim Blättern nicht springen. */
.tk-act-nav { gap: var(--sp-2); }
.tk-act-label { min-width: var(--sz-120); text-align: center; }
.tk-act-excerpt { display: block; margin-top: var(--sp-1); }

/* ── Benachrichtigungen & Erinnerungen (Layer 2) ── */
.tk-rem-list { display: flex; flex-direction: column; margin-bottom: var(--sp-6); }
.tk-l2-notify .cc-radio-group { display: flex; flex-direction: column; gap: var(--sp-2); }

/* ── Block „Kundenportal" in der rechten Spalte: Teile untereinander, Eingaben auf Spaltenbreite ── */
.tk-pb { display: flex; flex-direction: column; gap: var(--sp-3); min-width: 0; }
.tk-pb-part { display: flex; flex-direction: column; gap: var(--sp-2); min-width: 0; }

/* Tooltip — 1:1 aus ERP utilities.css (.mage-tooltip, body-angehängt, JS in tooltip.js). */
/* Etwaige Pseudo-Element-Tooltips abschalten */
/* NICHT für Icon-Glyphen (bootstrap-icons zeichnet das Icon selbst per ::before) — sonst ist jedes
   nackte Design::icon() mit Tooltip unsichtbar (Anhang-X, Ordner-X …). */
[data-tooltip]:not(.bi)::before, [data-tooltip]:not(.bi)::after { display: none !important; }

.mage-tooltip {
    position: fixed;
    background: var(--ink);
    color: var(--surface);
    font-size:var(--fs-2xs);
    padding:var(--sp-1) var(--sp-3);
    border-radius:var(--radius);
    pointer-events: none;
    white-space: nowrap;
    z-index:var(--z-tooltip);
    opacity: 0;
    transition: opacity var(--dur-fast);
}
.mage-tooltip.visible { opacity: 1; }
.mage-tooltip-arrow {
    position: absolute;
    width:var(--sz-8); height:var(--sz-8);
    background: var(--ink);
    transform: rotate(45deg);
}
.mage-tooltip.pos-above .mage-tooltip-arrow { bottom: -4px; left: 50%; margin-left: calc(-1 * var(--sp-1)); }
.mage-tooltip.pos-below .mage-tooltip-arrow { top: -4px; left: 50%; margin-left: calc(-1 * var(--sp-1)); }

/* Hintergrund-Palette (Rechtsklick-Menü auf dem Desktop). Nutzt Kern-Tokens. */
.cc-wp-menu{position:fixed;z-index:var(--z-sticky);background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);box-shadow:var(--shadow-md);padding:var(--sp-5)}
.cc-wp-title{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted);text-transform:uppercase;letter-spacing:var(--tracking);margin-bottom:var(--sp-4)}
.cc-wp-grid + .cc-wp-title{margin-top:var(--sp-6)}
.cc-wp-grid{display:grid;grid-template-columns:repeat(4,var(--sz-44));gap:var(--sp-4) var(--sp-3)}
.cc-wp-sw{width:var(--sz-44);height:var(--sz-44);border-radius:var(--radius);border:1px solid var(--border);cursor:pointer;padding:0;
  transition:transform var(--dur-fast),box-shadow var(--dur-fast)}
.cc-wp-sw:hover{transform:scale(1.06)}
.cc-wp-sw.active{border-color:var(--o);box-shadow:var(--shadow-md)}

/* Jede Kachel in einer Zelle: trägt den aktiven Rahmen am Knopf, das grüne „aktiv"-Label (wie die
   Themen) und — bei eigenen Bildern — das kleine × oben rechts (erscheint beim Zeigen). */
.cc-wp-cell{position:relative;display:inline-flex}
.cc-wp-badge{position:absolute;left:50%;bottom:calc(-1 * var(--sp-2));transform:translateX(-50%);
  font-size:var(--fs-xs);line-height:1;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-sm)}
.cc-wp-rm{position:absolute;top:calc(-1 * var(--sp-2));right:calc(-1 * var(--sp-2));width:var(--sz-18);height:var(--sz-18);border-radius:50%;
  border:1px solid var(--surface);background:var(--grey-700);color:var(--surface);font-size:var(--fs-sm);line-height:1;cursor:pointer;padding:0;
  display:none;align-items:center;justify-content:center;transition:background var(--dur-fast)}
.cc-wp-cell:hover .cc-wp-rm{display:inline-flex}
.cc-wp-rm:hover{background:var(--danger)}

/* Upload-Kachel in der Palette — eigenes Bild je Nutzer. */
.cc-wp-up{width:var(--sz-44);height:var(--sz-44);border-radius:var(--radius);border:1px dashed var(--border);background:var(--surface);color:var(--muted);font-size:var(--fs-xl);line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:transform var(--dur-fast),border-color var(--dur-fast)}
.cc-wp-up:hover{transform:scale(1.06);border-color:var(--o);color:var(--o)}

/* Palette als ABSCHNITT in der Konto-Sidebar (Fragment AccountSection, Punkt account.sections).
   Seit 12.09.2026 der reguläre Ort — der Fuss der Navigation hat keinen Hintergrund-Eintrag mehr.
   Eigene Fläche braucht es hier nicht (der Akkordeon-Rumpf ist die Fläche), nur die Kachel-Reihen
   dürfen die verfügbare Breite ausnutzen statt fix vierspaltig zu bleiben: die Sidebar ist breiter
   als das schwebende Menü. Abstände zwischen Titel und Reihen erbt der Abschnitt von oben. */
.cc-wp-panel .cc-wp-grid{grid-template-columns:repeat(auto-fill,var(--sz-44))}

/* ── Die GLOBALE Hintergrund-Anwendung (Fenster, Route 'wallpaper') ──────────────────────────────
   Linke Fenster-Navigation liefert windownav; hier nur der Inhalt: Ablagefläche + Kachel-Raster.
   Die Kacheln sind BREITER als hoch (Hintergründe sind querformatig), damit die Vorschau nicht
   gestaucht wirkt. */
.wp-main{padding:var(--sp-6);overflow:auto}
.wp-add{margin-bottom:var(--sp-6)}
.wp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--sz-220),1fr));gap:var(--sp-6)}
.wp-tile{position:relative;display:flex;flex-direction:column;gap:var(--sp-2)}
.wp-tile-pic{width:100%;aspect-ratio:16/10;border-radius:var(--radius);border:2px solid var(--border);cursor:pointer;padding:0;
  background-size:cover;background-position:center;transition:transform var(--dur-fast),box-shadow var(--dur-fast),border-color var(--dur-fast)}
.wp-tile-pic:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.wp-tile.is-active .wp-tile-pic{border-color:var(--o);box-shadow:var(--shadow-md)}
.wp-tile-cap{font-size:var(--fs-sm);color:var(--ink);font-weight:var(--fw-med);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wp-tile-badge{position:absolute;top:var(--sp-3);left:var(--sp-3);font-size:var(--fs-xs);line-height:1;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);box-shadow:var(--shadow-sm);pointer-events:none}
.wp-tile-rm{position:absolute;top:var(--sp-3);right:var(--sp-3);width:var(--sz-22);height:var(--sz-22);border-radius:50%;
  border:1px solid var(--surface);background:var(--grey-700);color:var(--surface);font-size:var(--fs-base);line-height:1;cursor:pointer;padding:0;
  display:none;align-items:center;justify-content:center;transition:background var(--dur-fast)}
.wp-tile:hover .wp-tile-rm{display:inline-flex}
.wp-tile-rm:hover{background:var(--danger)}

/* ============================================================================
   DESKTOP-KACHEL (Design::widget → .cc-widget) — Fläche, Radius, Schatten, Titelleiste, Körper,
   dazu die Notizzettel-Variante (['variant' => 'note']).
   Eigenes UI-Kernmodul seit 13.09.2026: bis dahin standen diese Regeln im Anordnungs-Kernmodul
   'layout' und stylten dort nebenbei .cc-deskwidgets (Kern) und .form-control (forms) mit —
   drei fremde Besitzer in einer Regel (Befund _ui-kernmodule[2]).
   Lage, Breite und Wackel-Modus bestimmt das Dashboard (dash-widget); reiche Kacheln bringen ihren
   Grund selbst mit. Die Zettelfarbe ist ein DATENWERT und reist als --cc-note-bg.
   ============================================================================ */
.cc-widget { background: var(--surface); border: 0; border-radius: var(--radius); box-shadow: var(--shadow-md); overflow: hidden; }
.cc-widget-bar { background: var(--grey-50); border-bottom: 1px solid var(--grey-100); padding: var(--sp-3) var(--sp-5); font-size: var(--fs-xs);
                 text-transform: uppercase; letter-spacing: var(--tracking); color: var(--grey-500); font-weight: var(--fw-bold); cursor: move; user-select: none; }
.cc-widget-body { padding: var(--sp-6); }

/* Eingaben IN einer Kachel ohne Fokus-Rahmen — die Kachel ist die Fläche, kein Formular.
   Gehört der Kachel (nicht der Desktop-Fläche, die dem Kern gehört, und nicht dem Feld). */
.cc-widget .form-control:focus, .cc-widget textarea:focus, .cc-widget input:focus {
    outline: none; box-shadow: none; border-color: transparent; }

/* Notizzettel: Zettelfarbe = Datenwert (--cc-note-bg, sonst warmes Gelb), die Griffleiste daraus
   abgedunkelt. Das Textfeld füllt den Zettel randlos — dafür trägt es die FORMULAR-Variante
   .form-control-flush (Eigentümer: forms). Hier steht nur, dass es die Fläche füllt. */
.cc-widget.cc-widget-note { --cc-note-edge: color-mix(in srgb, var(--cc-note-bg, var(--warn-bg)) 78%, var(--ink));
                            display: flex; flex-direction: column; background: var(--cc-note-bg, var(--warn-bg)); }
.cc-widget-notebar { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-2) var(--sp-3);
                     background: var(--cc-note-edge); cursor: move; user-select: none; flex: 0 0 auto; }
.cc-widget-note > .form-control-flush { flex: 1 1 auto; min-height: 0; background: var(--cc-note-bg, var(--warn-bg)); }

/* ═══════════════════════════════════════════════════════════════════
   Window Navigation (.wn-*) — generic left sidebar inside app windows.

   Visual reference: pages/email-inbox.php (the .email-mbx-sidebar).
   Markup is rendered by includes/WindowNav.php → WindowNav::render().
   The wrapper layout (.wn-page-flex) is injected by index.php in
   embedded mode when WindowNav::hasNavForPage($page) is true.

   DESIGN (Florian 2026-09-11, Vorschlag „Dunkel komplett / Best-of"): dunkle Fläche, blauer
   Wisch-Hover, aktiver Eintrag in Markenfarbe mit Einrücken, gestaffeltes Einblenden beim Öffnen.
   BREITE: Nutzer-Zustand je Fenster — der Griff rechts (.wn-splitter, windownav.js) setzt --wn-w.
   ═══════════════════════════════════════════════════════════════════ */

/* Layout wrapper: sidebar + main content side-by-side, full window height. */
.wn-page-flex {
    display: flex !important;
    flex-direction: row !important;
    padding: 0 !important;
    margin: 0 !important;
    height: 100vh !important;
    min-height: 100vh;
    max-height: 100vh;
    gap: 0 !important;
    align-items: stretch;
    overflow: hidden;
}
/* NUR für die alleinstehende Seite (ERP-Einbettung), NIE auf dem Desktop: dort liegt die Rail in einem Fenster,
   und diese Regel sperrte das ganze Dokument auf Viewport-Höhe mit overflow:hidden — sobald irgendein Fenster
   offen war, liess sich die Arbeitsfläche nicht mehr scrollen (Florian 12./13.09.2026: „Dashboard soll scrollbar
   sein … hast du komplett ignoriert"). Lokal fiel es nicht auf, weil beim Test kein Fenster offen war. */
body:not(.cc-desktop):has(.wn-page-flex) {
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    height: 100vh !important;
}
html:has(> body:not(.cc-desktop) .wn-page-flex) {
    overflow: hidden !important;
    height: 100vh !important;
}
/* HIER STANDEN FÜNF FREMDE KLASSEN (15.09.2026 entfernt): .container-fluid, .row,
   .embedded-page-content, .page-content und .mage-page. Nachgemessen über modules/, core/ und
   public/ — Naberion gibt keine davon aus, und die im damaligen Kommentar erwähnte mage-page.css gibt es
   hier nicht. Es war das Markup des ALTEN ERP, gegen das ein Naberion-Kernmodul mit !important ankämpfte:
   Regeln, die nie greifen konnten, aber jedem Leser suggerierten, sie trügen etwas.
   Der eigene Fall ist davon unberührt — den deckt .wn-page-flex oben ab, und den setzen über zehn
   Naberion-Vorlagen selbst. Wird eine Einbettung in eine fremde Hülle wieder gebraucht, gehört die
   Anpassung auf die Seite des GASTGEBERS, nicht in das Kernmodul der Fenster-Navigation. */

/* Läuft die Sidebar-Seite in einem Fenster (.cc-win-body), ist „volle Höhe" die FENSTERhöhe, nicht
   der Viewport: .cc-win-body ist ein flex:1-Kind im Spalten-Flex-Fenster → hat eine definite Höhe,
   also füllt height:100% sie exakt. 100vh (Standalone-Fall) würde übers Fenster hinausragen.
   (Diese Fenster↔Sidebar-Brücke lebt hier, weil die windownav-Sidebar IM Fenster rendert →
   windownav requires window; die Umkehrung würde einen Dependency-Zirkel erzeugen.) */
/* NUR wenn .wn-page-flex das PRIMÄRE Fenster-Layout ist (direktes Kind der Body-Wurzel), nicht wenn
   es bloss als eingebetteter Demo-Block tief drinsteckt (z.B. die Komponenten-Kitchen-Sink) — sonst
   würde das GANZE Fenster randlos und alles klebt am Rand. Deshalb Child-Kombinator `>`. */
.cc-win-body > .wn-page-flex { height: 100% !important; min-height: 0 !important; max-height: 100% !important; }
/* Body randlos + oberen ::before-Spacer aus, damit die Sidebar bis an die Fensterkanten reicht und
   voll hoch wird. Gescrollt wird intern (die main-col), nicht der ganze Body — sonst scrollt die
   „feste" Sidebar mit weg. */
.cc-win-body:has(> .wn-page-flex) { padding: 0 !important; overflow: hidden; }
.cc-win-body:has(> .wn-page-flex)::before { display: none; }

.wn-main-col {
    flex: 1 1 0;
    min-width: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
    /* Restore the horizontal breathing room that bootstrap's .col-12 used to
       provide. .page-controls and .mage-page intentionally omit their own
       side-padding (they were designed to bleed into the parent's 1rem
       padding) — without this, content sits flush against the window edge. */
    padding-left: var(--sp-7);
    padding-right: var(--sp-7);
    padding-bottom: var(--sp-7);
    /* Oberer Abstand zum Fensterrand — EINMAL hier, für jedes Rail-Fenster gleich (Vorbild Kontakte).
       Vorher setzte jedes Modul `.xx-main{padding-top:var(--sp-7)}` selbst; wer es vergass
       (Controlling, Extensions, Stimmung), klebte am Fensterkopf. */
    padding-top: var(--sp-7);
}

/* Sidebar shell — RUHIGE HELLE FLÄCHE (Florian 13.09.2026: „linke sidebar in allen windows:
   background f6f6f7, genauso wie jeder sidebar header … typo farbe entsprechend anpassen, weil man
   sonst die texte nicht mehr sieht"). Die Fläche kommt aus dem Kern-Token --chrome, damit Rail und
   Sidebar-Kopf denselben Wert tragen und das Dunkel-Thema beide zusammen umstellt.
   Die Hilfsvariablen sind die FARBROLLEN der Rail: alles darin greift auf sie zu, damit ein
   Flächenwechsel an EINER Stelle passiert und nicht in dreissig Regeln. */
.wn-sidebar {
    --wn-fg: var(--ink);                                              /* Schrift auf der Fläche */
    /* Die Fläche hebt --muted eine Stufe an: JEDER Kern-Baustein in der Leiste (Leerzustand,
       Hinweis, Kennung, Zeitangabe) wird damit lesbar, ohne dass ein Modul etwas umfärbt.
       Der Kern-Ton --muted trägt auf dieser Fläche nur Kontrast 2,35, --grey-500 nur 4,47 (KI-Chat R4) — also --grey-600. */
    --muted: var(--grey-600);
    --wn-fg-soft: var(--grey-600);                                    /* Gruppentitel, Icons, Pfeile — NICHT --muted:
                                                                          das ist auf f6f6f7 mit Kontrast 2,35 zu blass;
                                                                          --grey-500 trug 4,47:1 (unter 4,5, KI-Chat R4) */
    --wn-line: var(--border);
    --wn-soft: color-mix(in srgb, var(--ink) 8%, transparent);
    --wn-hover: color-mix(in srgb, var(--info) 12%, transparent);
    /* Breite: ohne gezogenen Wert gilt die Normalbreite (220, höchstens 260 — wie bisher);
       mit gezogenem Wert (--wn-w, windownav.js) steht die Rail genau so breit. */
    width: var(--wn-w, var(--sz-220));
    min-width: var(--wn-w, var(--sz-220));
    max-width: var(--wn-w, var(--sz-260));
    background: var(--chrome);
    color: var(--wn-fg);
    border-right: 0;
    overflow-y: auto;
    overflow-x: hidden;   /* der aktive Eintrag rückt ein — das darf keinen Querbalken erzeugen */
    /* Innenluft oben+unten gehört dem KERN (eine Regel für ALLE Sidebars): die Fläche klebt bündig
       an den Fensterkanten, der INHALT (erster Button/Gruppenkopf) aber nicht. Kein Modul setzt
       dafür eigenes Padding. Links 0 — die Items bringen ihr Links-Padding selbst mit. */
    padding: var(--sp-6) var(--sp-3);
    font-size:var(--fs-sm);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    scrollbar-width: thin;
    scrollbar-color: var(--wn-soft) transparent;
}
.wn-sidebar::-webkit-scrollbar { width: var(--sz-6); }
.wn-sidebar::-webkit-scrollbar-thumb { background: var(--wn-soft); }

/* Ziehgriff zwischen Rail und Inhalt (Kern-Baustein .cc-splitter; windownav.js hängt ihn an).
   Optik „grau, beim Zeigen/Ziehen orange" kommt vom layout-Kern; hier nur die Lage. */
.wn-splitter { position: relative; z-index: var(--z-raised); }
/* Im Ruhezustand trägt der Griff die FARBE DER RAIL — früher der dunkle Verlauf, seit der hellen
   Fläche eben diese (Florian 12.09.2026: „die helle Linie zerstört das Design" — der Grund bleibt
   derselbe: der Griff darf die Rail nicht zerschneiden). Beim Zeigen/Ziehen bleibt er orange wie
   überall. Zwei Klassen, damit die Regel unabhängig von der Ladereihenfolge gegen .cc-splitter aus
   dem layout-Kern gewinnt. */
/* Die OPTIK steht seit dem 15.09.2026 beim Eigentümer: layout kennt sie als Variante
   .cc-splitter-chrome (Design::splitter ['tone'=>'chrome']), windownav.js setzt die Klasse.
   Hier stand vorher eine Regel, die den Kern-Baustein von aussen überschrieb — zwei
   Erscheinungen desselben Griffs, die zweite nur über die Ladereihenfolge gesichert. */

/* "Alle"-style top block. */
.wn-all {
    padding:var(--sp-4) var(--sp-4) var(--sp-4);
    border-bottom: 1px solid var(--wn-line);
    margin-bottom:var(--sp-5);
}
.wn-all-link {
    font-weight:var(--fw-bold);
}
/* Fuss-Gruppe der Rail (z.B. „Einstellungen" ganz unten) — durch eine Linie abgesetzt. */
.wn-folders.wn-folders-foot { margin-top: var(--sp-6); border-top: 1px solid var(--wn-line); padding-top: var(--sp-3); }

/* Group block (header + items). */
.wn-group {
    padding: 0 var(--sp-4);
    margin-bottom:var(--sp-6);
}
.wn-group-head {
    display: flex;
    align-items: center;
    gap:var(--sp-3);
    padding:var(--sp-2) var(--sp-1) var(--sp-3);
    font-weight:var(--fw-heavy);
    font-size:var(--fs-2xs);
    text-transform: uppercase;
    letter-spacing:var(--tracking);
    color: var(--wn-fg-soft);
    border-bottom: 1px solid var(--wn-acc, var(--wn-line));
    margin-bottom:var(--sp-2);
}
.wn-dot {
    width:var(--sz-8);
    height:var(--sz-8);
    border-radius: 50%;
    background: var(--wn-acc, var(--muted));
    flex-shrink: 0;
}
.wn-group-name {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Flat list (no header). Top breathing room matches the "Alle"-block (.wn-all)
   so flat sub-navs (Ticketing, Monitoring, …) sit identically to Kontakte. */
.wn-flat {
    padding:var(--sp-4) var(--sp-4);
}
/* Sichtbarer Trenner zwischen aufeinanderfolgenden flat-Gruppen (Ticketing-Nav-Sektionen). */
.wn-flat + .wn-flat {
    border-top: 1px solid var(--wn-line);
    padding-top:var(--sp-5);
}

/* Item row. */
.wn-folders { padding:0; }   /* KEIN Links-Nudge: sonst stehen Item-Boxen um --sp-1 rechts vom Gruppen-Divider (wn-group-head-Border), der bündig am Sidebar-Innen-Padding sitzt. Beide teilen jetzt exakt das --sp-3 der .wn-sidebar. */
.wn-item {
    cursor: pointer;   /* Nav-Items sind klickbar — Kern-Verhalten, kein Modul flickt das selbst */
    /* railItem rendert ein <button> (a11y: fokussierbar + Enter/Space) — Button-Chrome zurücksetzen. */
    width: 100%;
    border: 0;
    text-align: left;
    font-family: inherit;
    display: flex;
    align-items: center;
    gap:var(--sp-3);
    padding:var(--sp-2) var(--sp-4);
    margin:var(--sp-0) 0;
    border-radius:var(--radius);
    color: var(--wn-fg);
    text-decoration: none;
    font-size:var(--fs-sm);
    /* Hover: eine blaue Tönung wischt von links herein (Hintergrundgrösse 0 → 100 %). */
    background: linear-gradient(var(--wn-hover), var(--wn-hover)) no-repeat left / 0% 100%;
    transition: background-size var(--dur-slow) ease, color var(--dur-fast), transform var(--dur) ease, box-shadow var(--dur) ease;
    position: relative;
}
.wn-item:hover {
    background-color: transparent;
    background-size: 100% 100%;
    color: var(--wn-fg);
}
.wn-item:hover i { color: var(--info); }
.wn-item.active {
    background: var(--wn-acc, var(--o));
    color: var(--surface);
    transform: translateX(var(--sp-1));
    box-shadow: var(--shadow-md);
}
.wn-item.active i { color: var(--surface); }
.wn-item i {
    color: var(--wn-fg-soft);
    width:var(--sz-14);
    text-align: center;
    flex-shrink: 0;
    font-size:var(--fs-base);
}
/* Echte App-Icons (klein) in der Rail — dieselben Bilder wie auf den App-Seiten */
.wn-app-ico {
    width:var(--sz-18);
    height:var(--sz-18);
    object-fit: contain;
    flex-shrink: 0;
    border-radius:var(--radius);
    display: block;
}
/* Farbiges Integrations-Icon (Einstellungen-Rail) — Farbe via inline style.
   Höhere Spezifität als `.wn-item > span { flex:1 }`, sonst streckt sich das
   Icon-Span zur vollbreiten Leiste statt 18px-Quadrat zu bleiben. */
.wn-item > .wn-int-ico {
    flex: 0 0 var(--sz-18);
    width:var(--sz-18);
    height:var(--sz-18);
    border-radius:var(--radius);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--surface);
    font-size:var(--fs-2xs);
}
/* Glyph weiss erzwingen — sonst greift `.wn-item i { color:var(--grey-500) }` und das
   Icon verschwindet auf der farbigen Box. */
.wn-item > .wn-int-ico i,
.wn-item.active > .wn-int-ico i { color: var(--surface); }
.wn-item-avatar {
    width:var(--sz-18);
    height:var(--sz-18);
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: var(--grey-200);
}
.wn-item-avatar-fb {
    width:var(--sz-18);
    height:var(--sz-18);
    border-radius: 50%;
    flex-shrink: 0;
    background: var(--grey-500);
    color: var(--surface);
    font-size:var(--fs-2xs);
    font-weight:var(--fw-heavy);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    letter-spacing:var(--tracking);
}
.wn-item > span {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* Dritter Fall derselben Falle (nach .wn-count und .wn-int-ico): der Ladekreis ist ebenfalls ein
   direktes span-Kind und erbte sonst flex-grow:1. Gemessen 116 × 14 px statt 14 × 14 — als Ellipse
   mit border-radius:50% wischte der drehende Rand quer über die Einträge. spinner.css sperrt grow
   bereits selbst, `.wn-item > span` gewinnt dort aber über die Spezifität. */
.wn-item > .mage-spinner { flex: 0 0 auto; }

.wn-item > .wn-count {
    /* Higher specificity than `.wn-item > span { flex: 1 }` above —
       otherwise the count badge inherits flex-grow:1 and stretches to fill. */
    flex: 0 0 auto;
    font-size:var(--fs-2xs);
    font-weight:var(--fw-bold);
    line-height: 1.4;
    color: var(--wn-fg);
    background: var(--wn-soft);
    padding: 0 var(--sp-1);
    border-radius:var(--radius);
    min-width:var(--sz-14);
    text-align: center;
}
.wn-item.active .wn-count {
    /* Auf dem farbigen Aktiv-Eintrag wird die Plakette DUNKLER, nicht heller: eine weisse Tönung
       (--glass-soft) hellt den Grund auf 2,8 Kontrast zur weissen Schrift auf — die Zahl war auf dem
       offenen Eintrag schlechter lesbar als auf jedem anderen. Abgedunkelt sind es 5,1. */
    background: color-mix(in srgb, var(--ink) 22%, transparent);
    color: var(--surface);
}

/* Gestaffeltes Einblenden beim ERSTEN Aufbau der Rail (windownav.js setzt .wn-enter kurz) —
   nachgeladene Einträge (Zähler, Filter) springen nicht jedes Mal neu herein. */
.wn-sidebar > :nth-child(2) { --wn-gi: 1; }
.wn-sidebar > :nth-child(3) { --wn-gi: 2; }
.wn-sidebar > :nth-child(n+4) { --wn-gi: 8; }
.wn-item:nth-child(2) { --wn-ii: 1; }   .wn-item:nth-child(3) { --wn-ii: 2; }   .wn-item:nth-child(4) { --wn-ii: 3; }
.wn-item:nth-child(5) { --wn-ii: 4; }   .wn-item:nth-child(6) { --wn-ii: 5; }   .wn-item:nth-child(7) { --wn-ii: 6; }
.wn-item:nth-child(8) { --wn-ii: 7; }   .wn-item:nth-child(9) { --wn-ii: 8; }   .wn-item:nth-child(10) { --wn-ii: 9; }
.wn-item:nth-child(11) { --wn-ii: 10; } .wn-item:nth-child(12) { --wn-ii: 11; } .wn-item:nth-child(n+13) { --wn-ii: 12; }
.wn-sidebar.wn-enter .wn-item {
    /* Die BEWEGUNG kommt aus dem animations-Kernmodul (@keyframes cc-slide-in-x, Weite über
       --anim-shift) — hier stand bis zum 15.09.2026 ein eigener Keyframe mit derselben Kurve.
       Unsere Sache bleibt der VERSATZ je Eintrag: er macht aus einer Bewegung eine Welle. */
    animation: cc-slide-in-x var(--dur-slow) ease both;
    animation-delay: calc((var(--wn-gi, 0) * 3 + var(--wn-ii, 0)) * 18ms);
}
@media (prefers-reduced-motion: reduce) {
    .wn-sidebar.wn-enter .wn-item { animation: none; }
    .wn-item, .wn-item.active { transition: none; transform: none; }
}

/* Footer button (e.g. "Konten" in email). */
.wn-footer {
    margin-top: auto;
    padding:var(--sp-4);
    border-top: 1px solid var(--wn-line);
    background: var(--chrome);
    flex-shrink: 0;
}
.wn-footer-btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap:var(--sp-2);
    padding:var(--sp-3) var(--sp-4);
    background: transparent;
    border: 1px solid var(--border);
    border-radius:var(--radius);
    color: var(--wn-fg);
    font-size:var(--fs-sm);
    font-weight:var(--fw-bold);
    text-decoration: none;
    cursor: pointer;
    transition: background var(--dur) ease, border-color var(--dur) ease,
                color var(--dur) ease, box-shadow var(--dur) ease, transform var(--dur-fast) ease;
}
.wn-footer-btn:hover {
    background: var(--o);
    border-color: var(--o);
    color: var(--surface);
    box-shadow:var(--shadow-md);
    text-decoration: none;
}
.wn-footer-btn:active { transform: translateY(1px); }
.wn-footer-btn i { font-size:var(--fs-md); transition: transform var(--dur) ease; }
.wn-footer-btn:hover i { transform: rotate(15deg); }

/* Compact mode for small viewports. Gilt nur für LINKE Rails (seit 1.13.0): die rechte Rail (Design::railEnd)
   geht nach FENSTER-Breite in den Schmal-Modus, und eine Rail mit data-wn-kompakt="aus" (Listen, die sich nur über
   Titel unterscheiden) wird unter 900 px ausgeblendet statt auf Symbole gedrückt. */
@media (max-width:900px) {
    .wn-sidebar:where(:not(.wn-sidebar-end):not([data-wn-kompakt="aus"])) { width:var(--sz-56); min-width:var(--sz-56); max-width:var(--sz-56); }
    :where(.wn-sidebar:not(.wn-sidebar-end)) + .wn-splitter { display: none; }
    .wn-sidebar[data-wn-kompakt="aus"] { display: none; }
    /* :where(…) hält die Spezifität wie bisher; ausgenommen ist nur eine ausdrücklich eingeblendete Rail (data-wn-ueber). */
    .wn-item:where(:not(.wn-sidebar[data-wn-ueber] *)) span,
    .wn-group-name:where(:not(.wn-sidebar[data-wn-ueber] *)),
    .wn-count:where(:not(.wn-sidebar[data-wn-ueber] *)) { display: none; }
    .wn-group-head:where(:not(.wn-sidebar[data-wn-ueber] *)) { justify-content: center; }
}

/* Dieselbe Kompakt-Stufe nach FENSTER-Breite (1.15.0): windownav.js setzt data-wn-eng an die linke Rail, wenn das
   Fenster für Rail + Hauptspalte (+ offene rechte Rail) zu schmal ist — unabhängig vom Viewport (KI-Chat R5). */
.wn-sidebar[data-wn-eng]:where(:not(.wn-sidebar-end):not([data-wn-kompakt="aus"])) { width:var(--sz-56); min-width:var(--sz-56); max-width:var(--sz-56); }
.wn-sidebar[data-wn-eng]:not(.wn-sidebar-end) + .wn-splitter { display: none; }
.wn-sidebar[data-wn-eng][data-wn-kompakt="aus"] { display: none; }
.wn-sidebar[data-wn-eng]:where(:not([data-wn-ueber])) .wn-item span,
.wn-sidebar[data-wn-eng]:where(:not([data-wn-ueber])) .wn-group-name,
.wn-sidebar[data-wn-eng]:where(:not([data-wn-ueber])) .wn-count { display: none; }
.wn-sidebar[data-wn-eng]:where(:not([data-wn-ueber])) .wn-group-head { justify-content: center; }
/* Ausdrücklich eingeblendet trotz Platzmangel (data-wn-ueber, windownav.js umschalten {ueber:true}, 1.16.0): die Rail mit
   data-wn-kompakt="aus" liegt in Normalbreite ÜBER dem Inhalt, wie die rechte Rail im Schmal-Modus — nie als Symbolspalte. */
.wn-page-flex:has(> .wn-sidebar[data-wn-ueber]) { position: relative; }
.wn-sidebar[data-wn-kompakt="aus"][data-wn-ueber]:not([hidden]) { display: flex; position: absolute; inset-block: 0; inset-inline-start: 0; z-index: var(--z-raised); max-width: 100%; box-shadow: var(--shadow-md); }

/* ── Aufklappbarer Knoten (Design::railNode): Eintrag MIT Unterebene, z.B. Kunde → seine Projekte.
   Ein Klick auf den Knoten filtert (Modul-Sache) UND klappt auf (Kern-Sache, windownav.js). ── */
.wn-node { display: block; }
.wn-node > .wn-children {
    display: none;
    margin: var(--sp-0) 0 var(--sp-2) var(--sp-6);
    border-left: 1px solid var(--wn-line);
    padding-left: var(--sp-2);
}
.wn-node.open > .wn-children { display: block; }
.wn-item-parent > .wn-caret {
    flex: 0 0 auto;
    font-size: var(--fs-2xs);
    color: var(--wn-fg-soft);
    transition: transform var(--dur-fast) ease;
    width: auto;
}
.wn-node.open > .wn-item-parent > .wn-caret { transform: rotate(90deg); }
.wn-item.active > .wn-caret { color: var(--surface); }
/* Unter-Einträge etwas kleiner — die Hierarchie muss man sehen, ohne sie zu raten. */
.wn-children > .wn-item { font-size: var(--fs-xs); padding-top: var(--sp-1); padding-bottom: var(--sp-1); }
/* DRITTE EBENE (Kunde → Projekt → Ordner): eine Spur mehr Luft, sonst kleben drei Linien aufeinander.
   Die Regel gehört HIERHER, nicht zum Gast: bis zum 15.09.2026 stand sie als
   `.pw-rail .wn-node .wn-children{…}` im passwords-Modul — ein Fach-Modul, das die innere Struktur
   dieses Kernmoduls von aussen umstellt. Ein Umbau hier hätte sie still zerbrochen, und das
   Ticketing (zwei Ebenen) hätte nie etwas davon gehabt. */
.wn-children .wn-node > .wn-children { padding-left: var(--sp-3); }


/* Schmales Fenster: die Inhaltsspalte MUSS schrumpfen dürfen (Flex-Vorgabe ist min-width:auto),
   sonst schiebt eine breite Tabelle samt Werkzeugleiste über den Fensterrand hinaus. */
.wn-page-flex > .wn-main-col, .wn-page-flex > .wn-sidebar { min-width: 0; }
.wn-main-col > * { max-width: 100%; }

/* Kennzeichen hinter dem Label (Design::railItem ['tag'=>…]): Umgebung eines Projekts (Live/Staging/Test). */
/* Das Kennzeichen darf höchstens 40 % der Zeile nehmen und kürzt sich dann selbst: in einer tiefen
   Ebene (Organisation → Kunde → Projekt) blieb für den Namen sonst nichts übrig — „abgeschlossen"
   stand allein da, der Projektname war auf null Breite gedrückt (gemessen 25.09.2026, Ticketing). */
.wn-item .wn-tag { flex: 0 1 auto; min-width: 0; max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
                   margin-left: var(--sp-2); font-size: var(--fs-2xs); }
.wn-item.active .wn-tag { background: color-mix(in srgb, var(--surface) 25%, transparent) !important; color: var(--surface); }

/* Klappbarer Gruppentitel (Design::railGroup ['toggle'=>true]) — der Pfeil dreht beim Zuklappen. */
.wn-group-toggle { cursor: pointer; user-select: none; }
.wn-group-toggle:hover { color: var(--wn-fg); }
.wn-group-chev { transition: transform var(--dur); flex: 0 0 auto; }
.wn-group-toggle[aria-expanded="false"] .wn-group-chev { transform: rotate(-90deg); }
/* Untergruppe (Design::railGroup ['sub'=>true]) — kleiner Titel ohne Linie, z.B. „Ordner (29)" in einem Konto. */
.wn-subgroup-head { display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-2) var(--sp-2) var(--sp-1);
                    color: var(--wn-fg-soft); font-size: var(--fs-2xs); text-transform: uppercase; letter-spacing: var(--tracking); }
/* Zeilen-Aktion im Rail-Eintrag (Design::railItem ['action'=>…]) — kleines X hinter dem Zähler. */
.wn-item > .wn-item-act { flex: none; margin-left: var(--sp-1); display: inline-flex; cursor: pointer; }
/* Zweite Zeile unter dem Label (Design::railItem ['unter'], Kern 2.9.0): bricht per order + volle Breite in eine eigene Zeile um,
   eingerückt auf die Label-Kante (Icon + Abstand); Label, Zähler und Zeilen-Aktion bleiben oben. Sie bricht um statt abzuschneiden
   (eine Erklärzeile muss lesbar sein). Leer = keine Zeile. */
.wn-item:has(> .wn-item-unter:not(:empty)) { flex-wrap: wrap; row-gap: 0; }
.wn-item > .wn-item-unter { order: 1; flex: 0 0 100%; padding-left: calc(var(--sz-14) + var(--sp-3)); font-size: var(--fs-2xs); color: var(--wn-fg-soft); white-space: normal; overflow: visible; }
.wn-item > .wn-item-unter:empty { display: none; }
.wn-item.active > .wn-item-unter { color: color-mix(in srgb, var(--surface) 80%, transparent); }
.wn-item > .wn-item-act:hover i { color: var(--o); }
/* Inaktiver Eintrag (Design::railItem ['off'=>true]) — noch nicht übernommenes Programm, abgeschaltetes Modul:
   dezente Schrift; Zeigen hebt ihn wie jeden Eintrag hervor. */
.wn-item.wn-item-off:not(:hover):not(.active) { color: var(--wn-fg-soft); }

/* ── RECHTE RAIL (Design::railEnd, seit 1.13.0) ─────────────────────────────────────────────────────
   Gegenstück zur linken Rail: eingebettet rechts im Fenster, Griff links davon (windownav.js), eigene
   Breite je Fenster-Gruppe (--wn-w), Normalbreite --sz-440. Aussehen wie die linke Rail. */
.wn-sidebar-end {
    order: 3;
    width: var(--wn-w, var(--sz-440));
    min-width: var(--wn-w, var(--sz-440));
    max-width: var(--wn-w, var(--sz-440));
    border-left: 0;
}
.wn-page-flex > .wn-splitter:has(+ .wn-sidebar-end) { order: 2; }
/* Ausgeklappte Rail: der Kern blendet [hidden] aus, hier nur der Griff daneben. */
.wn-sidebar[hidden] + .wn-splitter, .wn-splitter:has(+ .wn-sidebar-end[hidden]) { display: none; }
/* Kopf der rechten Rail (railEnd mit titel): Icon · Titel · Schliessen. */
.wn-end-kopf { display: flex; align-items: center; gap: var(--sp-3); padding: 0 var(--sp-2) var(--sp-4); }
.wn-end-ico { color: var(--wn-fg-soft); }
.wn-end-titel { flex: 1 1 auto; min-width: 0; font-weight: var(--fw-bold); font-size: var(--fs-base); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Mit Unterzeile (railEnd ['sub'], windownav 1.14.2): Titel und Unterzeile gestapelt; die Unterzeile im Mono-Ton wie .txt-mono. */
.wn-end-texte { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.wn-end-texte > .wn-end-titel { flex: none; }
.wn-end-sub { font-family: var(--mono); font-size: var(--fs-xs); color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* SCHMAL-MODUS nach FENSTER-Breite (windownav.js setzt data-wn-schmal): die rechte Rail liegt im Fenster
   über dem Inhalt, ihr Griff ist weg. Kein globales Overlay, kein neuer Breakpoint. */
.wn-page-flex[data-wn-schmal] { position: relative; }
.wn-page-flex[data-wn-schmal] > .wn-sidebar-end { position: absolute; inset-block: 0; inset-inline-end: 0; z-index: var(--z-raised); max-width: 100%; }
.wn-page-flex[data-wn-schmal] > .wn-splitter:has(+ .wn-sidebar-end) { display: none; }
/* Von sich aus geöffnet (data-wn-auto, windownav.js umschalten {auto:true}, 1.18.0): im Schmal-Modus tritt die rechte Rail
   zurück, statt über dem ganzen Inhalt zu liegen — wie die linke mit data-wn-kompakt="aus". Hat das Fenster wieder Platz,
   steht sie daneben. Über dem Inhalt liegt sie nur auf ausdrücklichen Wunsch (Öffnen ohne auto nimmt die Marke weg). */
.wn-page-flex[data-wn-schmal] > .wn-sidebar-end[data-wn-auto] { display: none; }
/* Randlose Hauptspalte (Kern-Variante, z.B. Inhalt mit eigenem Muster-Grund). */
.wn-main-col.wn-main-col-flush { padding: 0; }
.cc-wysiwyg{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.cc-wys-tb{display:flex;gap:var(--sp-0);padding:var(--sp-2);background:var(--grey-50);border-bottom:1px solid var(--border)}
.cc-wys-btn{min-width:var(--sz-30);height:var(--sz-28);border:1px solid transparent;background:none;border-radius:var(--radius);cursor:pointer;font-size:var(--fs-base);color:var(--grey-700)}
.cc-wys-btn:hover{background:var(--border)}
.cc-wys-btn.b{font-weight:var(--fw-heavy)}.cc-wys-btn.i{font-style:italic}.cc-wys-btn.u{text-decoration:underline}
.cc-wys-area{min-height:var(--sz-120);padding:var(--sp-5) var(--sp-6);font-size:var(--fs-md);line-height:1.5;outline:none;color:var(--ink)}
.cc-wys-area:focus{background:var(--surface)}
.cc-wys-area ul,.cc-wys-area ol{margin:var(--sp-2) 0 var(--sp-2) var(--sp-8)}

/* Werkzeugleiste bricht in schmalen Sidebars um, statt zu überlaufen. */
.cc-wys-tb{flex-wrap:wrap;align-items:center;gap:var(--sp-1)}
.cc-wys-sep{width:1px;height:var(--sz-18);background:var(--border);margin:0 var(--sp-1)}
.cc-wys-area[data-placeholder]:empty::before{content:attr(data-placeholder);color:var(--muted)}
.cc-wys-area blockquote{margin:var(--sp-2) 0;padding-left:var(--sp-5);border-left:3px solid var(--border);color:var(--muted)}
.cc-wys-area code{background:var(--grey-50);border:1px solid var(--border);border-radius:var(--radius);padding:0 var(--sp-1);font-family:var(--font-mono);font-size:var(--fs-sm)}
.cc-wys-area hr{border:none;border-top:1px solid var(--border);margin:var(--sp-4) 0}
.cc-wys-area img{max-width:100%;height:auto}

/* Auswahlflächen (Farbe/Emoji) hängen am Bildschirm, damit sie nie im Fenster abschneiden. */
.cc-wys-pop{position:fixed;z-index:var(--z-popover);background:var(--surface);border:1px solid var(--border);
            border-radius:var(--radius);box-shadow:var(--shadow-md);padding:var(--sp-3);display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.cc-wys-colors{width:var(--sz-160)}
.cc-wys-color{width:var(--sz-20);height:var(--sz-20);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}
.cc-wys-emoji{width:var(--sz-240);max-height:var(--sz-160);overflow:auto}
/* Volle Auswahl (emoji-Modul): breiter und mit eigener Scrollflaeche — die Kurzliste bleibt schmal. */
.cc-wys-emoji.cc-wys-emoji-full{width:auto;max-height:none;overflow:visible}
.cc-wys-emo{border:none;background:none;font-size:var(--fs-lg);line-height:1;cursor:pointer;padding:var(--sp-1)}
.cc-wys-emo:hover{background:var(--grey-50);border-radius:var(--radius)}

/* ── VARIANTE „fill" (Design::wysiwyg mit ['fill' => true]) ──────────────────────────────────────
   Rahmenlos, und die Fläche füllt die Höhe aus, die ihr Gastgeber vorgibt (Mail-Verfassen).
   Bis zum 15.09.2026 formte das Mail-Modul dafür unsere Innereien um — drei Regeln in mail.css,
   eine davon auf eine Klasse, die es gar nicht gibt (.cc-wys-toolbar statt .cc-wys-tb), seit dem
   Umbau wirkungslos und niemandem aufgefallen. Eine Variante des Bausteins gehört seinem Besitzer. */
.cc-wysiwyg-fill{border:0;border-radius:0;display:flex;flex-direction:column;flex:1 0 auto}
.cc-wysiwyg-fill .cc-wys-tb{border-radius:0}
.cc-wysiwyg-fill .cc-wys-area{min-height:var(--sz-280);max-height:none;overflow:visible}

