:root {
  --crm-content-top: 30px;
  --crm-eyebrow-gap: 8px;
  --crm-heading-gap: 12px;
  --crm-section-gap: 30px;
  /* Holding CI shape policy: controls are deliberately rectangular. */
  --oafoch-shape-radius: 0;
  --oafoch-navy: #003366;
  --oafoch-navy-deep: #003366;
  --oafoch-teal: #009999;
  --oafoch-teal-soft: #e5e5e5;
  --surface: #ffffff;
  --canvas: #f2f2f2;
  --ink: #000000;
  --muted: #336699;
  --border: #e5e5e5;
  --shadow: none;
  --portal-content-width: 1920px;
  --portal-gutter: clamp(20px, 3vw, 72px);
  font-family: "Segoe UI", Arial, sans-serif;
  color: var(--ink);
}
html[data-theme="dark"] { color-scheme:dark; --surface:#142434; --ink:#e9f1f7; --muted:#b6c5d0; --border:#3b5266; --oafoch-navy:#0b4f83; --oafoch-navy-deep:#e9f1f7; background:#0d1822; }
html[data-theme="dark"] body { background:#0d1822; color:var(--ink); }
html[data-theme="dark"] .module-admin-card,html[data-theme="dark"] .profile-panel,html[data-theme="dark"] .notification-card,html[data-theme="dark"] .crm-record,html[data-theme="dark"] .portal-assistant-chat { background:#142434; }
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea { color:var(--ink); background:#0e1b27; border-color:#4c6377; }
html[data-theme="dark"] body { background:#0d1822; }
html[data-theme="dark"] .portal-app-header,html[data-theme="dark"] .crm-app-header { background:#132536; border-bottom-color:#009999; }
html[data-theme="dark"] .portal-brand-logo-light { display:none; }
html[data-theme="dark"] .portal-brand-logo-dark { display:block; }
html[data-theme="dark"] .crm-app-header img { filter:brightness(0) invert(1); }
html[data-theme="dark"] .portal-app-header nav,html[data-theme="dark"] .portal-app-header nav a,html[data-theme="dark"] .crm-app-header nav,html[data-theme="dark"] .crm-app-header nav strong { color:#e6f0f5; }
html[data-theme="dark"] .portal-logout-form button { color:#e6f0f5; background:#132536; border-color:#7a96aa; }
html[data-theme="dark"] .portal-user-trigger,html[data-theme="dark"] .portal-user-popover a,html[data-theme="dark"] .portal-user-popover > button { color:#edf5f9; }
html[data-theme="dark"] .portal-user-avatar { background:#0b4f83; border-color:#58d0cb; }
html[data-theme="dark"] .portal-user-popover { background:#142a3b; border-color:#426176; box-shadow:0 .8rem 2rem rgb(0 0 0 / 35%); }
html[data-theme="dark"] .portal-user-popover .portal-logout-form button { color:#ff9ca9; background:transparent; border:0; }
html[data-theme="dark"] .profile-panel input[type="text"],html[data-theme="dark"] .profile-panel input:not([type]) { color:#e9f1f7; background:#0e1b27; border-color:#4c6377; }
html[data-theme="dark"] .assistant-choice > span,html[data-theme="dark"] .profile-language-options label { color:#e9f1f7; background:#1b3042; border-color:#4c6377; }
html[data-theme="dark"] .assistant-choice strong { color:#e9f1f7; }
html[data-theme="dark"] .assistant-choice input:checked + span { background:#163d46; }
html[data-theme="dark"] .profile-saved { color:#82dfdd; background:#14333b; }
html[data-theme="dark"] .notification-action { background:#075a8d; border-color:#1687af; }
html[data-theme="dark"] .secondary-action { color:#e9f1f7; background:#1b3042; border-color:#7a96aa; }
/* Dashboard cards keep their hierarchy in dark mode. Unavailable modules are
   subdued, rather than rendered as bright light-mode panels. */
html[data-theme="dark"] .module-card { background:#152a3b; border-color:#365167; }
html[data-theme="dark"] .module-card[data-status="active"] { background:#162d41; }
html[data-theme="dark"] .module-card[data-status="hidden"] { background:#162a3a; border-left-color:#587286; }
html[data-theme="dark"] .module-card .module-title { color:#f0f6fa; }
html[data-theme="dark"] .module-card .module-copy,html[data-theme="dark"] .module-card .module-state { color:#b8c9d6; }
html[data-theme="dark"] .module-card .module-status { color:#dbe7ee; background:#253d4e; border-color:#5e7b8f; }
html[data-theme="dark"] .module-card[data-status="active"] .module-status { color:#fff; background:var(--oafoch-navy); border-color:var(--oafoch-navy); }
html[data-theme="dark"] .module-card[data-status="hidden"] .module-status { color:#d3e0e8; background:#2a4050; border-color:#587286; }
html[data-theme="dark"] .module-favorite { color:#a9bdcb; background:rgb(13 24 34 / 75%); }
html[data-theme="dark"] .module-favorite:hover,html[data-theme="dark"] .module-favorite:focus-visible,html[data-theme="dark"] .module-favorite.is-favorite { color:#58d0cb; border-color:#58d0cb; }
html { scrollbar-gutter: stable; }

* { box-sizing: border-box; }

/*
  Central shape guard. New modules must use the shared styles and must not add
  rounded-corner exceptions for containers, controls, badges or dialogs.
*/
*, *::before, *::after { border-radius: var(--oafoch-shape-radius) !important; }

body {
  min-height: 100vh;
  margin: 0;
  background: var(--canvas);
}

.shell { width:min(100%,var(--portal-content-width)); margin:0 auto; padding:2rem var(--portal-gutter) 3.5rem; }

.masthead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 0.25rem 0 2rem;
}

.brand-mark { display: block; width: min(100%, 330px); height: auto; }

.environment {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .55rem .8rem;
  color: var(--oafoch-navy);
  font-size: .85rem;
  font-weight: 700;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 999px;
}

.environment::before {
  width: .55rem;
  height: .55rem;
  content: "";
  background: var(--oafoch-teal);
  border-radius: 50%;
  box-shadow: 0 0 0 .22rem rgb(0 166 170 / 13%);
}

.masthead-actions { display: flex; align-items: center; gap: .75rem; }
.logout-button, .login-form button { padding: .58rem .85rem; color: white; font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer; background: var(--oafoch-navy); border: 1px solid var(--oafoch-navy); border-radius: .55rem; }
.logout-button:hover, .login-form button:hover { background: var(--oafoch-navy-deep); }
.notification-indicator { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .65rem; color: var(--oafoch-navy-deep); font-size: .85rem; font-weight: 700; text-decoration: none; background: var(--surface); border: 1px solid var(--border); border-radius: .55rem; }
.notification-indicator strong { display: grid; min-width: 1.35rem; min-height: 1.35rem; padding: 0 .2rem; color: white; font-size: .72rem; place-items: center; background: #b32030; border-radius: 999px; }

.hero {
  padding: clamp(1.15rem, 2.2vw, 1.8rem) clamp(1.4rem, 3vw, 2.5rem);
  color: white;
  background: var(--oafoch-navy);
  border-radius: 1.5rem;
  box-shadow: var(--shadow);
}

.eyebrow { margin: 0 0 .45rem; color: #8ce1e2; font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.hero h1 { max-width: none; margin: 0; font-size: clamp(2rem, 3vw, 2.7rem); line-height: 1.08; white-space: nowrap; }
.hero p { max-width: 58ch; margin: .55rem 0 0; color: #d9eaf6; font-size: 1rem; line-height: 1.5; }

.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 3rem 0 1.25rem; }
.section-heading h2 { margin: 0; color: var(--oafoch-navy-deep); font-size: 1.45rem; }
.section-heading p { margin: .35rem 0 0; color: var(--muted); line-height: 1.45; }

.module-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 19rem)); gap: 1rem; justify-content: start; }
.module-card { position: relative; display: flex; min-height: 152px; flex-direction: column; padding: 1.05rem 1.1rem; background: var(--surface); border: 1px solid var(--border); border-left: 6px solid #718290; box-shadow: none; }
/* Status remains readable without colour alone: the textual lifecycle label is
   mandatory; OVB primary/secondary colours only provide an additional cue. */
.module-card > * { position: relative; z-index: 1; }
.module-card-link { display: flex; flex: 1; flex-direction: column; color: inherit; text-decoration: none; }
.module-favorite-form { position: absolute !important; top: .72rem; right: .72rem; z-index: 3 !important; margin: 0; }
.module-favorite {
  display: grid;
  width: 2rem;
  height: 2rem;
  padding: 0;
  place-items: center;
  color: #527087;
  font-size: 1.38rem;
  line-height: 1;
  background: rgb(255 255 255 / 82%);
  border: 1px solid transparent;
  border-radius: 50%;
  cursor: pointer;
}
.module-favorite:hover, .module-favorite:focus-visible { color: var(--oafoch-teal); background: #fff; border-color: var(--oafoch-teal); outline: none; }
.module-favorite.is-favorite { color: var(--oafoch-teal); }
.module-title { margin: .1rem 2rem .4rem 0; color: var(--oafoch-navy-deep); font-size: 1.08rem; }
.module-copy { margin: 0; color: var(--muted); font-size: .87rem; line-height: 1.45; }
.module-status { display: inline-flex; align-self: flex-start; align-items: center; padding: .38rem .6rem; color: var(--oafoch-navy); font-size: .78rem; font-weight: 700; background: #fff; border: 1px solid #718290; }
.module-card[data-status="active"] { border-left-color: var(--oafoch-navy); }
.module-card[data-status="active"] .module-status { color: #fff; background: var(--oafoch-navy); border-color: var(--oafoch-navy); }
.module-card[data-status="preparation"] { border-left-color: var(--oafoch-teal); }
.module-card[data-status="preparation"] .module-status { border-color: var(--oafoch-teal); }
.module-card[data-status="development"] { border-left-color: #9966cc; }
.module-card[data-status="development"] .module-status { border-color: #9966cc; }
.module-card[data-status="hidden"] { border-left-color: #718290; background: #f7f9fa; }
.module-card[data-status="hidden"] .module-status { color: #42576a; background: #e5e5e5; border-color: #718290; }
.module-state { margin: auto 0 0; color: #6d7e8d; font-size: .78rem; font-weight: 700; }

.module-card[aria-disabled="true"] { cursor: not-allowed; }
.module-card[aria-disabled="true"]:focus { outline: none; }
.module-card-active { cursor: pointer; transition: transform .15s ease, box-shadow .15s ease; }
.module-card-active:hover, .module-card-active:focus-within { transform: translateY(-.2rem); box-shadow: var(--shadow); }
.module-card-link:focus-visible { outline: 3px solid rgb(0 166 170 / 55%); outline-offset: 4px; }
.module-administration { display:grid; gap:1.25rem; }
.module-admin-card { padding:1.4rem; background:#fff; border:1px solid var(--border); }
.module-admin-card > header { display:flex; align-items:start; justify-content:space-between; gap:1rem; padding-bottom:1rem; border-bottom:2px solid var(--oafoch-navy); }
.module-admin-card h2,.module-admin-card h3 { margin:0; color:var(--oafoch-navy); }.module-admin-card h2 { font-size:1.2rem; }.module-admin-card h3 { font-size:1rem; }
.module-admin-card header p { margin:.35rem 0 0; color:var(--muted); line-height:1.5; }.module-admin-state { padding:.32rem .55rem; color:#006c70; font-size:.8rem; font-weight:700; background:#e5e5e5; white-space:nowrap; }
.project-card h2 a { color:inherit; text-decoration:none; }.project-card h2 a:hover { text-decoration:underline; }.project-card > .notification-action { margin-top:.5rem; }.project-heading { align-items:end; }.project-cockpit { display:grid; grid-template-columns:minmax(16rem,1.45fr) repeat(3,minmax(10rem,1fr)); gap:1px; margin:0 0 1.15rem; background:var(--border); border:1px solid var(--border); }.project-cockpit > article { display:grid; gap:.25rem; min-height:7.4rem; padding:1rem 1.1rem; background:var(--surface); }.project-cockpit .eyebrow { margin:0; }.project-cockpit strong { color:var(--oafoch-navy); font-size:1.45rem; }.project-cockpit span,.project-cockpit small { color:var(--muted); font-size:.82rem; line-height:1.35; }.project-cockpit .is-alert { border-left:4px solid var(--ovb-pink,#c51f42); }.project-progress-track { height:.42rem; overflow:hidden; background:#dfe7eb; }.project-progress-track span { display:block; height:100%; background:var(--oafoch-teal); }.project-detail { grid-template-columns:minmax(0,1fr) minmax(22rem,.72fr); align-items:start; }.project-status-card { grid-row:span 2; }.project-facts { display:grid; gap:.75rem; }.project-facts p { display:grid; gap:.2rem; margin:0; padding-bottom:.75rem; border-bottom:1px solid var(--border); }.project-facts p:last-child { padding-bottom:0; border-bottom:0; }.project-members,.project-task-list,.project-gate-list { display:grid; gap:.45rem; margin-bottom:1rem; }.project-member-row,.project-task-row,.project-gate-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem 0; border-bottom:1px solid var(--border); }.project-member-row > div,.project-gate-row > div { display:grid; gap:.16rem; }.project-member-row span,.project-task-row span,.project-gate-row span { color:var(--muted); font-size:.9rem; }.project-member-row form,.project-gate-row form { margin:0; }.project-member-row .notification-action,.project-gate-row .notification-action { padding:.34rem .55rem; }.project-member-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:.75rem; align-items:end; padding-top:1rem; border-top:1px solid var(--border); }.project-gate-form { grid-template-columns:minmax(0,1fr) minmax(12rem,.45fr) auto; }.project-timeline-group + .project-timeline-group { margin-top:1.15rem; padding-top:1.15rem; border-top:1px solid var(--border); }.project-timeline-heading { display:flex; gap:1rem; align-items:center; justify-content:space-between; margin:0 0 .35rem; }.project-timeline-heading h3 { margin:0; }.project-timeline-heading .notification-action { padding:.34rem .55rem; }
.project-detail { display:grid; grid-template-columns:minmax(0,7fr) minmax(22rem,5fr); gap:1rem; align-items:start; }.project-detail-column { display:grid; align-content:start; gap:.65rem; min-width:0; }.project-detail-column > .module-admin-card { width:100%; }.project-detail-primary { grid-column:1; }.project-detail-secondary { grid-column:2; }.project-status-card { grid-row:auto; }.project-facts { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:1.25rem; }.project-facts p:nth-last-child(-n+2) { border-bottom:0; padding-bottom:0; }.project-gates .project-timeline-group { display:grid; grid-template-columns:minmax(0,1fr); }.project-gates > .project-timeline-group:first-of-type { padding-top:.85rem; }.project-gates .project-gate-list { margin-bottom:0; }.project-timeline-heading { margin-bottom:.6rem; }.project-row-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.45rem; }
.project-facts-signal { grid-column:1 / -1; display:flex; align-items:center; gap:.65rem; padding-top:.05rem; }.project-signal-grid { display:flex; align-items:center; gap:.4rem; }.project-signal { display:block; width:.9rem; height:.9rem; cursor:help; background:var(--oafoch-navy); border:0; border-radius:50%; }.project-signal-stable { background:#009999; }.project-signal-watch { background:#9966cc; }.project-signal-critical { background:#ff3399; }
.project-facts { grid-template-columns:minmax(0,1fr) auto; }.project-facts > p { grid-column:1; }.project-facts-signal { grid-column:2; grid-row:1 / span 3; align-self:start; justify-self:end; display:grid; justify-items:end; gap:.45rem; padding:0; }.project-facts-signal .project-signal-grid { grid-template-columns:1fr; justify-content:end; gap:.3rem; }.project-signal-grid { display:grid; grid-template-columns:repeat(2,max-content); justify-content:end; gap:.45rem .7rem; }.project-signal { display:inline-flex; align-items:center; gap:.34rem; width:auto; height:auto; color:var(--oafoch-navy); font-size:.76rem; font-weight:700; background:transparent; border-radius:0; }.project-signal i { display:block; flex:0 0 auto; width:.7rem; height:.7rem; background:var(--oafoch-navy); border-radius:50%; }.project-signal-stable i { background:#009999; }.project-signal-watch i { background:#9966cc; }.project-signal-critical i { background:#ff3399; }
.project-member-person { display:flex !important; align-items:center; gap:.7rem; min-width:0; }.project-member-person > div { display:grid; min-width:0; gap:.16rem; }.project-member-avatar { display:grid; flex:0 0 2.75rem; width:2.75rem; height:2.75rem; color:#fff; font-size:.72rem; font-weight:800; letter-spacing:.03em; background:var(--oafoch-navy); place-items:center; }.project-member-avatar-photo { object-fit:cover; }
.project-member-role { width:max-content; padding:0; color:var(--muted); font:inherit; font-size:.9rem; text-align:left; background:transparent; border:0; border-bottom:1px dotted currentColor; cursor:pointer; }.project-member-role:hover,.project-member-role:focus-visible { color:var(--oafoch-navy); outline:0; }.project-member-role:focus-visible { outline:2px solid var(--oafoch-teal); outline-offset:3px; }
.project-documents { max-width:58rem; }.project-document-list { border-top:2px solid var(--oafoch-navy); }.project-document-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:4.35rem; padding:.7rem 0; border-bottom:1px solid var(--border); }.project-document-main { display:flex; align-items:center; min-width:0; gap:.75rem; color:inherit; text-decoration:none; }.project-document-main:hover strong,.project-document-main:focus-visible strong { text-decoration:underline; }.project-document-main:focus-visible { outline:2px solid var(--oafoch-teal); outline-offset:3px; }.project-document-kind { display:grid; flex:0 0 2.75rem; width:2.75rem; height:2.75rem; padding:.2rem; overflow:hidden; color:var(--oafoch-navy); font-size:.65rem; font-weight:800; letter-spacing:.03em; text-align:center; background:#e5f3f3; border-left:4px solid var(--oafoch-teal); place-items:center; }.project-document-copy { display:grid; min-width:0; gap:.18rem; }.project-document-copy strong { overflow:hidden; color:var(--oafoch-navy); text-overflow:ellipsis; white-space:nowrap; }.project-document-copy small { color:var(--muted); }.project-document-remove { min-height:2rem; padding:.3rem .55rem; white-space:nowrap; }.project-document-upload { margin-top:1.1rem; padding-top:1rem; border-top:1px solid var(--border); }.project-document-upload > label { display:block; margin-bottom:.45rem; color:var(--oafoch-navy); font-size:.9rem; font-weight:800; }.project-document-upload-row { display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; }.project-document-file-picker { display:inline-flex; align-items:center; min-height:2.4rem; padding:.35rem .65rem; color:var(--oafoch-navy); font-size:.86rem; font-weight:700; background:var(--surface); border:1px solid var(--oafoch-navy); cursor:pointer; }.project-document-file-picker:hover { color:#fff; background:var(--oafoch-navy); }.project-document-file-picker input { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }.project-document-file-hint { flex:1 1 16rem; margin:0; color:var(--muted); font-size:.84rem; }.project-document-upload .notification-action[disabled] { opacity:.52; cursor:not-allowed; }.project-document-empty { margin:0; padding:1rem 0; }
.project-activity-list { display:grid; gap:0; }.project-activity-row { display:grid; gap:.18rem; padding:.7rem 0; border-bottom:1px solid var(--border); }.project-activity-row:last-child { border-bottom:0; }.project-activity-row span,.project-activity-row small { color:var(--muted); font-size:.84rem; }.project-leadership-list { display:grid; gap:.7rem; }.project-leadership-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:1.25rem; padding:1rem 1.15rem; color:inherit; text-decoration:none; background:var(--surface); border:1px solid var(--border); border-left:4px solid var(--oafoch-navy); }.project-leadership-row:hover,.project-leadership-row:focus-visible { border-color:var(--oafoch-teal); outline:0; }.project-leadership-row h2 { margin:.15rem 0; color:var(--oafoch-navy); font-size:1.08rem; }.project-leadership-row p { margin:0; color:var(--muted); font-size:.86rem; }.project-leadership-row dl { display:grid; grid-template-columns:repeat(3,auto); gap:1rem; margin:0; }.project-leadership-row dt { color:var(--muted); font-size:.7rem; font-weight:700; text-transform:uppercase; }.project-leadership-row dd { margin:.18rem 0 0; color:var(--oafoch-navy); font-size:1.12rem; font-weight:800; }.project-leadership-row > span { color:var(--oafoch-navy); font-size:.82rem; font-weight:700; white-space:nowrap; }
.project-overview { display:grid; gap:1.15rem; }.project-board-group { padding:1rem; background:#f2f2f2; border:1px solid var(--border); border-top:4px solid var(--oafoch-navy); }.project-board-group > header { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:0 0 .8rem; padding:0 0 .65rem; border-bottom:1px solid var(--border); }.project-board-group > header h2 { margin:0; color:var(--oafoch-navy); font-size:1.05rem; }.project-board-group > header span { display:grid; min-width:1.6rem; height:1.6rem; padding:0 .3rem; color:#fff; font-size:.78rem; font-weight:800; background:var(--oafoch-navy); place-items:center; }.project-board-group-planned { border-top-color:var(--oafoch-navy); }.project-board-group-active { border-top-color:#009999; }.project-board-group-completed { border-top-color:#6699cc; }.project-board-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(17rem,1fr)); gap:.85rem; }.project-board-card { display:grid; grid-template-rows:auto auto 1fr auto; min-height:14.5rem; color:inherit; text-decoration:none; background:#fff; border:1px solid var(--border); border-left:4px solid var(--oafoch-navy); }.project-board-card:hover,.project-board-card:focus-visible { border-color:var(--oafoch-teal); box-shadow:var(--shadow); outline:0; }.project-board-card > header { padding:.95rem .95rem .75rem; border-bottom:1px solid var(--border); }.project-board-card .eyebrow { margin:0 0 .35rem; }.project-board-card h2 { display:-webkit-box; margin:0; overflow:hidden; color:var(--oafoch-navy); font-size:1.08rem; line-height:1.2; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.project-board-date { margin:.5rem 0 0; overflow:hidden; color:var(--muted); font-size:.78rem; text-overflow:ellipsis; white-space:nowrap; }.project-board-progress { display:grid; gap:.4rem; padding:.75rem .95rem; border-bottom:1px solid var(--border); }.project-board-progress > div:first-child { display:flex; align-items:baseline; justify-content:space-between; gap:.75rem; color:var(--muted); font-size:.75rem; }.project-board-progress strong { color:var(--oafoch-navy); font-size:.86rem; }.project-board-progress-track { height:.32rem; overflow:hidden; background:#e5e5e5; }.project-board-progress-track i { display:block; height:100%; background:#009999; }.project-board-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; align-content:start; margin:0; padding:.75rem .95rem; }.project-board-metrics dt { color:var(--muted); font-size:.7rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }.project-board-metrics dd { margin:.2rem 0 0; color:var(--oafoch-navy); font-size:1rem; font-weight:800; }.project-board-card footer { display:flex; align-items:flex-end; justify-content:space-between; gap:.7rem; padding:.65rem .95rem; color:var(--oafoch-navy); font-size:.74rem; font-weight:700; border-top:1px solid var(--border); }.project-board-card footer > span { white-space:nowrap; }.project-board-card footer .project-signal-grid { grid-template-columns:repeat(2,max-content); justify-content:start; gap:.22rem .6rem; }.project-board-card footer .project-signal { gap:.25rem; font-size:.63rem; }.project-board-card footer .project-signal i { width:.5rem; height:.5rem; }.project-status-preparation { border-left-color:#9966cc; }.project-status-active { border-left-color:#009999; }.project-status-blocked { border-left-color:#ff3399; }.project-status-completed { border-left-color:#6699cc; }html[data-theme="dark"] .project-board-group { background:#102a39; border-color:#315068; }html[data-theme="dark"] .project-board-group > header { border-color:#315068; }html[data-theme="dark"] .project-board-card { background:#14293a; border-color:#315068; }html[data-theme="dark"] .project-board-card h2,html[data-theme="dark"] .project-board-progress strong,html[data-theme="dark"] .project-board-metrics dd,html[data-theme="dark"] .project-board-card footer { color:#edf5f9; }html[data-theme="dark"] .project-board-card > header,html[data-theme="dark"] .project-board-progress,html[data-theme="dark"] .project-board-card footer { border-color:#315068; }html[data-theme="dark"] .project-board-progress-track { background:#315068; }
.module-status-form,.module-audience-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; align-items:end; margin-top:1.25rem; }.module-status-form label,.module-audience-form label { display:grid; gap:.35rem; color:var(--oafoch-navy); font-size:.78rem; font-weight:700; }.module-status-form select,.module-audience-form input,.module-audience-form select { width:100%; min-height:2.55rem; padding:.55rem .65rem; color:var(--ink); font:inherit; background:#fff; border:1px solid var(--border); }
.module-audiences { margin-top:1.25rem; padding-top:1.1rem; border-top:1px solid var(--border); }.module-audiences h3 { margin-bottom:.8rem; }.module-audience-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--border); }.module-audience-list li { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.6rem 0; border-bottom:1px solid var(--border); }.module-audience-list span { display:flex; align-items:baseline; gap:.55rem; }.module-audience-list small { color:var(--muted); }
.module-audience-hint { margin:-.35rem 0 1rem; color:var(--muted); font-size:.86rem; line-height:1.45; }
.module-audience-form { grid-template-columns:repeat(3,minmax(0,1fr)) auto; }
.access-heading { display:flex; align-items:end; justify-content:space-between; gap:1.5rem; }.access-heading > div { min-width:0; }.access-heading-actions { display:flex; flex-wrap:wrap; gap:.7rem; }.access-users { background:#fff; border:1px solid var(--border); }.access-form { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; align-items:end; margin-top:1.25rem; padding-top:1.1rem; border-top:1px solid var(--border); }.access-form label { display:grid; gap:.35rem; color:var(--oafoch-navy); font-size:.78rem; font-weight:700; }.access-form input,.access-form select { width:100%; min-height:2.55rem; padding:.55rem .65rem; color:var(--ink); font:inherit; background:#fff; border:1px solid var(--border); }.access-form button { align-self:end; }.access-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:1.1rem 0; }.access-role { padding:1rem; background:#f2f2f2; border-left:4px solid var(--oafoch-navy); }.access-role h3 { margin:0 0 .35rem; color:var(--oafoch-navy); font-size:1rem; }.access-role p { margin:.35rem 0 0; color:var(--muted); font-size:.85rem; line-height:1.45; }.access-existing { margin-top:1.25rem; padding-top:1.1rem; border-top:1px solid var(--border); }.access-existing h4 { margin:0 0 .7rem; color:var(--oafoch-navy); font-size:.95rem; }.group-admin-card details { margin-top:1rem; padding-top:1rem; border-top:1px solid var(--border); }.group-admin-card summary { color:var(--oafoch-navy); font-weight:700; cursor:pointer; }.group-member-list { margin:1rem 0 0; color:var(--muted); line-height:1.5; }
.access-wizard { width:min(72rem,calc(100vw - 2rem)); max-height:min(48rem,calc(100vh - 2rem)); padding:0; color:var(--ink); background:#fff; border:1px solid var(--oafoch-navy); box-shadow:0 1.2rem 3rem rgb(0 30 60 / 28%); }.access-wizard::backdrop { background:rgb(0 30 51 / 48%); }.access-wizard-header { display:flex; align-items:start; justify-content:space-between; gap:1.5rem; padding:1.5rem 1.65rem 1.35rem; border-bottom:3px solid var(--oafoch-navy); }.access-wizard-header h2 { margin:.15rem 0 .3rem; color:var(--oafoch-navy); font-size:1.55rem; }.access-wizard-header p:last-child { max-width:44rem; margin:0; color:var(--muted); line-height:1.5; }.access-wizard-steps { display:flex; overflow-x:auto; padding:0 1.65rem; background:#f2f2f2; border-bottom:1px solid var(--border); }.access-wizard-steps button { flex:0 0 auto; display:flex; align-items:center; gap:.5rem; min-height:3.5rem; padding:0 1rem; color:var(--oafoch-navy); font:inherit; font-size:.88rem; font-weight:700; background:transparent; border:0; border-bottom:3px solid transparent; cursor:pointer; }.access-wizard-steps button span { display:grid; width:1.45rem; height:1.45rem; color:#fff; place-items:center; font-size:.75rem; background:#718290; }.access-wizard-steps button.is-active { color:var(--oafoch-teal); border-bottom-color:var(--oafoch-teal); }.access-wizard-steps button.is-active span { background:var(--oafoch-teal); }.access-wizard-panel { display:none; padding:1.5rem 1.65rem 1.8rem; }.access-wizard-panel.is-active { display:block; }.access-wizard-panel h3 { margin:0; color:var(--oafoch-navy); font-size:1.2rem; }.access-wizard-panel > p { margin:.45rem 0 0; color:var(--muted); line-height:1.5; }.access-form-compact { grid-template-columns:repeat(4,minmax(0,1fr)) auto; }.access-form-short { grid-template-columns:repeat(2,minmax(0,1fr)) auto; }.access-form-rights { grid-template-columns:repeat(3,minmax(0,1fr)); }.access-form-delegation { grid-template-columns:repeat(3,minmax(0,1fr)); }.access-form-rights button,.access-form-delegation button { justify-self:start; }
.user-wizard { width:min(52rem,calc(100vw - 2rem)); }.user-wizard-progress { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border-bottom:1px solid var(--border); }.user-wizard-progress span { padding:.85rem 1rem; color:#607587; font-size:.85rem; font-weight:700; background:#f2f2f2; }.user-wizard-progress span.is-active { color:var(--oafoch-navy); background:#fff; }.user-wizard-page { display:none; min-height:20rem; padding:1.7rem 1.65rem; }.user-wizard-page.is-active { display:block; }.user-wizard-page h3 { margin:0; color:var(--oafoch-navy); font-size:1.25rem; }.user-wizard-page > p { max-width:44rem; margin:.45rem 0 1.5rem; color:var(--muted); line-height:1.5; }.user-wizard-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.1rem; }.user-wizard-fields label { display:grid; gap:.35rem; color:var(--oafoch-navy); font-size:.82rem; font-weight:700; }.user-wizard-fields input { width:100%; min-height:2.6rem; padding:.55rem .65rem; color:var(--ink); font:inherit; background:#fff; border:1px solid var(--border); }.user-wizard-fields small { color:var(--muted); font-size:.8rem; font-weight:400; }.user-wizard-fields .form-full { grid-column:1 / -1; }.access-profile-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }.access-profile-grid label { position:relative; display:block; cursor:pointer; }.access-profile-grid input { position:absolute; width:1px; height:1px; opacity:0; }.access-profile-grid span { display:block; min-height:7.5rem; padding:1rem; background:#fff; border:1px solid var(--border); border-left:4px solid #718290; }.access-profile-grid strong { display:block; margin-bottom:.4rem; color:var(--oafoch-navy); }.access-profile-grid small { color:var(--muted); line-height:1.45; }.access-profile-grid input:checked + span { border-color:var(--oafoch-teal); border-left-color:var(--oafoch-teal); background:#f1fbfb; }.access-profile-grid input:focus-visible + span { outline:3px solid rgb(0 153 153 / 30%); outline-offset:2px; }.user-wizard-review { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; border-top:1px solid var(--border); border-left:1px solid var(--border); }.user-wizard-review div { padding:1rem; border-right:1px solid var(--border); border-bottom:1px solid var(--border); }.user-wizard-review dt { color:#486174; font-size:.75rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }.user-wizard-review dd { margin:.35rem 0 0; color:var(--ink); }.access-confirmation { padding:.85rem 1rem; border-left:4px solid var(--oafoch-teal); background:#f2f2f2; }.user-wizard-actions { display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:1rem 1.65rem 1.35rem; border-top:1px solid var(--border); }.user-wizard-actions [data-user-next],.user-wizard-actions [data-user-save] { margin-left:auto; }
.back-link { display:inline-block; margin:0 0 1.25rem; color:var(--oafoch-navy); font-size:.9rem; font-weight:700; }.access-detail-grid { display:grid; gap:1.25rem; }.access-record-list { margin:1.15rem 0 0; padding:0; list-style:none; border-top:1px solid var(--border); }.access-record-list li { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 0; border-bottom:1px solid var(--border); }.access-record-list span { display:grid; gap:.2rem; }.access-record-list strong { color:var(--oafoch-navy); }.access-record-list small { color:var(--muted); }
.user-edit-link { color:var(--oafoch-navy); font-weight:700; text-decoration:underline; text-underline-offset:.16em; }
.administration-navigation { display:flex; flex-wrap:wrap; gap:0; margin:0 0 1.75rem; border-bottom:1px solid #b8c4cd; }.administration-navigation a,.administration-navigation span { display:block; padding:.75rem 1rem; color:var(--oafoch-navy); font-size:.9rem; font-weight:700; text-decoration:none; border-bottom:3px solid transparent; }.administration-navigation a:hover { color:var(--oafoch-teal); }.administration-navigation a.active { color:var(--oafoch-teal); border-bottom-color:var(--oafoch-teal); }.administration-navigation span { color:#6f8190; font-weight:400; cursor:default; }.administration-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.15rem; }.administration-area { display:flex; min-height:13rem; flex-direction:column; padding:1.4rem; color:inherit; text-decoration:none; background:#fff; border:1px solid var(--border); }.administration-area h2 { margin:0 0 .65rem; color:var(--oafoch-navy); font-size:1.2rem; }.administration-area p { margin:0; color:var(--muted); line-height:1.55; }.administration-area > span { margin-top:auto; color:var(--oafoch-navy); font-size:.85rem; font-weight:700; }.administration-area-future { color:#6f8190; background:#f8fafb; }.administration-area-future h2 { color:#486174; }

.footer-note { margin: 2.5rem 0 0; color: var(--muted); font-size: .85rem; line-height: 1.5; }

@media (max-width: 860px) {
  .module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero { grid-template-columns: 1fr; }
}

@media (max-width: 580px) {
  .shell { padding: 1.25rem 20px 2.5rem; }
  .masthead { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .masthead-actions { align-items: flex-start; flex-direction: column; }
  .hero { padding: 1.5rem; border-radius: 1rem; }
  .module-grid { grid-template-columns: 1fr; }
  .module-status-form,.module-audience-form { grid-template-columns:1fr; }
  .module-admin-card > header { align-items:flex-start; flex-direction:column; }
  .project-detail,.project-member-form,.project-gate-form { grid-template-columns:1fr; }
  .project-detail-primary,.project-detail-secondary { grid-column:1; }
  .project-cockpit { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .project-detail > .project-status-card,.project-detail > .project-team,.project-detail > .project-tasks,.project-detail > .project-gates { grid-column:1 / -1; }
  .project-facts { grid-template-columns:1fr; }
  .project-facts-signal { grid-column:1; grid-row:auto; justify-self:start; justify-items:start; }
  .project-signal-grid { justify-content:start; }
  .project-leadership-row { grid-template-columns:1fr; gap:.7rem; }.project-leadership-row dl { justify-content:start; }
  .project-facts p:nth-last-child(-n+2) { padding-bottom:.75rem; border-bottom:1px solid var(--border); }
  .project-facts p:last-child { padding-bottom:0; border-bottom:0; }
  .administration-overview { grid-template-columns:1fr; }
  .access-heading { align-items:flex-start; flex-direction:column; }
  .access-form,.access-summary-grid,.access-form-compact,.access-form-short,.access-form-rights,.access-form-delegation { grid-template-columns:1fr; }
  .user-wizard-fields,.access-profile-grid,.user-wizard-review { grid-template-columns:1fr; }
  .user-wizard-page { min-height:0; }
  .hero h1 { white-space: normal; }
}

/* Prepared only for the later identity-provider-driven login screen. */
.login-shell {
  position: relative;
  display: grid;
  min-height: 100vh;
  padding: 1.5rem;
  overflow: hidden;
  place-items: center;
  background-image: var(--login-background, url("/media/login/ribbon-spirale.png"));
  background-position: center;
  background-size: cover;
}

.login-shell::before {
  position: absolute;
  inset: 0;
  content: "";
  background: rgb(0 51 102 / 25%);
}

.login-panel {
  position: relative;
  width: min(100%, 32rem);
  padding: clamp(2rem, 6vw, 3.5rem);
  background: rgb(255 255 255 / 95%);
  border: 1px solid rgb(255 255 255 / 65%);
  border-radius: 1.25rem;
  box-shadow: 0 1.5rem 4rem rgb(0 28 59 / 28%);
}

.login-panel .brand-mark { width: min(100%, 336px); height:auto; }
.login-panel h1 { margin: 2.25rem 0 .75rem; color: var(--oafoch-navy-deep); font-size: 1.8rem; }
.login-panel p { margin: 0; color: var(--muted); line-height: 1.6; }
.login-status { display: inline-block; margin-top: 1.5rem; padding: .45rem .7rem; color: #057276; font-size: .85rem; font-weight: 700; background: var(--oafoch-teal-soft); border-radius: .5rem; }
.login-form { display: grid; gap: .5rem; margin-top: 1.5rem; }
.login-form label { color: var(--oafoch-navy-deep); font-size: .88rem; font-weight: 700; }
.login-form input { width: 100%; margin-bottom: .6rem; padding: .72rem .8rem; color: var(--ink); font: inherit; background: white; border: 1px solid var(--border); border-radius: .55rem; }
.login-form button { margin-top: .35rem; }
.login-error { margin-top: 1.25rem !important; padding: .7rem .8rem; color: #8c1f1f !important; background: #fff0f0; border: 1px solid #f2c2c2; border-radius: .55rem; }
.back-link { display: inline-block; margin-bottom: 2rem; color: var(--oafoch-navy); font-weight: 700; text-decoration: none; }
.placeholder { padding: 2.5rem; background: white; border: 1px solid var(--border); border-radius: 1.25rem; }
.placeholder h1 { margin: 0; color: var(--oafoch-navy-deep); }

/* OVB Style Guide: digital controls use 16px type, 1.5 line-height, 2px borders and square corners. */
.notification-action, .logout-button, .login-form button, .crm-form button {
  padding: .45rem 1rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  border-width: 2px;
  box-shadow: none;
}
.secondary-action { border-width: 2px; }
.back-link { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .15em; }
.masthead { background: #fff; border-bottom: 1px solid #6699cc; }
.module-card, .notification-card, .crm-panel, .empty-state, .crm-form, .login-panel, .placeholder, .hero, .summary-item, .crm-table-wrap { box-shadow: none; }
.crm-form input, .crm-form select, .login-form input { min-height: auto; padding: 1rem; color: #000; font-size: 1rem; line-height: 1.5; border: 2px solid var(--border); box-shadow: none; }
.crm-form label { font-size: .75rem; }
.crm-form fieldset { border: 2px solid var(--border); }

.crm-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin: var(--crm-content-top) 0 var(--crm-section-gap); }
.crm-heading .eyebrow { margin: 0 0 var(--crm-eyebrow-gap); }
.crm-heading h1 { margin: 0 0 var(--crm-heading-gap); color: var(--oafoch-navy-deep); font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; }
.crm-heading > div > p:last-child { max-width: 62ch; margin: 0; color: var(--muted); line-height: 1.5; }
.crm-table-wrap { overflow-x: auto; background: white; border: 1px solid var(--border); border-radius: .9rem; }
.crm-table-wrap table { width: 100%; min-width: 48rem; border-collapse: collapse; }
.crm-table-wrap th, .crm-table-wrap td { padding: .9rem 1rem; text-align: left; border-bottom: 1px solid var(--border); }
.crm-table-wrap th { color: var(--muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; background: #f8fbfd; }
.crm-table-wrap td { font-size: .92rem; }
.crm-table-wrap tr:last-child td { border-bottom: 0; }
.crm-table-wrap a { color: var(--oafoch-navy); font-weight: 700; }
.empty-state, .crm-panel, .crm-form { padding: 1.5rem; background: white; border: 1px solid var(--border); border-radius: .9rem; }
.empty-state h2, .crm-panel h2 { margin: 0 0 .65rem; color: var(--oafoch-navy-deep); font-size: 1.2rem; }
.empty-state p, .crm-panel p { margin: 0; color: var(--muted); line-height: 1.55; }
.crm-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.crm-panel dl { display: grid; gap: .75rem; margin: 0; }
.crm-panel dl div { display: grid; gap: .15rem; }
.crm-panel dt { color: var(--muted); font-size: .78rem; font-weight: 700; }
.crm-panel dd { margin: 0; line-height: 1.4; }
.crm-panel ul { padding-left: 1.2rem; color: var(--ink); line-height: 1.55; }
.crm-form { display: grid; gap: 1.25rem; }
.crm-form fieldset { display: grid; gap: 1rem; margin: 0; padding: 1.25rem; border: 1px solid var(--border); border-radius: .65rem; }
.crm-form legend { padding: 0 .3rem; color: var(--oafoch-navy-deep); font-weight: 700; }
.crm-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; min-width: 0; }
.crm-form-grid > fieldset { grid-column: 1 / -1; min-width: 0; box-sizing: border-box; }
.crm-form-grid > fieldset > .crm-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.crm-form label { display: grid; min-width: 0; gap: .35rem; color: var(--ink); font-size: .88rem; font-weight: 700; }
.crm-form input, .crm-form select, .crm-form textarea { width: 100%; min-width: 0; box-sizing: border-box; min-height: 2.55rem; padding: .55rem .65rem; color: var(--ink); font: inherit; font-weight: 400; background: white; border: 1px solid var(--border); border-radius: .45rem; }
.crm-form textarea { min-height: 5rem; resize: vertical; }
.crm-action-drawer .crm-form > fieldset { gap: 1.4rem; padding: 0; border: 0; border-radius: 0; }
.crm-action-drawer .crm-form > fieldset > legend { padding: 0; color: var(--oafoch-navy); font-size: 1.05rem; }
.crm-action-drawer .crm-form-grid > fieldset { padding: 0; border: 0; border-radius: 0; }
.crm-action-drawer .crm-form-grid > fieldset > legend { display: block; width: 100%; box-sizing: border-box; margin: 0 0 1.25rem; padding: 0 0 .8rem; color: var(--oafoch-navy); font-size: 1.1rem; font-weight: 700; letter-spacing: .01em; border-bottom: 2px solid #91a8b8; }
.crm-detail-followup { margin-top: 1rem; }
.compact-form { margin-top: 1rem; padding: 0; border: 0; }

/* Customer record workspace: a readable record sheet, not a generic tile collection. */
.crm-record { position: relative; display: block; max-width: 100%; margin: 0; padding: 1.4rem 0; background: transparent; border: 0; border-top: 2px solid var(--border); }
.crm-record:first-of-type { border-top-color: var(--oafoch-navy); }
.customer-record-header { display:flex; justify-content:space-between; gap:2rem; padding:1.5rem 0; border-top:3px solid var(--oafoch-navy); border-bottom:2px solid var(--oafoch-navy); }
.customer-record-header h1 { margin:.2rem 0; color:var(--oafoch-navy-deep); }
.customer-record-header p { margin:.35rem 0; }
.customer-header-actions { display:flex; flex-wrap:wrap; align-content:start; justify-content:end; gap:.5rem; max-width:31rem; }
.header-action-disabled { padding:.45rem 1rem; color:var(--muted); border:2px solid var(--border); }
.customer-record-header + .crm-record { margin-top: 0; border-top: 0; }
.crm-record > dl { border-top:1px solid var(--border); border-left:1px solid var(--border); }
.crm-record > dl > div { min-height:4.6rem; padding:.7rem .9rem; border-right:1px solid var(--border); border-bottom:1px solid var(--border); }
.crm-next-steps { width:min(100%,21rem); margin-left:auto; padding:1.25rem; border-left:2px solid var(--oafoch-navy); background:#f8fbfd; }
.crm-next-steps h2 { font-size:1.05rem; }
.customer-workspace { max-width: var(--portal-content-width); background: #fff; }
.record-breadcrumb { display:flex; gap:.55rem; padding:1rem 0; color:var(--muted); font-size:.85rem; border-bottom:1px solid var(--border); }
.record-breadcrumb a { color:var(--oafoch-navy); }
.record-identity { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2rem; padding:2rem 0; border-bottom:3px solid var(--oafoch-navy); }
.record-identity h1 { margin:.3rem 0; color:var(--oafoch-navy); font-size:clamp(2rem,4vw,2.8rem); }
.record-subline { margin:0; color:var(--muted); }
.record-status { display:flex; gap:.7rem; align-items:center; margin-top:1rem; }
.record-status strong { padding:.35rem .65rem; color:#166450; background:#eef7f4; border-left:5px solid #087a62; }
.record-status span { padding:.35rem .65rem; color:#17636b; background:#edf8f8; border-left:5px solid var(--oafoch-teal); }
.record-actions { display:flex; flex-wrap:wrap; align-content:end; justify-content:end; gap:.6rem; max-width:30rem; }
.record-phone-disabled { padding:.52rem .85rem; color:var(--muted); border:2px solid var(--border); }
.record-layout { display:grid; grid-template-columns:minmax(0,1fr) 19rem; gap:2.4rem; margin-top:1.8rem; }
.record-section { margin:0; padding:0 0 1.8rem; border-bottom:1px solid var(--border); }
.record-section + .record-section { padding-top:1.8rem; }
.record-section h2,.record-rail h2 { margin:0 0 .35rem; color:var(--oafoch-navy); font-size:1.3rem; }
.record-section-lead { margin:0 0 1rem; color:var(--muted); }
.record-data-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:0 0 1rem; border:1px solid var(--border); border-right:0; border-bottom:0; }
.record-data-grid > div { min-height:4.5rem; padding:.7rem .85rem; border-right:1px solid var(--border); border-bottom:1px solid var(--border); }
.record-data-grid dt { color:var(--muted); font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.record-data-grid dd { margin:.35rem 0 0; line-height:1.4; }
.record-rail { align-self:start; padding-left:1.5rem; border-left:1px solid var(--border); }
.record-rail h2 { border-top:3px solid var(--oafoch-teal); padding-top:.7rem; }
.record-task-list article { display:grid; gap:.25rem; padding:1rem 0; border-top:1px solid var(--border); }
.record-task-list article:first-child { border-top:0; }
.record-task-list strong { color:var(--oafoch-navy); }.record-task-list span,.record-task-list small { color:var(--muted); }
.record-task-list small { width:max-content; padding:.15rem .35rem; color:#936000; background:#f6eedb; }
.record-rail-note,.record-note,.record-empty { color:var(--muted); line-height:1.55; }
.record-timeline { margin:0 0 0 .4rem; padding:0 0 0 1.4rem; border-left:3px solid #d9e0e4; list-style:none; }
.record-timeline li { position:relative; padding:0 0 1.2rem; }.record-timeline li::before { position:absolute; left:-1.78rem; top:.25rem; width:.65rem; height:.65rem; content:""; background:var(--oafoch-teal); }.record-timeline span { display:block; color:var(--muted); font-size:.85rem; }.record-timeline p { margin:.25rem 0 0; color:var(--muted); }
/* Reference customer-record layout: dense record sheet, never a card grid. */
.portal-app-header,.crm-app-header { position:sticky; top:0; z-index:30; box-sizing:border-box; display:flex; align-items:center; justify-content:space-between; height:74px; min-height:74px; padding:0 var(--portal-gutter); background:#fff; border-bottom:4px solid var(--oafoch-navy); }
.portal-app-header img,.crm-app-header img { width:auto; max-width:250px; max-height:48px; height:auto; flex-shrink:0; object-fit:contain; }.portal-brand { display:inline-flex; align-items:center; }.portal-brand-logo-dark { display:none; }.portal-header-actions { display:flex; align-items:center; gap:24px; height:70px; }.portal-app-header nav,.crm-app-header nav { display:flex; gap:26px; align-items:center; height:70px; color:var(--oafoch-navy); font-size:.9rem; }.portal-app-header nav a,.crm-app-header nav strong { position:relative; display:flex; align-items:center; height:70px; padding:0; color:var(--oafoch-navy); text-decoration:none; }.portal-app-header nav a.active::after,.crm-app-header nav strong::after { position:absolute; right:0; bottom:20px; left:0; height:3px; content:""; background:var(--oafoch-teal); }.portal-notifications-link,.portal-tasks-link { gap:5px; }.portal-notification-count,.portal-task-count { display:inline-grid; min-width:1.25rem; height:1.25rem; padding:0 4px; color:#fff; font-size:.7rem; font-weight:700; line-height:1.25rem; text-align:center; background:#b32030; }.portal-task-count { background:var(--ovb-blue); }.portal-logout-form { margin:0; }.portal-logout-form button { padding:8px 11px; color:var(--oafoch-navy); font:inherit; font-size:.82rem; font-weight:700; cursor:pointer; background:#fff; border:1px solid var(--oafoch-navy); }
.portal-user-menu { position:relative; align-self:stretch; display:flex; align-items:center; }.portal-user-trigger { display:flex; align-items:center; gap:.65rem; padding:0; color:var(--oafoch-navy); font:inherit; text-align:right; cursor:pointer; background:transparent; border:0; }.portal-user-copy,.portal-user-popover-heading > span:last-child { display:grid; gap:.13rem; }.portal-user-copy strong,.portal-user-popover-heading strong { font-size:.88rem; line-height:1.1; }.portal-user-copy small,.portal-user-popover-heading small { color:var(--muted); font-size:.72rem; line-height:1.1; }.portal-user-avatar { display:grid; width:2.55rem; height:2.55rem; flex:0 0 2.55rem; color:#fff; font-size:.78rem; font-weight:800; letter-spacing:.03em; place-items:center; background:var(--oafoch-navy); border:2px solid var(--oafoch-teal); }.portal-user-trigger:hover .portal-user-avatar:not(.has-photo),.portal-user-trigger:focus-visible .portal-user-avatar:not(.has-photo) { background:var(--oafoch-teal); }.portal-user-trigger:hover .portal-user-avatar.has-photo,.portal-user-trigger:focus-visible .portal-user-avatar.has-photo { box-shadow:0 0 0 2px var(--oafoch-teal); }.portal-user-trigger:focus-visible { outline:2px solid var(--oafoch-teal); outline-offset:4px; }.portal-user-popover { position:absolute; top:calc(100% - .25rem); right:0; z-index:60; display:grid; min-width:16.5rem; padding:.55rem; color:var(--ink); text-align:left; background:var(--surface); border:1px solid var(--border); box-shadow:0 .8rem 2rem rgb(0 34 68 / 18%); }.portal-user-popover[hidden] { display:none; }.portal-user-popover-heading { display:flex; gap:.75rem; align-items:center; padding:.55rem .6rem .8rem; border-bottom:1px solid var(--border); }.portal-user-popover a,.portal-user-popover > button,.portal-user-popover .portal-logout-form button { display:block; width:100%; padding:.68rem .6rem; color:var(--oafoch-navy); font:inherit; font-size:.86rem; font-weight:700; text-align:left; text-decoration:none; cursor:pointer; background:transparent; border:0; }.portal-user-popover a:hover,.portal-user-popover a:focus-visible,.portal-user-popover > button:hover,.portal-user-popover > button:focus-visible,.portal-user-popover .portal-logout-form button:hover,.portal-user-popover .portal-logout-form button:focus-visible { color:#fff; background:var(--oafoch-navy); outline:0; }.portal-user-menu-separator { height:1px; margin:.35rem 0; background:var(--border); }.portal-user-popover .portal-logout-form button { color:#a2152b; }.portal-user-popover .portal-logout-form button:hover,.portal-user-popover .portal-logout-form button:focus-visible { color:#fff; background:#a2152b; }
.portal-toast-region { position:fixed; top:.85rem; left:50%; z-index:100; display:grid; gap:.55rem; width:min(32rem,calc(100vw - 2rem)); pointer-events:none; transform:translateX(-50%); }.portal-toast { display:flex; gap:.8rem; align-items:flex-start; min-height:3rem; padding:.75rem .85rem .75rem 1rem; color:#083c2d; font-size:.9rem; font-weight:700; line-height:1.35; pointer-events:auto; background:#dff5e7; border-left:5px solid #14834f; box-shadow:0 .7rem 1.8rem rgb(0 40 68 / 18%); animation:portal-toast-in 180ms ease-out; }.portal-toast p { margin:0; flex:1; }.portal-toast button { width:1.6rem; height:1.6rem; padding:0; color:currentColor; font:inherit; font-size:1.35rem; line-height:1; cursor:pointer; background:transparent; border:0; }.portal-toast-error { color:#44205c; background:#f0e4f5; border-left-color:#8c4bb0; }.portal-toast-info { color:#073c66; background:#e0f1f5; border-left-color:#007e8b; }.portal-toast-critical { color:#6a1427; background:#fde4ea; border-left-color:#c51f42; }.portal-toast.is-leaving { opacity:0; transform:translateY(-.4rem); transition:opacity 180ms ease,transform 180ms ease; }@keyframes portal-toast-in { from { opacity:0; transform:translateY(-.45rem); } to { opacity:1; transform:translateY(0); } }
.portal-module-navigation { position:sticky; top:74px; z-index:29; display:flex; gap:0; box-sizing:border-box; width:min(100%,var(--portal-content-width)); min-height:46px; margin:0 auto; padding:0 var(--portal-gutter); background:#fff; border-bottom:1px solid #b8c4cd; }.portal-module-navigation a { display:flex; align-items:center; min-height:46px; padding:0 1rem; color:var(--oafoch-navy); font-size:.88rem; font-weight:700; text-decoration:none; border-bottom:3px solid transparent; }.portal-module-navigation a:first-child { padding-left:0; padding-right:1.2rem; }.portal-module-navigation a.active { color:var(--oafoch-teal); border-bottom-color:var(--oafoch-teal); }
.portal-side-drawer { position:fixed; top:125px; bottom:0; z-index:27; width:min(max(25vw,23rem),calc(100vw - 42px)); padding:22px 20px; overflow-y:auto; background:#fff; box-shadow:none; transition:transform 180ms ease-out; }.portal-drawers-below-module .portal-side-drawer { top:120px; }
.portal-side-drawer-left { left:0; border-right:2px solid var(--oafoch-navy); transform:translateX(-100%); }.portal-side-drawer-right { right:0; border-left:2px solid var(--oafoch-teal); transform:translateX(100%); }.portal-side-drawer.is-open { transform:translateX(0); }
.portal-side-drawer header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:14px; border-bottom:2px solid var(--border); }.portal-side-drawer h2 { margin:0; color:var(--oafoch-navy); font-size:1.1rem; }.portal-drawer-close { padding:0; color:var(--oafoch-navy); font:inherit; font-size:.82rem; font-weight:700; text-decoration:underline; cursor:pointer; background:transparent; border:0; }
.portal-drawer-empty { min-height:9rem; }.portal-drawer-grip { position:fixed; top:calc(125px + 54px); z-index:28; display:flex; align-items:center; min-height:8.5rem; padding:12px 7px; color:#fff; font:inherit; font-size:.76rem; font-weight:700; letter-spacing:.02em; writing-mode:vertical-rl; cursor:pointer; border:0; transition:transform 180ms ease-out; }.portal-drawers-below-module .portal-drawer-grip { top:calc(120px + 54px); }.portal-drawer-grip-left { left:0; background:var(--oafoch-navy); }.portal-drawer-grip-right { right:0; background:var(--oafoch-teal); }.portal-drawer-grip-left.is-open { transform:translateX(-100%); }.portal-drawer-grip-right.is-open { transform:translateX(100%); }
.portal-assistant { display:grid; gap:18px; padding:20px 0 4px; }.portal-assistant-portrait { position:relative; display:grid; min-height:222px; overflow:hidden; place-items:end center; background:#f2f2f2; border-bottom:3px solid var(--oafoch-teal); }.portal-assistant-portrait::after { display:none; }.portal-assistant-portrait img { display:block; width:min(100%,270px); height:222px; object-fit:contain; object-position:center bottom; transform-origin:center bottom; }.portal-assistant.is-active .portal-assistant-portrait img { animation:humphrey-breathe 4.8s ease-in-out infinite; }.portal-assistant[data-humphrey-state="thinking"] .portal-assistant-portrait img { animation:humphrey-think 1.4s ease-in-out infinite; }.portal-assistant-intro { padding-left:14px; border-left:4px solid var(--oafoch-navy); }.portal-assistant-intro h3 { margin:5px 0 3px; color:var(--oafoch-navy); font-size:1.25rem; }.portal-assistant-intro p { margin:0; color:var(--muted); line-height:1.55; }.portal-assistant-presence { display:flex; align-items:center; gap:7px; color:var(--oafoch-navy); font-size:.78rem; font-weight:700; }.portal-assistant-presence span:first-child { width:9px; height:9px; background:var(--oafoch-teal); }.portal-assistant.is-active .portal-assistant-presence span:first-child { animation:humphrey-presence 2.4s ease-in-out infinite; }.portal-assistant[data-humphrey-state="thinking"] .portal-assistant-presence span:first-child { animation:humphrey-thinking .9s ease-in-out infinite; }.portal-assistant-suggestions { display:grid; gap:0; border-top:1px solid var(--border); }.portal-assistant-suggestions button { padding:12px 0; color:var(--oafoch-navy); font:inherit; font-size:.9rem; font-weight:700; text-align:left; cursor:pointer; background:transparent; border:0; border-bottom:1px solid var(--border); }.portal-assistant-suggestions button::after { float:right; content:"→"; color:var(--oafoch-teal); }.portal-assistant-suggestions button:hover,.portal-assistant-suggestions button:focus-visible { color:var(--oafoch-teal); outline:2px solid var(--oafoch-teal); outline-offset:-2px; } @keyframes humphrey-breathe { 0%,100% { transform:translateY(0) scale(1); } 50% { transform:translateY(-3px) scale(1.008); } } @keyframes humphrey-think { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-2px) rotate(-.5deg); } } @keyframes humphrey-presence { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:.45; transform:scale(.82); } } @keyframes humphrey-thinking { 0%,100% { transform:scale(1); } 50% { transform:scale(.72); } } @media (prefers-reduced-motion:reduce) { .portal-assistant.is-active .portal-assistant-portrait img,.portal-assistant.is-active .portal-assistant-presence span:first-child { animation:none; } }
.reference-record { max-width:var(--portal-content-width); min-height:calc(100vh - 74px); margin:0 auto; padding:0 var(--portal-gutter) 52px; background:#fff; }
.reference-crumb { position:sticky; top:74px; z-index:29; box-sizing:border-box; display:flex; gap:.55rem; height:51px; margin:0 calc(var(--portal-gutter) * -1); padding:17px var(--portal-gutter); color:var(--muted); font-size:.82rem; line-height:16px; background:#f4f6f7; border-bottom:1px solid #b8c4cd; }.reference-crumb a,.reference-crumb strong { color:var(--oafoch-navy); }
.reference-identity { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px; padding:var(--crm-content-top) 0 var(--crm-section-gap); border-bottom:2px solid var(--oafoch-navy); }.reference-identity .eyebrow { margin:0 0 var(--crm-eyebrow-gap); }.reference-identity h1 { margin:0 0 var(--crm-heading-gap); color:var(--oafoch-navy); font-size:clamp(2.1rem,4vw,2.9rem); line-height:1.1; }.reference-subline { margin:0; color:var(--muted); line-height:1.5; }
.customer-mark { display:inline-flex; width:1em; height:1em; margin-left:.28em; vertical-align:-.08em; color:#003366; }
.customer-mark svg,.identity-line-icon svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:3.5; stroke-linecap:round; stroke-linejoin:round; }
.customer-mark[aria-label="Männlich"] { color:#0079B8; }.customer-mark[aria-label="Weiblich"] { color:#E85C93; }.customer-mark[aria-label="Divers"] { color:#008C8C; }
.reference-address,.reference-birth { display:inline-flex; align-items:center; gap:8px; margin:0; color:var(--muted); line-height:1.5; }.reference-birth { margin-left:22px; }
.identity-line-icon { display:inline-flex; width:1.05rem; height:1.05rem; flex:0 0 auto; color:var(--oafoch-teal); }
.customer-list-name { display:inline-flex; align-items:center; gap:2px; }
.customer-edit-workspace { padding-bottom:0; }
.customer-edit-form { margin-top:28px; padding:0; background:transparent; border:0; }
.customer-edit-form .customer-edit-tabs { margin-bottom:0; }
.customer-edit-content { min-height:28rem; }
.customer-edit-content > [data-edit-panel][hidden] { display:none !important; }
.customer-edit-content > fieldset { margin:0; padding:26px 0; background:transparent; border:0; border-bottom:1px solid #b8c4cd; }
.customer-edit-content > fieldset > legend { display:block; width:100%; margin:0 0 18px; padding:0; color:var(--oafoch-navy); font-size:1.25rem; font-weight:700; }
.customer-edit-content > fieldset > .crm-form-grid { gap:18px 22px; }
.customer-edit-content > fieldset > p.record-note { margin:0 0 18px; }
.customer-edit-empty { padding:30px 0; border-bottom:1px solid #b8c4cd; }
.customer-edit-empty h2 { margin:0 0 6px; color:var(--oafoch-navy); font-size:1.25rem; }
.customer-edit-empty p { margin:0; color:var(--muted); line-height:1.5; }
.customer-edit-actions { position:sticky; bottom:0; z-index:28; display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 -42px; padding:14px 42px; background:#fff; border-top:2px solid var(--oafoch-navy); box-shadow:0 -8px 18px rgb(0 51 102 / 8%); }
.customer-edit-actions > div { display:flex; flex-wrap:wrap; gap:10px; }
.edit-dirty-state { color:var(--muted); font-size:.9rem; }
.edit-dirty-state:not(:empty) { font-weight:600; }
.reference-status { display:none; }
.reference-actions { display:flex; flex-wrap:wrap; align-items:end; justify-content:end; gap:10px; }.reference-phone-disabled { padding:.58rem .85rem; color:var(--muted); border:2px solid var(--border); }
.reference-content { display:grid; grid-template-columns:minmax(0,1fr) clamp(280px,24vw,330px); gap:38px; width:100%; box-sizing:border-box; margin-top:28px; }.reference-main { min-width:0; box-sizing:border-box; }.reference-rail { min-width:0; box-sizing:border-box; }.reference-section { margin:0; padding:0 0 26px; border-bottom:1px solid #b8c4cd; }.reference-section + .reference-section { padding-top:26px; }.reference-section h2,.reference-rail h2 { margin:0 0 4px; color:var(--oafoch-navy); font-size:1.25rem; }.reference-section > p { margin:0 0 18px; color:var(--muted); }
.customer-tabs { grid-column:1 / -1; display:flex; gap:24px; align-self:start; margin:0 0 2px; border-bottom:1px solid #b8c4cd; }.customer-tabs button { padding:0 0 10px; color:var(--oafoch-navy); font:inherit; font-weight:600; line-height:20px; background:transparent; border:0; border-bottom:3px solid transparent; cursor:pointer; }.customer-tabs button.active { color:var(--oafoch-teal); border-bottom-color:var(--oafoch-teal); }.customer-tab-empty { padding-top:26px; }.reference-rail-note { display:none; }
.reference-section .record-data-grid { grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; }.reference-rail { padding-left:28px; border-left:1px solid #b8c4cd; }.reference-rail h2 { font-size:1.1rem; }.reference-rail .record-task-list article { padding:15px 0; }.reference-rail-note { margin-top:18px; padding:14px; color:#315368; background:#f3f7f8; border-left:5px solid var(--oafoch-teal); }
.organization-contact-list { display:grid; gap:0; margin:0 0 1rem; padding:0; list-style:none; border-top:1px solid var(--border); }
.organization-contact-list li { display:grid; grid-template-columns:minmax(10rem,1fr) minmax(12rem,1.5fr) auto; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid var(--border); }
.organization-contact-list span { display:flex; flex-wrap:wrap; gap:6px; }
.contact-role { display:inline-block; padding:2px 7px; color:#006c70; font-size:.74rem; font-weight:700; background:var(--oafoch-teal-soft); border:1px solid #9ad9d8; }
.link-button { padding:0; color:var(--oafoch-navy); font:inherit; text-decoration:underline; cursor:pointer; background:transparent; border:0; }
.crm-role-set { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:12px 18px; padding:0; border:0; }
.crm-role-set legend { width:100%; margin-bottom:3px; color:var(--oafoch-navy); font-weight:700; }
@media(max-width:900px){.portal-app-header,.crm-app-header,.reference-record{padding-left:20px;padding-right:20px}.portal-module-navigation{padding-left:20px;padding-right:20px}.reference-crumb{margin:0 -20px;padding-left:20px;padding-right:20px}.portal-app-header nav,.crm-app-header nav{gap:12px}.portal-header-actions{gap:14px}.reference-content,.reference-identity{grid-template-columns:1fr}.reference-actions{justify-content:start}.reference-rail{padding:22px 0 0;border-left:0;border-top:1px solid #b8c4cd}.reference-section .record-data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-edit-actions{margin:0 -20px;padding-left:20px;padding-right:20px}.portal-side-drawer{width:min(23rem,calc(100vw - 32px))}.portal-drawer-grip{top:143px}.portal-drawers-below-module .portal-drawer-grip{top:calc(120px + 54px)}}
.portal-assistant-portrait img { position:absolute; inset:0; margin:auto; opacity:0; transition:opacity 70ms linear; }.portal-assistant-portrait[data-humphrey-frame="neutral"] img[data-humphrey-frame-image="neutral"],.portal-assistant-portrait[data-humphrey-frame="blink"] img[data-humphrey-frame-image="blink"],.portal-assistant-portrait[data-humphrey-frame="speaking"] img[data-humphrey-frame-image="speaking"] { opacity:1; }
.portal-assistant-chat { display:grid; gap:12px; padding-top:4px; }.portal-assistant-chat form { display:grid; gap:7px; }.portal-assistant-chat label { color:var(--oafoch-navy); font-size:.78rem; font-weight:700; }.portal-assistant-chat textarea { width:100%; min-height:76px; padding:9px; color:var(--ink); font:inherit; line-height:1.45; resize:vertical; background:#fff; border:1px solid var(--oafoch-navy); }.portal-assistant-chat button { justify-self:start; min-height:36px; padding:7px 13px; color:#fff; font:inherit; font-size:.88rem; font-weight:700; cursor:pointer; background:var(--oafoch-navy); border:1px solid var(--oafoch-navy); }.portal-assistant-chat button:hover,.portal-assistant-chat button:focus-visible { background:var(--oafoch-teal); border-color:var(--oafoch-teal); outline:2px solid var(--oafoch-teal); outline-offset:2px; }.portal-assistant-chat button:disabled { cursor:wait; opacity:.65; }.portal-assistant-answer { padding:12px; background:#f3f7f8; border-left:4px solid var(--oafoch-teal); }.portal-assistant-answer p { white-space:pre-wrap; }.portal-assistant-answer .portal-assistant-source { margin:0 0 6px; color:#006c70; font-size:.75rem; font-weight:700; text-transform:uppercase; }.portal-assistant-answer ul { display:grid; gap:4px; margin:10px 0 0; padding:8px 0 0 18px; color:var(--muted); font-size:.78rem; border-top:1px solid var(--border); }.portal-assistant-answer ul:empty { display:none; }

/* Humphrey is deliberately presented as a compact working conversation, not as a generic sidebar. */
.portal-side-drawer-right { display:grid; grid-template-rows:auto minmax(0,1fr); width:min(max(29vw,25rem),29rem); padding:0; overflow:hidden; color:var(--ink); background:#fff; border-left:3px solid var(--oafoch-teal); box-shadow:-18px 0 40px rgb(0 51 102 / 13%); }.portal-side-drawer-right > header { position:relative; z-index:1; min-height:68px; padding:0 20px; color:#fff; background:var(--oafoch-navy); border:0; }.portal-side-drawer-right > header h2 { color:#fff; font-size:1rem; letter-spacing:.025em; }.portal-side-drawer-right > header h2::before { display:inline-grid; width:22px; height:22px; margin-right:9px; content:"H"; color:var(--oafoch-navy); font-size:.75rem; place-items:center; background:#fff; border:1px solid rgb(255 255 255 / 75%); }.portal-side-drawer-right .portal-drawer-close { padding:6px 0; color:#fff; text-decoration:none; border-bottom:1px solid rgb(255 255 255 / 70%); }.portal-side-drawer-right .portal-assistant { align-content:start; gap:14px; min-height:0; padding:18px; overflow-y:auto; scrollbar-color:var(--oafoch-teal) transparent; }.portal-side-drawer-right .portal-assistant-portrait { min-height:170px; overflow:visible; background:#003366; border:0; box-shadow:0 10px 24px rgb(0 51 102 / 17%); }.portal-side-drawer-right .portal-assistant-portrait::before { position:absolute; top:16px; left:16px; z-index:2; padding:5px 8px; content:"DIGITALE ASSISTENZ"; color:#fff; font-size:.62rem; font-weight:700; letter-spacing:.1em; background:rgb(255 255 255 / 13%); border:1px solid rgb(255 255 255 / 30%); }.portal-side-drawer-right .portal-assistant-portrait img { width:min(100%,252px); height:194px; filter:drop-shadow(8px 8px 8px rgb(0 25 50 / 24%)); }.portal-side-drawer-right .portal-assistant-intro { position:relative; margin-top:-2px; padding:14px 15px 14px 17px; background:#fff; border:1px solid #c7d4dc; border-left:5px solid var(--oafoch-teal); box-shadow:0 4px 12px rgb(0 51 102 / 7%); }.portal-side-drawer-right .portal-assistant-intro h3 { margin:5px 0 4px; font-size:1.45rem; letter-spacing:-.02em; }.portal-side-drawer-right .portal-assistant-intro p { max-width:33ch; font-size:.91rem; }.portal-side-drawer-right .portal-assistant-presence { width:max-content; padding:4px 7px; color:#006c70; letter-spacing:.035em; background:#e7f4f4; border:1px solid #9ad9d8; }.portal-side-drawer-right .portal-assistant-presence span:first-child { width:7px; height:7px; }.portal-side-drawer-right .portal-assistant-suggestions { display:flex; flex-wrap:wrap; gap:7px; padding:2px 0 0; border:0; }.portal-side-drawer-right .portal-assistant-suggestions button { flex:1 1 10rem; min-height:40px; padding:8px 10px; color:var(--oafoch-navy); font-size:.79rem; font-weight:600; line-height:1.25; text-align:left; background:#fff; border:1px solid #b8c4cd; }.portal-side-drawer-right .portal-assistant-suggestions button::after { margin-left:6px; }.portal-side-drawer-right .portal-assistant-suggestions button:hover,.portal-side-drawer-right .portal-assistant-suggestions button:focus-visible { color:#fff; background:var(--oafoch-navy); border-color:var(--oafoch-navy); outline:2px solid var(--oafoch-teal); outline-offset:2px; }.portal-side-drawer-right .portal-assistant-suggestions button:hover::after,.portal-side-drawer-right .portal-assistant-suggestions button:focus-visible::after { color:#8ce1e2; }.portal-side-drawer-right .portal-assistant-chat { gap:10px; padding:14px; background:#fff; border:1px solid #c7d4dc; box-shadow:0 4px 12px rgb(0 51 102 / 6%); }.portal-side-drawer-right .portal-assistant-answer { padding:13px 14px; background:#edf6f7; border:0; border-left:4px solid var(--oafoch-teal); }.portal-side-drawer-right .portal-assistant-answer p:not(.portal-assistant-source) { margin:0; color:#163b54; font-size:.9rem; line-height:1.55; }.portal-side-drawer-right .portal-assistant-answer .portal-assistant-source { display:inline-block; margin:0 0 8px; padding:3px 6px; color:#006c70; font-size:.66rem; letter-spacing:.055em; background:#fff; border:1px solid #9ad9d8; }.portal-side-drawer-right .portal-assistant-answer ul { padding-top:9px; font-size:.73rem; }.portal-side-drawer-right .portal-assistant-chat form { gap:8px; }.portal-side-drawer-right .portal-assistant-chat label { display:flex; align-items:center; justify-content:space-between; color:var(--oafoch-navy); font-size:.79rem; }.portal-side-drawer-right .portal-assistant-chat label::after { content:"↵ Enter sendet"; color:var(--muted); font-size:.68rem; font-weight:400; }.portal-side-drawer-right .portal-assistant-chat textarea { min-height:92px; padding:11px; border:1px solid #718290; outline:none; transition:border-color .15s ease,box-shadow .15s ease; }.portal-side-drawer-right .portal-assistant-chat textarea:focus { border-color:var(--oafoch-teal); box-shadow:0 0 0 3px rgb(0 153 153 / 16%); }.portal-side-drawer-right .portal-assistant-chat button { justify-self:stretch; min-height:42px; background:var(--oafoch-navy); }.portal-side-drawer-right .portal-assistant-chat button::after { margin-left:9px; content:"→"; color:#8ce1e2; }.portal-side-drawer-right .portal-assistant-chat button:hover { background:#07548a; }
@media(max-width:580px){.portal-app-header nav a:not(.active),.crm-app-header nav span{display:none}.reference-section .record-data-grid{grid-template-columns:1fr}.reference-actions{display:grid;grid-template-columns:1fr}.reference-actions>*{text-align:center}.customer-edit-actions{align-items:stretch;flex-direction:column}.customer-edit-actions>div{display:grid;grid-template-columns:1fr}.customer-edit-actions a,.customer-edit-actions button{text-align:center}}
@media(max-width:900px){.record-identity,.record-layout{grid-template-columns:1fr}.record-actions{justify-content:start}.record-rail{padding:1.5rem 0 0;border-left:0;border-top:1px solid var(--border)}.record-data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.record-data-grid{grid-template-columns:1fr}.record-identity{padding:1.25rem 0}.record-actions{display:grid;grid-template-columns:1fr}.record-actions>*{text-align:center}}
.crm-record h2 { margin: 0 0 .8rem; color: var(--oafoch-navy-deep); font-size: 1.25rem; }
.crm-record dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem 1.5rem; margin: 0 0 1rem; }
.crm-record dt { color: var(--muted); font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.crm-record dd { margin: .15rem 0 0; font-size: 1rem; }
.crm-record ul { margin: 0 0 1rem; padding: 0; list-style: none; }
.crm-record li { padding: .55rem 0; border-top: 1px solid var(--border); }
.crm-record li:first-child { border-top: 0; }
.crm-record:nth-of-type(5) { min-height: 12rem; padding-right: 21rem; }
.crm-record:nth-of-type(5) > ul:last-of-type { position: absolute; top: 1.4rem; right: 0; width: 18rem; padding: 1rem; background: #f8fbfd; border: 2px solid var(--oafoch-navy); }
.privacy-note { max-width: 68ch; color: var(--muted); font-size: .88rem; line-height: 1.5; }
@media (max-width: 860px) { .crm-record, .crm-record:nth-of-type(5) { padding-right: 0; } .crm-record dl { grid-template-columns: 1fr 1fr; } .crm-record:nth-of-type(5) > ul:last-of-type { position: static; width: auto; } .crm-next-steps { width:auto; max-width:none; margin-left:0; border-left:0; border-top:2px solid var(--oafoch-navy); } }
@media (max-width: 580px) { .crm-record dl { grid-template-columns: 1fr; } }
.crm-form .crm-checkbox { display: flex; align-items: center; gap: .55rem; }
.crm-form .crm-checkbox input { width: 1rem; min-height: 1rem; }
.form-error { color: #9c1928; font-size: .8rem; font-weight: 600; }

.notification-page-heading { margin: .5rem 0 1.5rem; }
.notification-page-heading h1 { margin: 0; color: var(--oafoch-navy-deep); font-size: clamp(2rem, 4vw, 3rem); }
.notification-page-heading > p:last-child { max-width: 62ch; color: var(--muted); line-height: 1.5; }
.notification-list { display: grid; gap: 1rem; }
.notification-card { padding: 1.4rem; background: var(--surface); border: 1px solid var(--border); border-left: .35rem solid var(--oafoch-teal); border-radius: .8rem; box-shadow: 0 .5rem 1.5rem rgb(20 53 82 / 5%); }
.notification-card.priority-important { border-left-color: #d08400; }
.notification-card.priority-urgent { border-left-color: #b32030; }
.notification-card h2 { margin: .7rem 0 .5rem; color: var(--oafoch-navy-deep); font-size: 1.2rem; }
.notification-card h2 a { color: inherit; text-decoration: none; }
.notification-card h2 a:hover, .notification-card h2 a:focus-visible { color: var(--oafoch-teal); text-decoration: underline; }
.notification-card > p { margin: 0; color: var(--muted); line-height: 1.55; }
.notification-preview { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.notification-detail { max-width: 58rem; padding: 2rem; background: var(--surface); border: 1px solid var(--border); border-left: .35rem solid var(--oafoch-teal); }
.notification-detail.priority-important { border-left-color: #d08400; }
.notification-detail.priority-urgent { border-left-color: #b32030; }
.notification-detail-heading { margin-bottom: 1.5rem; }
.notification-detail-heading h1 { margin: .45rem 0 .65rem; color: var(--oafoch-navy-deep); }
.notification-detail-heading .notification-status { display: inline-block; margin: 0; }
.notification-detail-body { margin: 1.5rem 0; color: var(--ink); line-height: 1.7; white-space: pre-wrap; }
.notification-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.notification-priority { margin: 0; color: #057276; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.priority-important .notification-priority { color: #986000; }
.priority-urgent .notification-priority { color: #9c1928; }
.notification-status { padding: .25rem .5rem; color: #546779; font-size: .78rem; font-weight: 700; background: #eef2f6; border-radius: 999px; }
.status-unread .notification-status { color: #003b75; background: #e6f0fa; }
.status-confirmed .notification-status { color: #057276; background: var(--oafoch-teal-soft); }
.notification-metadata { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem 1.5rem; margin: 1.15rem 0; padding-top: 1rem; border-top: 1px solid var(--border); }
.notification-metadata div { display: grid; gap: .15rem; }
.notification-metadata dt { color: var(--muted); font-size: .75rem; font-weight: 700; }
.notification-metadata dd { margin: 0; color: var(--ink); font-size: .9rem; }
.notification-actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.notification-actions form { margin: 0; }
.notification-action { display: inline-block; padding: .58rem .85rem; color: white; font: inherit; font-size: .86rem; font-weight: 700; text-decoration: none; cursor: pointer; background: var(--oafoch-navy); border: 1px solid var(--oafoch-navy); border-radius: .55rem; }
.secondary-action { color: var(--oafoch-navy); background: white; border-color: var(--oafoch-navy); }
.urgent-action { background: #a01d2c; border-color: #a01d2c; }
.notification-entry { width: min(calc(100% - 2rem), 38rem); max-height: min(42rem, calc(100% - 2rem)); padding: 2rem; overflow: auto; color: var(--ink); background: white; border: 2px solid var(--oafoch-navy); border-top: .45rem solid var(--oafoch-teal); box-shadow: none; }
.notification-entry.priority-important { border-top-color: #d08400; }
.notification-entry.priority-urgent { border-top-color: #b32030; }
.notification-entry::backdrop { background: rgb(0 51 102 / 72%); }
.notification-entry h2 { margin: .7rem 2.5rem .5rem 0; color: var(--oafoch-navy-deep); font-size: 1.45rem; }
.notification-entry > p:not(.notification-priority) { color: var(--muted); line-height: 1.6; }
.dialog-close { position: absolute; top: .85rem; right: .85rem; padding: .45rem 1rem; color: var(--oafoch-navy); font: inherit; font-size: 1rem; font-weight: 400; line-height: 1.5; cursor: pointer; background: white; border: 2px solid var(--oafoch-navy); }
.dialog-close:focus-visible, .notification-entry .notification-action:focus-visible { outline: 3px solid #009999; outline-offset: 3px; }
.notification-entry form { margin-top: 1.25rem; }

/* CRM action pattern: native modal semantics prevent accidental interaction with the list behind the drawer. */
.crm-action-drawer { position: fixed !important; inset: 0 0 0 auto !important; right: 0 !important; left: auto !important; width: min(38rem, 100vw); height: 100vh; max-height: none; margin: 0 0 0 auto !important; padding: 1.5rem; overflow-y: auto; color: var(--ink); background: var(--surface); border: 0; border-left: 3px solid var(--oafoch-navy); box-shadow: none; transform: translateX(100%); }
.crm-action-drawer[open] { animation: crm-drawer-in 180ms ease-out forwards; }
.crm-action-drawer.crm-closing { animation: crm-drawer-out 160ms ease-in forwards; }
.crm-action-drawer::backdrop { background: rgb(0 51 102 / 48%); }
.crm-dialog-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.crm-dialog-heading h1 { margin: 0; color: var(--oafoch-navy-deep); font-size: 1.6rem; }
.crm-dialog-actions { display: flex; flex-wrap: wrap; justify-content: end; gap: .75rem; }
@keyframes crm-drawer-in { to { transform: translateX(0); } }
@keyframes crm-drawer-out { to { transform: translateX(100%); } }

@media (max-width: 580px) {
  .crm-heading { align-items: flex-start; flex-direction: column; }
  .crm-detail-grid, .crm-form-grid { grid-template-columns: 1fr; }
  .crm-form-grid > fieldset > .crm-form-grid { grid-template-columns: 1fr; }
  .notification-metadata { grid-template-columns: 1fr; }
  .notification-card-heading { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .crm-action-drawer { width: 100vw; padding: 1rem; border-left: 0; }
}
/* Beziehungen werden ausschließlich innerhalb der Kundenakte geführt. */
a[href="/crm/beziehungen"] { display: none !important; }

/* Fixed-composer experiment: profile and suggestions remain visible, only answers scroll. */
.portal-side-drawer-right .portal-assistant { height:100%; align-content:stretch; grid-template-rows:auto auto auto minmax(0,1fr); overflow:hidden; }
.portal-side-drawer-right .portal-assistant-chat { min-height:0; grid-template-rows:minmax(0,1fr) auto; overflow:hidden; }
.portal-side-drawer-right .portal-assistant-answer { min-height:0; height:100%; overflow-y:auto; overscroll-behavior:contain; }
.portal-side-drawer-right .portal-assistant-chat form { position:relative; z-index:1; padding-top:10px; background:#fff; border-top:1px solid var(--border); }

/* Keep the composer fully visible on ordinary laptop screens. */
.portal-side-drawer-right .portal-assistant { gap:10px; padding:12px; }
.portal-side-drawer-right .portal-assistant-portrait { min-height:138px; overflow:hidden; }
.portal-side-drawer-right .portal-assistant-portrait img { width:min(100%,206px); height:154px; }
.portal-side-drawer-right .portal-assistant-intro { padding:10px 12px 11px 14px; }
.portal-side-drawer-right .portal-assistant-intro h3 { margin:3px 0 2px; font-size:1.25rem; }
.portal-side-drawer-right .portal-assistant-intro p { font-size:.84rem; line-height:1.42; }
.portal-side-drawer-right .portal-assistant-suggestions { gap:6px; }
.portal-side-drawer-right .portal-assistant-suggestions button { min-height:34px; padding:7px 8px; font-size:.75rem; }
.portal-side-drawer-right .portal-assistant-chat { padding:10px; }
.portal-side-drawer-right .portal-assistant-chat textarea { min-height:70px; }
@media (max-height:820px) { .portal-side-drawer-right .portal-assistant-portrait { min-height:108px; }.portal-side-drawer-right .portal-assistant-portrait img { height:124px; }.portal-side-drawer-right .portal-assistant-intro p { display:none; }.portal-side-drawer-right .portal-assistant-suggestions button { min-height:30px; } }

/* Simplified assistant header: the portrait carries the identity and current state. */
.portal-side-drawer-right .portal-assistant { grid-template-rows:auto minmax(0,1fr); }
.portal-side-drawer-right .portal-assistant-portrait { min-height:222px; overflow:hidden; }
.portal-side-drawer-right .portal-assistant-portrait::before { display:none; }
.portal-side-drawer-right .portal-assistant-portrait img { width:min(100%,270px); height:222px; }
.portal-assistant-nameplate { position:absolute; inset:16px 16px auto; z-index:3; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; pointer-events:none; }
.portal-assistant-nameplate h3 { margin:0; color:#fff; font-size:1.35rem; letter-spacing:.01em; text-shadow:0 1px 2px rgb(0 25 50 / 42%); }
.portal-side-drawer-right .portal-assistant-portrait .portal-assistant-presence { position:absolute; bottom:14px; left:16px; z-index:3; width:max-content; color:#fff; background:rgb(0 51 102 / 88%); border-color:rgb(255 255 255 / 48%); }
.portal-assistant-live-message { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
@media (max-height:820px) { .portal-side-drawer-right .portal-assistant-portrait { min-height:174px; }.portal-side-drawer-right .portal-assistant-portrait img { height:184px; } }

.portal-assistant-conversation { display:grid; min-height:0; overflow:hidden; }
.portal-side-drawer-right .portal-assistant-empty { align-self:stretch; display:grid; align-content:center; gap:8px; padding:18px 16px; color:#315368; background:#edf6f7; border:1px solid #c7d4dc; border-left:4px solid var(--oafoch-teal); }
.portal-assistant-empty[hidden] { display:none; }
.portal-assistant-empty-eyebrow { margin:0; color:#006c70; font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.portal-assistant-empty h4 { margin:0; color:var(--oafoch-navy); font-size:1.12rem; line-height:1.2; }
.portal-assistant-empty > p:not(.portal-assistant-empty-eyebrow) { margin:0; font-size:.84rem; line-height:1.5; }
.portal-assistant-empty ul { display:grid; gap:7px; margin:5px 0 0; padding:0; list-style:none; }
.portal-assistant-empty li { display:grid; gap:1px; padding:8px 9px; background:#fff; border:1px solid #d4e0e4; }
.portal-assistant-empty strong { color:var(--oafoch-navy); font-size:.78rem; }
.portal-assistant-empty span { color:var(--muted); font-size:.72rem; }
.portal-side-drawer-right .portal-assistant-answer { align-self:stretch; }

/* The empty state must fit above the composer on ordinary laptop heights. */
.portal-side-drawer-right .portal-assistant-empty { align-content:center; gap:7px; padding:14px 16px; }
.portal-side-drawer-right .portal-assistant-empty > p:not(.portal-assistant-empty-eyebrow) { display:none; }
.portal-side-drawer-right .portal-assistant-empty ul { display:flex; flex-wrap:wrap; gap:6px; margin-top:5px; }
.portal-side-drawer-right .portal-assistant-empty li { flex:1 1 30%; min-width:0; padding:7px 6px; text-align:center; }
.portal-side-drawer-right .portal-assistant-empty strong { font-size:.7rem; line-height:1.2; }
.portal-side-drawer-right .portal-assistant-empty span { display:none; }

.portal-assistant-conversation { display:flex; flex-direction:column; gap:8px; }
.portal-assistant-empty { flex:1 1 auto; }
.portal-assistant-question { align-self:flex-end; max-width:88%; padding:10px 12px; color:#fff; background:var(--oafoch-navy); border-left:3px solid var(--oafoch-teal); }
.portal-assistant-question p { margin:0; font-size:.86rem; line-height:1.45; white-space:pre-wrap; }
.portal-assistant-question[hidden] { display:none; }
.portal-side-drawer-right .portal-assistant-conversation .portal-assistant-answer { flex:1 1 auto; min-height:0; height:auto; }

/* A live conversation deserves a wider reading surface than the welcome state. */
.portal-side-drawer-right { transition:transform 180ms ease-out,width 220ms ease; }
.portal-side-drawer-right.has-conversation { width:min(43.5rem,calc(100vw - 42px)); }
.portal-side-drawer-right.has-conversation .portal-assistant-conversation { display:grid; grid-template-columns:minmax(11rem,.72fr) minmax(0,1.45fr); gap:12px; align-items:stretch; }
.portal-side-drawer-right.has-conversation .portal-assistant-question { align-self:start; max-width:none; min-height:5.5rem; }
.portal-side-drawer-right.has-conversation .portal-assistant-answer { grid-column:2; grid-row:1; }
@media (max-width:900px) { .portal-side-drawer-right.has-conversation { width:min(calc(100vw - 20px),43.5rem); }.portal-side-drawer-right.has-conversation .portal-assistant-conversation { grid-template-columns:1fr; }.portal-side-drawer-right.has-conversation .portal-assistant-answer { grid-column:1; grid-row:2; } }

/* The assistant opens as a welcome, then gives the conversation its working space. */
.portal-side-drawer-right { display:block; }
.portal-side-drawer-right .portal-assistant { height:100%; transition:grid-template-rows 220ms ease; }
.portal-assistant-close { position:absolute; top:14px; right:14px; z-index:4; display:grid; width:32px; height:32px; padding:0; color:#fff; font:inherit; font-size:1.6rem; font-weight:300; line-height:1; place-items:center; cursor:pointer; background:rgb(0 51 102 / 62%); border:1px solid rgb(255 255 255 / 60%); }.portal-assistant-close:hover,.portal-assistant-close:focus-visible { background:var(--oafoch-teal); outline:2px solid #fff; outline-offset:2px; }
.portal-assistant.has-conversation { grid-template-rows:116px minmax(0,1fr); }
.portal-assistant.has-conversation .portal-assistant-portrait { min-height:116px; transition:min-height 220ms ease; }
.portal-assistant.has-conversation .portal-assistant-portrait img { width:min(100%,154px); height:128px; transition:width 220ms ease,height 220ms ease; }
.portal-assistant.has-conversation .portal-assistant-nameplate { inset:12px 14px auto; }
.portal-assistant.has-conversation .portal-assistant-nameplate h3 { font-size:1.05rem; }
.portal-side-drawer-right .portal-assistant.has-conversation .portal-assistant-portrait .portal-assistant-presence { bottom:10px; left:14px; padding:3px 6px; font-size:.69rem; }
@media (max-height:820px) { .portal-assistant.has-conversation { grid-template-rows:94px minmax(0,1fr); }.portal-assistant.has-conversation .portal-assistant-portrait { min-height:94px; }.portal-assistant.has-conversation .portal-assistant-portrait img { height:106px; } }

/* Portrait reaches the drawer edges; the conversation retains its own reading margin. */
.portal-side-drawer-right .portal-assistant { gap:0; padding:0; }
.portal-side-drawer-right .portal-assistant-chat { min-width:0; margin:12px; }

/* Personal profile settings */
.profile-heading { margin:.5rem 0 1.5rem; }
.profile-heading h1 { margin:0; color:var(--oafoch-navy-deep); font-size:clamp(2rem,4vw,3rem); }
.profile-heading > p:last-child { max-width:58ch; color:var(--muted); line-height:1.5; }
.profile-settings { display:grid; gap:1rem; max-width:66rem; }
.profile-panel { padding:1.35rem; background:var(--surface); border:1px solid var(--border); border-left:4px solid var(--oafoch-navy); box-shadow:0 .4rem 1.25rem rgb(20 53 82 / 5%); }
.profile-panel header { margin-bottom:1.15rem; }
.profile-panel h2 { margin:0; color:var(--oafoch-navy-deep); font-size:1.22rem; }
.profile-panel header p,.profile-account { margin:.4rem 0 0; color:var(--muted); font-size:.9rem; line-height:1.5; }
.profile-panel > label { display:grid; max-width:27rem; gap:.35rem; color:var(--oafoch-navy); font-size:.82rem; font-weight:700; }
.profile-panel input[type="text"],.profile-panel input:not([type]) { min-height:2.6rem; padding:.55rem .65rem; color:var(--ink); font:inherit; background:#fff; border:1px solid var(--border); }
.profile-account strong { color:var(--ink); }
.assistant-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.assistant-choice { position:relative; cursor:pointer; }
.assistant-choice > input { position:absolute; width:1px; height:1px; opacity:0; }
.assistant-choice > span { display:grid; grid-template-columns:7.1rem 1fr; grid-template-rows:auto 1fr; column-gap:1rem; min-height:9rem; overflow:hidden; background:#f7fafb; border:1px solid var(--border); border-left:4px solid #718290; }
.assistant-choice img { grid-row:1 / span 2; width:7.1rem; height:9rem; object-fit:cover; object-position:center top; background:#073d72; }
.assistant-choice strong { align-self:end; padding-top:1rem; color:var(--oafoch-navy); font-size:1.05rem; }
.assistant-choice small { align-self:start; padding:.35rem 1rem 1rem 0; color:var(--muted); font-size:.83rem; line-height:1.4; }
.assistant-choice input:checked + span { background:#eefafa; border-color:var(--oafoch-teal); border-left-color:var(--oafoch-teal); box-shadow:inset 0 0 0 1px var(--oafoch-teal); }
.assistant-choice input:focus-visible + span { outline:3px solid rgb(0 153 153 / 32%); outline-offset:3px; }
.profile-language-options { display:flex; flex-wrap:wrap; gap:.75rem; }
.profile-language-options label { min-width:9rem; padding:.75rem .85rem; color:var(--oafoch-navy); font-size:.9rem; font-weight:700; background:#f7fafb; border:1px solid var(--border); cursor:pointer; }
.profile-language-options input { margin-right:.45rem; accent-color:var(--oafoch-teal); }
.profile-actions { display:flex; justify-content:flex-end; }
.profile-saved { max-width:66rem; margin:-.5rem 0 1rem; padding:.8rem 1rem; color:#006c70; font-weight:700; background:#eefafa; border-left:4px solid var(--oafoch-teal); }
.profile-avatar-panel { max-width:66rem; margin:0 0 1rem; }.profile-avatar-management { display:flex; flex-wrap:wrap; gap:.85rem 1.1rem; align-items:center; }.profile-avatar-current { display:flex; flex:1 1 18rem; gap:.85rem; align-items:center; }.profile-avatar-preview { display:grid; width:4.5rem; height:4.5rem; flex:0 0 4.5rem; object-fit:cover; color:#fff; font-size:1.2rem; font-weight:800; place-items:center; background:var(--oafoch-navy); border:2px solid var(--oafoch-teal); }.profile-avatar-current strong { display:block; color:var(--oafoch-navy); }.profile-avatar-current p { margin:.25rem 0 0; color:var(--muted); font-size:.82rem; }.profile-avatar-management form { display:flex; flex-wrap:wrap; gap:.55rem; align-items:center; }.profile-avatar-upload { position:relative; overflow:hidden; display:inline-flex; align-items:center; min-height:2.45rem; padding:0 .8rem; color:var(--oafoch-navy); font-size:.84rem; font-weight:700; cursor:pointer; background:#f7fafb; border:1px solid var(--border); }.profile-avatar-upload:hover { border-color:var(--oafoch-teal); }.profile-avatar-upload input { position:absolute; inset:0; width:100%; opacity:0; cursor:pointer; }.profile-avatar-delete { padding:.6rem .2rem; color:#a2152b; font:inherit; font-size:.84rem; font-weight:700; text-decoration:underline; text-underline-offset:.15em; cursor:pointer; background:transparent; border:0; }.portal-user-avatar.has-photo { color:transparent; background-repeat:no-repeat; background-position:center; background-size:cover; }
.profile-avatar-selection { width:100%; margin:0; color:var(--muted); font-size:.82rem; }.profile-avatar-management .notification-action:disabled { color:#718290; cursor:not-allowed; background:#e8edef; border-color:#c7d4dc; }
@media (max-width:620px) { .assistant-choice-grid { grid-template-columns:1fr; }.profile-panel { padding:1.1rem; } }

/* Knowledge source administration */
.knowledge-admin-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(16rem,.9fr); gap:1rem; margin-bottom:1.75rem; }
.knowledge-upload { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.knowledge-upload .form-full { grid-column:1 / -1; }
.knowledge-upload label { display:grid; gap:.35rem; color:var(--oafoch-navy); font-size:.82rem; font-weight:700; }
.knowledge-upload input,.knowledge-upload select { min-height:2.55rem; padding:.5rem .6rem; color:var(--ink); font:inherit; background:#fff; border:1px solid var(--border); }
.knowledge-upload input[type="file"] { padding:.45rem; }
.knowledge-upload small { color:var(--muted); font-size:.78rem; font-weight:400; line-height:1.4; }
.knowledge-upload button { justify-self:start; }
.knowledge-guidance ol { display:grid; gap:.65rem; margin:.3rem 0 1rem; padding-left:1.35rem; color:var(--ink); font-size:.9rem; line-height:1.45; }
.knowledge-guidance > p { margin:0; color:var(--muted); font-size:.82rem; line-height:1.45; }
.knowledge-document-list { margin-top:.25rem; }
.knowledge-document-list td small { display:block; margin-top:.2rem; color:var(--muted); font-size:.78rem; }
.knowledge-document-list td:last-child { text-align:right; }
.knowledge-delete { color:#9c1928; }
.dms-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem 1.3rem; margin:1.1rem 0; padding-top:1rem; border-top:1px solid var(--border); }
.dms-meta div { display:grid; gap:.18rem; }
.dms-meta dt { color:var(--muted); font-size:.75rem; font-weight:700; }
.dms-meta dd { margin:0; color:var(--ink); font-size:.9rem; overflow-wrap:anywhere; }
.dms-waiting { margin:0; color:var(--muted); font-size:.85rem; font-style:italic; }
.dms-error { margin:0 0 1rem; padding:.8rem 1rem; color:#8d1724; font-weight:700; background:#fff1f2; border-left:4px solid #b32030; }
.dms-reject { display:flex; flex:1 1 20rem; gap:.45rem; }
.dms-reject input { min-width:0; flex:1; padding:.45rem .55rem; font:inherit; border:1px solid var(--border); }
.review-workspace { display:grid; grid-template-columns:minmax(0,1fr) 21rem; min-height:70vh; border:1px solid var(--border); }
.review-workspace iframe { width:100%; min-height:70vh; border:0; background:#525659; }
.review-workspace aside { padding:1rem; overflow:auto; background:#f8fafb; }
.review-workspace h2 { margin-top:0; color:var(--oafoch-navy); font-size:1.1rem; }
.review-workspace ul { display:grid; gap:.5rem; padding:0; list-style:none; }.review-workspace li { padding:.6rem; font-size:.82rem; background:#fff; border-left:3px solid var(--oafoch-teal); }.review-workspace small { display:block; margin-top:.25rem; color:var(--muted); }.review-workspace form,.review-workspace label { display:grid; gap:.35rem; }.review-workspace form { margin-top:1rem; }.review-workspace input,.review-workspace select,.review-workspace textarea { padding:.45rem; font:inherit; border:1px solid var(--border); }.review-workspace textarea { min-height:4rem; resize:vertical; }
@media(max-width:800px){.review-workspace{grid-template-columns:1fr;}.review-workspace iframe{min-height:55vh;}}
@media (max-width:800px) { .knowledge-admin-grid,.knowledge-upload,.dms-meta { grid-template-columns:1fr; } }

/* Portal side drawers use the dark surface palette as well. The portrait keeps
   its branded scene; only the working and conversation surfaces change. */
html[data-theme="dark"] .portal-side-drawer-left {
  background: #132536;
  border-right-color: #1687af;
}

html[data-theme="dark"] .portal-side-drawer-left header {
  border-bottom-color: #426176;
}

html[data-theme="dark"] .portal-side-drawer-left h2,
html[data-theme="dark"] .portal-side-drawer-left .portal-drawer-close {
  color: #e9f1f7;
}

html[data-theme="dark"] .portal-side-drawer-right {
  background: #0f1d29;
  border-left-color: var(--oafoch-teal);
  box-shadow: -18px 0 40px rgb(0 0 0 / 32%);
}

html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-intro,
html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-chat {
  background: #142a3b;
  border-color: #426176;
  box-shadow: 0 4px 12px rgb(0 0 0 / 22%);
}

html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-intro h3,
html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-chat label {
  color: #edf5f9;
}

html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-intro p,
html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-chat label::after {
  color: #b8c9d6;
}

html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-presence {
  color: #91ebe7;
  background: #173c47;
  border-color: #337a83;
}

html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-suggestions button,
html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-empty li {
  color: #e5f0f5;
  background: #1b3345;
  border-color: #4b687c;
}

html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-empty {
  color: #c6d5df;
  background: #102332;
  border-color: #426176;
}

html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-empty h4,
html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-empty strong {
  color: #eef6fa;
}

html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-empty-eyebrow {
  color: #82dfdd;
}

html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-empty span {
  color: #b8c9d6;
}

html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-chat textarea {
  color: #e9f1f7;
  background: #0d1a25;
  border-color: #587388;
}

html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-answer {
  color: #e4eef4;
  background: #17313e;
  border-left-color: var(--oafoch-teal);
}

html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-answer p:not(.portal-assistant-source) {
  color: #e4eef4;
}

html[data-theme="dark"] .portal-side-drawer-right .portal-assistant-answer .portal-assistant-source {
  color: #91ebe7;
  background: #122a38;
  border-color: #337a83;
}

/* CRM uses dense workspace sheets and tables. They receive the same dark
   working surfaces as the dashboard instead of retaining light-mode paper. */
html[data-theme="dark"] .portal-module-navigation {
  background: #132536;
  border-bottom-color: #426176;
}

html[data-theme="dark"] .portal-module-navigation a {
  color: #dce8ef;
}

html[data-theme="dark"] .portal-module-navigation a.active {
  color: #82dfdd;
}

html[data-theme="dark"] .reference-record,
html[data-theme="dark"] .customer-workspace {
  background: #0f1d29;
}

html[data-theme="dark"] .reference-crumb {
  color: #b8c9d6;
  background: #132536;
  border-bottom-color: #426176;
}

html[data-theme="dark"] .reference-crumb a,
html[data-theme="dark"] .reference-crumb strong,
html[data-theme="dark"] .crm-table-wrap a,
html[data-theme="dark"] .link-button {
  color: #82dfdd;
}

html[data-theme="dark"] .crm-table-wrap,
html[data-theme="dark"] .empty-state,
html[data-theme="dark"] .crm-panel,
html[data-theme="dark"] .crm-form {
  background: #142a3b;
  border-color: #426176;
}

html[data-theme="dark"] .crm-table-wrap th {
  color: #c7d8e3;
  background: #1b3345;
}

html[data-theme="dark"] .crm-table-wrap th,
html[data-theme="dark"] .crm-table-wrap td,
html[data-theme="dark"] .crm-form fieldset {
  border-color: #426176;
}

html[data-theme="dark"] .crm-panel h2,
html[data-theme="dark"] .empty-state h2,
html[data-theme="dark"] .crm-form legend,
html[data-theme="dark"] .crm-action-drawer .crm-form > fieldset > legend,
html[data-theme="dark"] .crm-action-drawer .crm-form-grid > fieldset > legend,
html[data-theme="dark"] .reference-section h2,
html[data-theme="dark"] .reference-rail h2,
html[data-theme="dark"] .customer-tabs button,
html[data-theme="dark"] .customer-edit-content > fieldset > legend,
html[data-theme="dark"] .crm-role-set legend {
  color: #edf5f9;
}

html[data-theme="dark"] .crm-form input,
html[data-theme="dark"] .crm-form select,
html[data-theme="dark"] .crm-form textarea {
  color: #e9f1f7;
  background: #0d1a25;
  border-color: #587388;
}

html[data-theme="dark"] .crm-next-steps,
html[data-theme="dark"] .reference-rail-note,
html[data-theme="dark"] .crm-record:nth-of-type(5) > ul:last-of-type {
  color: #c6d5df;
  background: #17313e;
  border-color: #426176;
}

html[data-theme="dark"] .reference-section,
html[data-theme="dark"] .customer-tabs,
html[data-theme="dark"] .reference-rail,
html[data-theme="dark"] .crm-record {
  border-color: #426176;
}

/* Optional dashboard module strip. The vertical scroll distance maps to the
   horizontal card position; controls remain available for explicit movement. */
.dashboard-module-strip .dashboard-modules {
  position: relative;
  height: calc(21rem + var(--module-strip-distance, 640px));
}

.dashboard-module-strip .module-strip-stage {
  position: sticky;
  top: 74px;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 1rem;
  height: 21rem;
  min-height: 0;
  padding: .45rem 0 2rem;
  overflow: hidden;
}

.module-strip-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.module-strip-toolbar p {
  margin: 0;
  color: var(--muted);
  font-size: .88rem;
}

.module-strip-toolbar div { display: flex; gap: .55rem; }

.module-strip-toolbar button {
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  color: #fff;
  font: inherit;
  font-size: 1.2rem;
  font-weight: 700;
  cursor: pointer;
  place-items: center;
  background: var(--oafoch-navy);
  border: 1px solid var(--oafoch-navy);
}

.module-strip-toolbar button:hover,
.module-strip-toolbar button:focus-visible {
  background: var(--oafoch-teal);
  border-color: var(--oafoch-teal);
  outline: 3px solid rgb(0 153 153 / 28%);
  outline-offset: 2px;
}

.module-strip-viewport {
  min-width: 0;
  overflow: hidden;
}

.module-strip-track {
  display: flex;
  gap: 1.15rem;
  width: max-content;
  height: auto;
  padding-right: 2.75rem;
  align-items: flex-start;
  will-change: transform;
}

.module-strip-track .module-card {
  width: clamp(15rem, 18vw, 19rem);
  height: 152px;
  min-height: 152px;
  flex: 0 0 clamp(15rem, 18vw, 19rem);
}

.module-strip-track .module-card .module-state { margin-top: auto; }

.profile-hint {
  margin: .8rem 0 0;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.45;
}

@media (max-width: 900px) {
  .dashboard-module-strip .dashboard-modules { height: auto; }
  .dashboard-module-strip .module-strip-stage { position: static; height: auto; min-height: 0; overflow: visible; }
  .module-strip-viewport { padding-bottom: .65rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-color: var(--oafoch-teal) transparent; }
  .module-strip-track { height: auto; padding-right: 1rem; }
  .module-strip-track .module-card { width: min(82vw, 19rem); min-height: 152px; flex-basis: min(82vw, 19rem); scroll-snap-align: start; }
  .module-strip-toolbar p { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .module-strip-track { will-change: auto; }
}

.access-management-areas { margin:1.25rem 0; padding:1.25rem; background:var(--surface); border:1px solid var(--border); }
.access-management-areas h2 { margin:.15rem 0 .35rem; color:var(--oafoch-navy); font-size:1.2rem; }
.access-management-areas > div > p:last-child { max-width:52rem; margin:0; color:var(--muted); line-height:1.5; }
.access-role .text-action { display:inline-block; margin-top:.8rem; }
.access-inline-actions { display:grid; gap:.15rem; }
.access-inline-actions .text-action { margin-top:.35rem; }
.structure-tree { margin:0; padding:0 0 0 1.35rem; list-style:none; }.structure-tree > li { position:relative; margin:.55rem 0; padding-left:1rem; }.structure-tree > li::before { position:absolute; top:1.1rem; left:0; width:.7rem; height:1px; content:""; background:var(--border); }.structure-tree > li::after { position:absolute; top:-.55rem; bottom:-.55rem; left:0; width:1px; content:""; background:var(--border); }.structure-tree > li:first-child::after { top:1.1rem; }.structure-tree > li:last-child::after { bottom:auto; height:1.1rem; }.structure-tree details { padding:.65rem .8rem; background:var(--surface); border:1px solid var(--border); }.structure-tree summary { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; color:var(--oafoch-navy); cursor:pointer; }.structure-tree summary span { color:var(--muted); font-size:.82rem; }.structure-tree details > .structure-tree { margin-top:.65rem; padding-top:.1rem; }.structure-tree .access-form { margin-top:.8rem; }
.structure-workspace { display:grid; grid-template-columns:minmax(18rem,30%) minmax(0,1fr); gap:1.25rem; align-items:start; }.structure-tree-panel,.structure-details-panel { min-width:0; padding:1rem; background:var(--surface); border:1px solid var(--border); }.structure-tree-panel { position:sticky; top:1rem; max-height:calc(100vh - 8rem); overflow:auto; }.structure-tree-panel h2,.structure-details-panel h2 { margin:0; color:var(--oafoch-navy); }.structure-tree-panel > p { margin:.35rem 0 .8rem; color:var(--muted); font-size:.85rem; }.structure-tree .structure-tree-node { display:grid; width:100%; gap:.15rem; padding:.55rem .65rem; color:var(--ink); text-align:left; font:inherit; background:var(--surface); border:1px solid transparent; cursor:pointer; }.structure-tree .structure-tree-node strong { color:var(--oafoch-navy); }.structure-tree .structure-tree-node span { color:var(--muted); font-size:.78rem; }.structure-tree .structure-tree-node:hover,.structure-tree .structure-tree-node.is-active { color:var(--oafoch-navy); background:#edf8f8; border-color:var(--oafoch-teal); }.structure-detail-card { display:none; padding:.35rem; }.structure-detail-card.is-active { display:block; }.structure-detail-card > p { margin:.45rem 0 1rem; color:var(--muted); }.structure-detail-card .access-form { grid-template-columns:repeat(2,minmax(0,1fr)); }.structure-detail-card .access-form button { justify-self:start; }@media (max-width:48rem) { .structure-workspace { grid-template-columns:1fr; }.structure-tree-panel { position:static; max-height:22rem; }.structure-detail-card .access-form { grid-template-columns:1fr; } }
.structure-tree-branch { display:grid; grid-template-columns:1.5rem minmax(0,1fr); align-items:start; }.structure-tree-branch > .structure-tree { grid-column:2; position:relative; margin-left:.1rem; border-left:1px solid var(--border); }.structure-tree-branch.is-collapsed > .structure-tree { display:none; }.structure-tree-toggle,.structure-tree-spacer { display:grid; width:1.45rem; height:1.45rem; margin-top:.05rem; color:var(--oafoch-navy); place-items:center; align-self:start; font-size:0; line-height:1; background:transparent; border:0; cursor:pointer; }.structure-tree-toggle::before { width:.48rem; height:.48rem; content:""; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translate(-1px,-1px); transition:transform .15s ease; }.structure-tree-branch.is-collapsed > .structure-tree-toggle::before { transform:rotate(-45deg) translate(1px,-1px); }.structure-tree-spacer { visibility:hidden; }.structure-tree-toggle:hover { color:var(--oafoch-teal); background:transparent; border:0; }.structure-tree > li::after { top:-.55rem; }.structure-tree > li:first-child::after { top:-1rem; }.structure-tree > li:first-child::before { top:.3rem; }
.structure-tree-panel > p { display:none; }.structure-tree-panel > .structure-tree { padding-left:0; }.structure-tree-panel > .structure-tree > li { padding-left:0; }.structure-tree-panel > .structure-tree > li::before,.structure-tree-panel > .structure-tree > li::after { display:none; }
.structure-tree-branch > .structure-tree { border-left:0; }
body:has(.structure-workspace) .shell { width:100%; max-width:none; margin-left:0; margin-right:0; }body:has(.structure-workspace) .notification-page-heading,body:has(.structure-workspace) .module-administration { max-width:1920px; }.structure-workspace { grid-template-columns:minmax(34rem,44%) minmax(0,1fr); max-width:1920px; }.structure-tree-panel { padding:1.25rem; }.structure-tree .structure-tree-node { min-width:max-content; }
@media (max-width:48rem) { .structure-workspace { grid-template-columns:1fr; }.structure-tree .structure-tree-node { min-width:0; } }
.structure-tree-toggle,.structure-tree-spacer { margin:0; align-self:center; }
/*
  Career-stage coding follows the OVB palette as an infographic: flat accents
  only, no gradients and no coloured content surfaces. The written stage is
  always retained, so colour is never the sole information carrier.
*/
.career-ft-1 { --career-stage-colour:#6699cc; }
.career-ft-2 { --career-stage-colour:#336699; }
.career-ft-3 { --career-stage-colour:#003366; }
.career-jgst { --career-stage-colour:#66cccc; }
.career-gst { --career-stage-colour:#009999; }
.career-bl { --career-stage-colour:#006666; }
.career-bd { --career-stage-colour:#cc99ff; }
.career-rd { --career-stage-colour:#9966cc; }
.career-ld { --career-stage-colour:#663399; }
.career-legacy { --career-stage-colour:#7a8791; }

.structure-tree .structure-tree-node[class*="career-"] {
  position:relative;
  padding-left:1rem;
}
.structure-tree .structure-tree-node[class*="career-"]::before {
  position:absolute;
  top:.55rem;
  bottom:.55rem;
  left:0;
  width:4px;
  content:"";
  background:var(--career-stage-colour);
}
.structure-tree .structure-tree-node[class*="career-"].is-active,
.structure-tree .structure-tree-node[class*="career-"]:hover {
  border-color:var(--career-stage-colour);
  background:var(--surface);
}
.structure-detail-card[class*="career-"] {
  border-left:4px solid var(--career-stage-colour);
  padding-left:1rem;
}
.structure-detail-card[class*="career-"] .eyebrow { color:var(--career-stage-colour); }

.career-stage-legend {
  margin-top:1.5rem;
  padding-top:1rem;
  border-top:1px solid var(--border);
}
.career-stage-legend > p {
  margin:0 0 .65rem;
  color:var(--oafoch-navy);
  font-size:.9rem;
  font-weight:700;
}
.career-stage-legend ul {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.5rem;
  padding:0;
  margin:0 0 .75rem;
  list-style:none;
}
.career-stage-legend li {
  display:grid;
  grid-template-columns:.5rem minmax(0,1fr);
  column-gap:.45rem;
  align-items:center;
  min-width:0;
  color:var(--ink);
}
.career-stage-legend li::before {
  grid-row:1 / span 2;
  width:.5rem;
  height:1.9rem;
  content:"";
  background:var(--career-stage-colour);
}
.career-stage-legend span {
  color:var(--oafoch-navy);
  font-size:.82rem;
  font-weight:700;
}
.career-stage-legend small {
  overflow:hidden;
  color:var(--muted);
  font-size:.7rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.career-stage-legend > small { color:var(--muted); font-size:.78rem; }

@media (max-width:48rem) {
  .career-stage-legend ul { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.access-user-workspace {
  display:grid;
  grid-template-columns:minmax(17rem,27rem) minmax(0,1fr);
  gap:1.25rem;
  align-items:start;
}
.access-user-directory {
  position:sticky;
  top:1rem;
  max-height:calc(100vh - 8rem);
  overflow:auto;
  background:var(--surface);
  border:1px solid var(--border);
}
.access-user-directory header {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:1rem;
  padding:1rem;
  border-bottom:1px solid var(--border);
}
.access-user-directory h2 { margin:0; color:var(--oafoch-navy); font-size:1.1rem; }
.access-user-directory header p { margin:0; color:var(--muted); font-size:.82rem; }
.access-user-list { padding:0; margin:0; list-style:none; }
.access-user-list li + li { border-top:1px solid var(--border); }
.access-user-list a {
  display:grid;
  gap:.2rem;
  padding:.85rem 1rem;
  color:var(--oafoch-navy);
  text-decoration:none;
}
.access-user-list a:hover { background:#edf8f8; }
.access-user-list small { color:var(--muted); }
.access-user-editor { display:grid; gap:1.25rem; min-width:0; }

@media (max-width:48rem) {
  .access-user-workspace { grid-template-columns:1fr; }
  .access-user-directory { position:static; max-height:20rem; }
}

.task-hub-workspace { display:grid; grid-template-columns:minmax(18rem,25rem) minmax(0,1fr); gap:1.25rem; align-items:start; }
.task-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin:0 0 1.25rem; background:var(--border); border:1px solid var(--border); }
.task-overview a { display:flex; align-items:baseline; gap:.5rem; padding:.8rem 1rem; color:var(--oafoch-navy); background:var(--surface); text-decoration:none; }
.task-overview a:hover { background:var(--surface-muted); }
.task-overview strong { color:var(--ovb-blue); font-size:1.35rem; }.task-overview span { color:var(--muted); font-size:.85rem; }
.task-create-panel,.task-list-panel { padding:1.25rem; background:var(--surface); border:1px solid var(--border); }
.task-create-panel { position:sticky; top:1rem; }
.task-create-panel h2,.task-list-panel h2 { margin:0; color:var(--oafoch-navy); }
.task-create-panel > p,.task-list-panel .section-heading p { color:var(--muted); line-height:1.45; }
.task-create-panel .access-form { grid-template-columns:1fr; }.task-create-panel .access-form .form-full { grid-column:auto; }.task-create-panel .access-form textarea { box-sizing:border-box; width:100%; min-height:6.5rem; padding:.55rem .65rem; color:var(--ink); font:inherit; resize:vertical; background:#fff; border:1px solid var(--border); }.task-create-panel .access-form button { width:100%; min-height:2.8rem; }
.task-context { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin:1rem 0; padding:.75rem; border-left:4px solid var(--ovb-turquoise); background:var(--surface-muted); color:var(--oafoch-navy); font-size:.9rem; }
.task-context a,.task-meta a { color:var(--ovb-blue); font-weight:700; text-decoration:none; }
.task-context a:hover,.task-meta a:hover { text-decoration:underline; }
.task-list-panel { display:grid; gap:.75rem; }
.task-list-full .section-heading { margin:0 0 .25rem; }.task-dialog { width:min(42rem,calc(100vw - 2rem)); max-height:calc(100vh - 2rem); padding:0; color:var(--ink); background:var(--surface); border:1px solid var(--oafoch-navy); box-shadow:0 1.2rem 3rem rgb(0 30 60 / 28%); }.task-dialog::backdrop { background:rgb(0 30 51 / 48%); }.task-dialog-form { display:grid; }.task-dialog header { position:relative; padding:1.5rem 4.7rem 1.2rem 1.5rem; border-bottom:3px solid var(--oafoch-navy); }.task-dialog header h2 { margin:.15rem 0 .35rem; color:var(--oafoch-navy); }.task-dialog header p:last-child { margin:0; color:var(--muted); line-height:1.45; }.task-dialog-body { display:grid; gap:1rem; padding:1.35rem 1.5rem; }.task-dialog-body label { display:grid; gap:.35rem; color:var(--oafoch-navy); font-size:.82rem; font-weight:700; }.task-dialog-body input,.task-dialog-body select,.task-dialog-body textarea { box-sizing:border-box; width:100%; min-height:2.55rem; padding:.55rem .65rem; color:var(--ink); font:inherit; background:var(--surface); border:1px solid var(--border); }.task-dialog-body textarea { min-height:7rem; resize:vertical; }.task-dialog-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }.task-dialog footer { display:flex; justify-content:flex-end; gap:.75rem; padding:1rem 1.5rem 1.35rem; border-top:1px solid var(--border); }.task-history-dialog .task-dialog-body { max-height:min(52vh,34rem); overflow:auto; }.task-history-list { display:grid; gap:.75rem; margin:0; padding:0; list-style:none; }.task-history-list li { display:grid; gap:.2rem; padding:0 0 .75rem; border-bottom:1px solid var(--border); }.task-history-list li:last-child { padding-bottom:0; border-bottom:0; }.task-history-list strong { color:var(--oafoch-navy); font-size:.8rem; }.task-history-list span { line-height:1.45; }.task-history-list small,.task-history-empty { color:var(--muted); font-size:.82rem; }.task-history-empty { margin:0; }
.task-dialog-optional { border-top:1px solid var(--border); }.task-dialog-optional summary { position:relative; display:grid; gap:.15rem; padding:.85rem 0 .85rem 1.1rem; color:var(--oafoch-navy); cursor:pointer; list-style:none; }.task-dialog-optional summary::-webkit-details-marker { display:none; }.task-dialog-optional summary::before { position:absolute; left:0; color:var(--oafoch-teal); content:"›"; font-size:1.25rem; line-height:1; }.task-dialog-optional[open] summary::before { transform:rotate(90deg); }.task-dialog-optional summary span { font-size:.9rem; font-weight:800; }.task-dialog-optional summary small { color:var(--muted); font-size:.78rem; font-weight:400; }.task-dialog-optional > .task-dialog-grid,.task-dialog-control { margin:0 0 1rem; }.task-dialog-control { display:grid; gap:1rem; }.task-dialog-control textarea { min-height:4.5rem; }.task-modal-activity { display:grid; gap:1.25rem; padding:1.25rem 1.5rem 1.5rem; border-top:1px solid var(--border); }.task-modal-activity > div { display:grid; gap:.65rem; }.task-modal-activity h3 { margin:0; color:var(--oafoch-navy); font-size:1rem; }.task-modal-history { max-height:18rem; overflow:auto; }.task-modal-history .task-history-list { padding-right:.35rem; }
.task-section { scroll-margin-top:1rem; }.task-section > header { display:flex; align-items:center; justify-content:space-between; margin-top:.5rem; padding:.75rem 0; border-top:2px solid var(--border); }.task-section > header h3 { margin:0; color:var(--oafoch-navy); font-size:1rem; }.task-section > header span,.task-completed summary span { display:inline-grid; min-width:1.6rem; height:1.6rem; place-items:center; color:var(--oafoch-navy); background:var(--surface-muted); font-size:.78rem; font-weight:700; }.task-section-overdue > header { border-top-color:#bb1e3f; }.task-section-overdue > header h3 { color:#9b1933; }.task-card-list { display:grid; gap:.75rem; }.task-empty { margin:0; padding:.75rem 0 1rem; color:var(--muted); font-size:.9rem; }.task-empty-large { padding:2rem 0; text-align:center; }.task-completed { padding-top:.75rem; border-top:2px solid var(--border); }.task-completed summary { display:flex; align-items:center; justify-content:space-between; color:var(--oafoch-navy); cursor:pointer; font-weight:700; list-style:none; }.task-completed summary::-webkit-details-marker { display:none; }
.task-card { background:var(--surface-muted); border:1px solid var(--border); }
.task-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(22rem,.82fr); gap:1.25rem; align-items:start; }.task-workspace-list { min-width:0; }.task-detail-pane { position:sticky; top:1rem; min-width:0; max-height:calc(100vh - 2rem); overflow:auto; background:var(--surface-muted); border:1px solid var(--border); }.task-detail-empty { display:grid; align-content:center; min-height:22rem; padding:1.5rem; }.task-detail-empty h2 { margin:.2rem 0 .5rem; color:var(--oafoch-navy); }.task-detail-empty p:last-child { margin:0; color:var(--muted); line-height:1.5; }.task-card-compact { cursor:pointer; transition:border-color .15s ease,box-shadow .15s ease; }.task-card-compact:hover,.task-card-compact:focus-visible,.task-card-compact.is-selected { border-color:var(--oafoch-teal); box-shadow:inset 0 0 0 1px var(--oafoch-teal); outline:0; }.task-detail { display:grid; gap:0; }.task-detail > header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.25rem; background:var(--surface); border-top:4px solid var(--oafoch-teal); }.task-detail > header h2 { margin:.2rem 0; color:var(--oafoch-navy); font-size:1.4rem; }.task-detail > header p:last-child { margin:0; color:var(--muted); font-size:.85rem; }.task-detail-section,.task-detail-edit { display:grid; gap:.75rem; padding:1rem 1.25rem; border-top:1px solid var(--border); }.task-detail-section h3 { margin:0; color:var(--oafoch-navy); font-size:.9rem; }.task-detail-description { margin:0; line-height:1.5; }.task-detail-muted { margin:0; color:var(--muted); font-style:italic; }.task-detail-edit label { display:grid; gap:.3rem; color:var(--oafoch-navy); font-size:.8rem; font-weight:700; }.task-detail-edit input,.task-detail-edit select,.task-detail-edit textarea,.task-feedback-form textarea { box-sizing:border-box; width:100%; min-height:2.35rem; padding:.5rem .6rem; color:var(--ink); font:inherit; background:var(--surface); border:1px solid var(--border); }.task-detail-edit textarea,.task-feedback-form textarea { resize:vertical; }.task-detail-edit-actions { display:flex; justify-content:flex-end; gap:.65rem; }.task-feedback-form { display:grid; gap:.6rem; }.task-feedback-form .notification-action { justify-self:start; }
.task-card > summary,.task-card-summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:4.6rem; padding:.7rem 1rem; list-style:none; border-left:4px solid #1687af; }.task-card > summary { cursor:pointer; }.task-card > summary::-webkit-details-marker { display:none; }.task-toolbar { display:flex; align-items:center; gap:.75rem; }.task-filter-switch { display:flex; align-items:center; gap:.55rem; color:var(--oafoch-navy); font-size:.82rem; font-weight:700; white-space:nowrap; cursor:pointer; }.task-filter-switch input { position:absolute; opacity:0; }.task-filter-switch span { position:relative; width:2.45rem; height:1.35rem; background:#718290; border:1px solid #607587; border-radius:999px; box-shadow:inset 0 1px 2px rgb(0 51 102 / 18%); transition:background .15s ease,border-color .15s ease; }.task-filter-switch span::after { position:absolute; top:.14rem; left:.14rem; width:.93rem; height:.93rem; content:""; background:#fff; border-radius:50%; box-shadow:0 1px 3px rgb(0 51 102 / 28%); transition:transform .15s ease; }.task-filter-switch input:checked + span { background:var(--oafoch-teal); border-color:var(--oafoch-teal); }.task-filter-switch input:checked + span::after { transform:translateX(1.24rem); }.task-filter-switch input:focus-visible + span { outline:2px solid var(--oafoch-teal); outline-offset:3px; }.task-view-switch { display:flex; padding:3px; background:var(--surface-muted); border:1px solid var(--border); }.task-view-switch button { min-height:2rem; padding:.3rem .65rem; color:var(--muted); font:inherit; font-size:.8rem; font-weight:700; background:transparent; border:0; cursor:pointer; }.task-view-switch button[aria-pressed="true"] { color:#fff; background:var(--oafoch-navy); }.task-card-compact .task-card-summary { min-height:3.35rem; padding:0; gap:0; }.task-assignee-avatar { align-self:stretch; display:grid; flex:0 0 3.35rem; width:3.35rem; color:#fff; font-size:.82rem; font-weight:800; place-items:center; letter-spacing:.03em; background:var(--oafoch-navy); }.task-card-copy { display:grid; grid-template-columns:4.2rem minmax(10rem,1fr) 10.5rem; align-items:center; min-width:0; padding:.45rem .75rem; gap:.55rem; }.task-card-copy .eyebrow { white-space:nowrap; }.task-card-copy h3 { margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.task-due { display:flex; gap:.35rem; align-items:center; margin:0; color:var(--muted); font-size:.78rem; white-space:nowrap; }.task-due::first-letter { color:var(--oafoch-teal); }.task-card-description { flex:1 1 14rem; min-width:0; margin:0; padding:.45rem .75rem; overflow:hidden; color:var(--muted); font-size:.82rem; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; border-left:1px solid var(--border); cursor:help; }.task-summary-actions { display:flex; align-items:center; justify-content:flex-end; gap:.55rem; flex:0 0 auto; padding:.45rem .75rem .45rem 0; }.task-summary-actions .notification-action { min-height:2rem; padding:.3rem .55rem; white-space:nowrap; }.task-card[open] > summary { border-bottom:1px solid var(--border); }.task-card-details { display:grid; grid-template-columns:minmax(0,1fr) minmax(13rem,22rem); gap:1.25rem; padding:.85rem 1rem 1rem; }.task-card-content { min-width:0; }.task-history-rail { padding-left:1rem; border-left:1px solid var(--border); }.task-history-rail h4 { margin:0 0 .6rem; color:var(--oafoch-navy); font-size:.85rem; }.task-history-rail > p { margin:0; color:var(--muted); font-size:.82rem; }.task-kanban-board { display:grid; grid-template-columns:repeat(3,minmax(18rem,1fr)); gap:1rem; overflow-x:auto; }.task-kanban-column { min-width:18rem; background:var(--surface-muted); border:1px solid var(--border); }.task-kanban-column > header { display:flex; align-items:center; justify-content:space-between; padding:.75rem .85rem; border-bottom:3px solid var(--oafoch-navy); }.task-kanban-column > header h3 { margin:0; color:var(--oafoch-navy); font-size:.95rem; }.task-kanban-column > header span { color:var(--muted); font-size:.8rem; font-weight:700; }.task-kanban-column .task-card-list { padding:.65rem; }.task-kanban-column .task-card-summary { align-items:stretch; flex-wrap:wrap; }.task-kanban-column .task-card-copy { flex:1 1 calc(100% - 3.35rem); grid-template-columns:1fr; gap:.15rem; }.task-kanban-column .task-due { grid-column:1; }.task-kanban-column .task-card-description { order:4; flex-basis:100%; border-top:1px solid var(--border); border-left:0; }.task-kanban-column .task-summary-actions { width:100%; padding:.35rem .65rem .55rem; }
.task-assignee-avatar-photo { object-fit:cover; }
.task-card h3 { margin:.15rem 0; color:var(--oafoch-navy); font-size:1.1rem; }
.task-card summary p:last-child,.task-meta { margin:.25rem 0; color:var(--muted); font-size:.86rem; }
.task-card .eyebrow { margin:0; font-size:.7rem; }.task-priority-hoch > summary,.task-priority-hoch .task-card-summary { border-left-color:#ff3399; }.task-priority-hoch .eyebrow { color:#c00666; }.task-priority-normal > summary,.task-priority-normal .task-card-summary { border-left-color:#1687af; }.task-priority-niedrig > summary,.task-priority-niedrig .task-card-summary { border-left-color:#718290; }.task-priority-niedrig .eyebrow { color:#607587; }
.task-card.task-overdue { border-left:4px solid #bb1e3f; }
.task-calendar-icon { width:1rem; height:1rem; flex:0 0 auto; fill:currentColor; color:var(--oafoch-teal); }
.task-blockiert { border-color:#d08400; }.task-blockiert .module-admin-state { color:#7a5100; background:#fff3d6; }.task-kanban-blockiert > header { border-bottom-color:#d08400; }
.task-kanban-board { grid-template-columns:repeat(4,minmax(18rem,1fr)); }
.task-kanban-column { min-width:0; overflow:hidden; }.task-kanban-column .task-card-list,.task-kanban-column .task-card,.task-kanban-column .task-card-summary { min-width:0; max-width:100%; box-sizing:border-box; }.task-kanban-column .task-card { width:100%; }.task-kanban-column .task-card-copy,.task-kanban-column .task-card-description,.task-kanban-column .task-summary-actions { min-width:0; box-sizing:border-box; }
.task-kanban-column .task-card-copy { max-width:calc(100% - 3.35rem); overflow:hidden; }.task-kanban-column .task-card-copy h3 { min-width:0; max-width:100%; }.task-kanban-column .task-due { max-width:100%; overflow:hidden; }.task-kanban-column .task-due > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.task-kanban-column .task-due > span:first-of-type { flex:0 1 auto; }.task-kanban-column .task-due > .task-followup { flex:1 1 7rem; }
.task-observer-indicator { display:inline-grid; flex:0 0 auto; width:1.8rem; height:1.8rem; margin-left:.25rem; color:var(--oafoch-teal); place-items:center; }.task-observer-indicator svg { width:1.2rem; height:1.2rem; fill:currentColor; }.task-kanban-column .task-card { position:relative; }.task-kanban-column .task-observer-indicator { position:absolute; z-index:1; top:.35rem; right:.35rem; margin:0; background:var(--surface-muted); }.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.task-draggable { cursor:grab; touch-action:none; }.task-draggable:active { cursor:grabbing; }.task-draggable.is-dragging { opacity:.35; }.task-kanban-column.is-drop-target { outline:2px solid var(--oafoch-teal); outline-offset:-2px; background:var(--surface); }.task-drag-ghost { position:fixed; z-index:10000; margin:0; pointer-events:none; opacity:.88; box-shadow:0 .8rem 1.8rem rgb(0 51 102 / 24%); transform:rotate(1.5deg); }
.task-drag-handle { display:none; color:var(--muted); cursor:grab; }.task-drag-handle svg { width:1.35rem; height:1.35rem; fill:currentColor; }.task-drag-handle:active { cursor:grabbing; }.task-kanban-column .task-drag-handle { display:grid; position:absolute; z-index:2; top:.35rem; right:.35rem; width:1.8rem; height:1.8rem; place-items:center; background:var(--surface-muted); }.task-kanban-column .task-card:has(.task-observer-indicator) .task-drag-handle { right:2.2rem; }
.task-actions { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; margin-top:.9rem; }.task-comment { color:var(--oafoch-navy); font-size:.88rem; }.task-comment summary { cursor:pointer; font-weight:700; }.task-comment-form { margin-top:.65rem; }.task-comment-form .link-button { align-self:end; }
.task-description { margin:.75rem 0; line-height:1.5; }
.task-status-form,.task-comment-form { display:flex; flex-wrap:wrap; gap:.5rem; align-items:end; margin-top:.75rem; }
.task-status-form label,.task-comment-form label { display:grid; gap:.25rem; flex:1 1 14rem; color:var(--oafoch-navy); font-weight:700; }
.task-comment-form input { min-width:0; }
.task-history { margin:0; color:var(--muted); font-size:.82rem; }.task-history summary { font-size:.82rem; }
.task-history summary { color:var(--oafoch-navy); cursor:pointer; }
.task-history ul { display:grid; gap:.45rem; padding-left:1.25rem; }
.task-history small { display:block; margin-top:.15rem; color:var(--muted); }

/* Equal optical spacing for the compact task-filter switch. */
.task-filter-switch input:checked + span::after { transform:translateX(1.16rem); }

.assistant-module-heading { display:flex; align-items:end; justify-content:space-between; gap:1.5rem; margin:2.5rem 0 1.25rem; }.assistant-module-heading h1 { margin:.15rem 0 .45rem; color:var(--oafoch-navy); font-size:clamp(2rem,4vw,3.25rem); }.assistant-module-heading p:last-child { margin:0; color:var(--muted); }.assistant-module { display:grid; grid-template-columns:16rem minmax(0,1fr); min-height:calc(100vh - 17rem); background:var(--surface); border:1px solid var(--border); }.assistant-module-sidebar { display:flex; flex-direction:column; gap:1.1rem; padding:1.25rem; background:var(--surface-muted); border-right:1px solid var(--border); }.assistant-module-sidebar > img { width:100%; height:11.5rem; object-fit:cover; object-position:center top; background:var(--oafoch-navy); }.assistant-module-sidebar > div { display:grid; gap:.25rem; }.assistant-module-sidebar strong { color:var(--oafoch-navy); font-size:1.2rem; }.assistant-module-sidebar span { color:var(--muted); font-size:.82rem; }.assistant-module-sidebar i { display:inline-block; width:.55rem; height:.55rem; margin-right:.25rem; background:var(--oafoch-teal); border-radius:50%; }.assistant-module-sidebar nav { display:grid; gap:.45rem; margin-top:.5rem; }.assistant-module-sidebar nav .eyebrow { margin:0 0 .2rem; }.assistant-module-sidebar nav button { padding:.65rem .7rem; color:var(--oafoch-navy); font:inherit; font-size:.84rem; font-weight:700; text-align:left; background:var(--surface); border:1px solid var(--border); cursor:pointer; }.assistant-module-sidebar nav button:hover,.assistant-module-sidebar nav button:focus-visible { color:#fff; background:var(--oafoch-navy); border-color:var(--oafoch-navy); }.assistant-module-sidebar > .link-button { margin-top:auto; text-align:left; }.assistant-module-chat { display:grid; grid-template-rows:auto minmax(18rem,1fr) auto; min-width:0; }.assistant-module-chat > header { display:flex; align-items:start; justify-content:space-between; gap:1.5rem; padding:1.35rem 1.5rem; border-bottom:1px solid var(--border); }.assistant-module-chat h2 { margin:.2rem 0 0; color:var(--oafoch-navy); font-size:1.35rem; }.assistant-module-context { max-width:26rem; margin:0; color:var(--muted); font-size:.85rem; line-height:1.45; text-align:right; }.assistant-module-messages { display:grid; align-content:start; gap:1rem; max-height:calc(100vh - 26rem); padding:1.5rem; overflow:auto; }.assistant-module-welcome { max-width:42rem; padding:1.4rem; background:var(--surface-muted); border-left:4px solid var(--oafoch-teal); }.assistant-module-welcome h3 { margin:0 0 .45rem; color:var(--oafoch-navy); }.assistant-module-welcome p { margin:0; color:var(--muted); line-height:1.55; }.assistant-module-message { max-width:min(48rem,78%); padding:1rem 1.15rem; line-height:1.55; }.assistant-module-message p { margin:.35rem 0 0; }.assistant-module-message p:first-child { margin-top:0; }.assistant-module-message-question { justify-self:end; color:#fff; background:var(--oafoch-navy); }.assistant-module-message-answer { justify-self:start; border-left:4px solid var(--oafoch-teal); background:var(--surface-muted); }.assistant-module-message-error { justify-self:start; color:#7b1732; background:#fff0f3; border-left:4px solid #bb1e3f; }.assistant-module-source { color:#006c70; font-size:.76rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }.assistant-module-citations { display:grid; gap:.35rem; margin-top:.9rem; padding-top:.8rem; border-top:1px solid var(--border); }.assistant-module-citations details { color:var(--muted); font-size:.82rem; }.assistant-module-citations summary { color:var(--oafoch-navy); font-weight:700; cursor:pointer; }.assistant-module-citations p { margin:.45rem 0 0; }.assistant-module-compose { display:grid; gap:.55rem; padding:1.15rem 1.5rem 1.35rem; border-top:1px solid var(--border); }.assistant-module-compose label { color:var(--oafoch-navy); font-size:.85rem; font-weight:700; }.assistant-module-compose textarea { width:100%; min-height:5.25rem; box-sizing:border-box; padding:.75rem; color:var(--ink); font:inherit; resize:vertical; background:var(--surface); border:1px solid var(--border); }.assistant-module-compose > div { display:flex; align-items:center; justify-content:space-between; gap:1rem; }.assistant-module-compose small { color:var(--muted); }.assistant-module-compose button { min-width:7rem; }

@media (max-width:48rem) {
  .task-hub-workspace { grid-template-columns:1fr; }
  .task-create-panel { position:static; }
  .task-overview { grid-template-columns:1fr; }
  .task-dialog-grid { grid-template-columns:1fr; }.task-dialog footer { align-items:stretch; flex-direction:column-reverse; }.task-dialog footer button { width:100%; }
  .task-card-details { grid-template-columns:1fr; }.task-history-rail { padding:1rem 0 0; border-top:1px solid var(--border); border-left:0; }
}
@media (max-width:68rem) { .task-hub-workspace { grid-template-columns:1fr; }.task-create-panel { position:static; }.task-overview { grid-template-columns:1fr; } }
@media (max-width:68rem) { .task-workspace { grid-template-columns:1fr; }.task-detail-pane { position:static; max-height:none; }.task-detail-empty { min-height:10rem; } }

/* The full-page assistant uses the same restrained living portrait as the drawer. */
.assistant-module-sidebar > img { display:none; }
.assistant-module-sidebar > .assistant-module-portrait { position:relative; display:grid; width:100%; height:11.5rem; overflow:hidden; place-items:end center; background:var(--oafoch-navy); }
.assistant-module-portrait [data-assistant-frame-image] { display:none; width:100%; height:11.5rem; object-fit:contain; object-position:center bottom; transform-origin:center bottom; }
.assistant-module-portrait[data-assistant-frame="neutral"] [data-assistant-frame-image="neutral"],.assistant-module-portrait[data-assistant-frame="blink"] [data-assistant-frame-image="blink"],.assistant-module-portrait[data-assistant-frame="speaking"] [data-assistant-frame-image="speaking"] { display:block; }
.assistant-module-portrait[data-assistant-state="thinking"] [data-assistant-frame-image] { animation:assistant-module-think 1.4s ease-in-out infinite; }
.assistant-module-portrait:not([data-assistant-state="thinking"]) [data-assistant-frame-image] { animation:assistant-module-breathe 4.8s ease-in-out infinite; }
@keyframes assistant-module-breathe { 0%,100% { transform:translateY(0) scale(1); } 50% { transform:translateY(-3px) scale(1.008); } }
@keyframes assistant-module-think { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-2px) rotate(-.5deg); } }
@media (prefers-reduced-motion:reduce) { .assistant-module-portrait [data-assistant-frame-image] { animation:none !important; } }
.assistant-answer-task-action { margin-top:1rem; padding:.55rem .75rem; color:var(--oafoch-navy); font:inherit; font-size:.82rem; font-weight:700; cursor:pointer; background:transparent; border:1px solid currentColor; }.assistant-answer-task-action:hover,.assistant-answer-task-action:focus-visible { color:#fff; background:var(--oafoch-navy); outline:2px solid var(--oafoch-teal); outline-offset:2px; }.assistant-task-dialog { width:min(43rem,calc(100vw - 2rem)); }
.portal-context-help-trigger { position:fixed; z-index:26; right:1rem; bottom:1rem; display:flex; gap:.45rem; align-items:center; min-height:2.75rem; padding:.45rem .8rem; color:#fff; font:inherit; font-size:.82rem; font-weight:700; cursor:pointer; background:var(--oafoch-navy); border:1px solid #fff; box-shadow:0 .45rem 1.2rem rgb(0 34 61 / 24%); }.portal-context-help-trigger > span:first-child { display:grid; width:1.25rem; height:1.25rem; color:var(--oafoch-navy); font-weight:800; background:var(--oafoch-teal); border-radius:50%; place-items:center; }.portal-context-help-trigger:hover,.portal-context-help-trigger:focus-visible { background:var(--oafoch-teal); outline:2px solid var(--oafoch-navy); outline-offset:2px; }.portal-context-help { width:min(33rem,calc(100vw - 2rem)); padding:0; color:var(--ink); background:var(--surface); border:1px solid var(--border); box-shadow:0 1rem 3rem rgb(0 34 61 / 28%); }.portal-context-help::backdrop { background:rgb(5 27 45 / 45%); }.portal-context-help section { padding:1.35rem; }.portal-context-help header { display:flex; gap:1rem; align-items:start; justify-content:space-between; }.portal-context-help h2 { margin:.15rem 0 0; color:var(--oafoch-navy); }.portal-context-help header button { width:2rem; height:2rem; padding:0; color:var(--oafoch-navy); font:inherit; font-size:1.5rem; line-height:1; cursor:pointer; background:transparent; border:0; }.portal-context-help-text { margin:1rem 0 1.35rem; color:var(--muted); line-height:1.55; }.portal-context-help-actions { display:flex; flex-wrap:wrap; gap:.65rem; justify-content:flex-end; }
html[data-theme="dark"] .portal-context-help { color:#e7f0f5; background:#142a3b; border-color:#426176; }.portal-context-help h2,html[data-theme="dark"] .portal-context-help header button { color:var(--oafoch-navy); }html[data-theme="dark"] .portal-context-help h2,html[data-theme="dark"] .portal-context-help header button { color:#edf5f9; }html[data-theme="dark"] .portal-context-help-text { color:#c4d2dc; }

/* Mitteilungszentrale */
.notification-editor select[multiple] { min-height:11.5rem; padding:.45rem; }.notification-editor select[multiple] option { padding:.28rem .4rem; }.notification-calendar { padding:1rem; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.notification-calendar-heading { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:1rem; color:var(--oafoch-navy); }.notification-calendar-heading strong { font-size:1.25rem; }.notification-calendar-heading span { color:var(--muted,#59728a); font-size:.9rem; }.notification-calendar-weekdays,.notification-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }.notification-calendar-weekdays span { padding:.45rem; color:var(--muted,#59728a); font-size:.8rem; font-weight:700; text-align:center; }.notification-calendar-day { display:flex; flex-direction:column; gap:.35rem; min-height:7.25rem; padding:.45rem; overflow:hidden; border:1px solid var(--border,#d6e0e8); }.notification-calendar-day.empty { background:rgb(8 57 105 / 3%); }.notification-calendar-day strong { color:var(--oafoch-navy); font-size:.85rem; }.notification-calendar-entry { display:block; padding:.25rem .3rem; overflow:hidden; color:var(--oafoch-navy); font-size:.75rem; line-height:1.25; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; background:rgb(0 159 160 / 9%); border-left:3px solid var(--oafoch-teal); }.notification-calendar-entry.priority-important { border-left-color:#7b4fa3; }.notification-calendar-entry.priority-urgent { border-left-color:#c7214b; }html[data-theme="dark"] .notification-calendar { background:#14293a; border-color:#315068; }html[data-theme="dark"] .notification-calendar-heading,html[data-theme="dark"] .notification-calendar-day strong { color:#edf5f9; }html[data-theme="dark"] .notification-calendar-day { border-color:#315068; }html[data-theme="dark"] .notification-calendar-day.empty { background:#102130; }html[data-theme="dark"] .notification-calendar-entry { color:#edf5f9; background:#18384a; }@media (max-width:720px) { .notification-calendar { overflow-x:auto; }.notification-calendar-weekdays,.notification-calendar-grid { min-width:43rem; } }

.notification-editor { max-width:none; }.notification-editor-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(17rem,.85fr); gap:1rem; }.notification-editor-section { padding:1.15rem; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.notification-editor-section > header { margin:0 0 1rem; }.notification-editor-section h2 { margin:.1rem 0; color:var(--oafoch-navy); font-size:1.2rem; }.notification-editor-section header > p:last-child,.notification-editor-hint { margin:.35rem 0 0; color:var(--muted,#59728a); font-size:.83rem; line-height:1.45; }.notification-editor-section .eyebrow { margin:0; }.notification-editor-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem 1rem; }.notification-editor-grid label,.notification-editor-publication label { display:grid; gap:.35rem; color:var(--oafoch-navy); font-size:.82rem; font-weight:700; }.notification-editor-grid input,.notification-editor-grid select,.notification-editor-grid textarea,.notification-editor-publication input,.notification-editor-publication select { width:100%; box-sizing:border-box; }.notification-editor-grid textarea { min-height:8.25rem; }.notification-editor-publication { display:grid; align-content:start; gap:1rem; }.notification-editor-publication header { margin-bottom:0; }.notification-editor-hint { padding:.65rem .75rem; color:#075d63; background:#e8f7f7; border-left:3px solid var(--oafoch-teal); }.notification-editor-audiences { grid-column:1 / -1; }.notification-audience-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }.notification-audience-all { grid-column:1 / -1; padding:.75rem; background:#e8f7f7; border-left:3px solid var(--oafoch-teal); }.notification-audience-groups details { border:1px solid var(--border,#d6e0e8); }.notification-audience-groups summary { display:flex; justify-content:space-between; padding:.7rem .8rem; color:var(--oafoch-navy); font-size:.86rem; font-weight:700; cursor:pointer; }.notification-audience-groups summary span { color:var(--muted,#59728a); font-weight:400; }.notification-audience-options { display:grid; gap:.35rem; max-height:13rem; padding:.1rem .75rem .75rem; overflow:auto; }.notification-audience-choice { display:flex; align-items:center; gap:.55rem; min-height:2rem; color:var(--ink); font-size:.85rem; font-weight:400; cursor:pointer; }.notification-audience-choice input { width:1rem; height:1rem; accent-color:var(--oafoch-teal); }.notification-editor > .notification-actions { margin-top:1rem; }html[data-theme="dark"] .notification-editor-section { background:#14293a; border-color:#315068; }html[data-theme="dark"] .notification-editor-section h2,html[data-theme="dark"] .notification-audience-groups summary { color:#edf5f9; }html[data-theme="dark"] .notification-editor-hint,html[data-theme="dark"] .notification-audience-all { color:#d3f1f0; background:#153a44; }html[data-theme="dark"] .notification-audience-groups details { border-color:#315068; }html[data-theme="dark"] .notification-audience-choice { color:#e7f0f5; }@media (max-width:850px) { .notification-editor-layout { grid-template-columns:1fr; }.notification-editor-audiences { grid-column:auto; } }@media (max-width:600px) { .notification-editor-grid,.notification-audience-groups { grid-template-columns:1fr; }.notification-audience-all { grid-column:auto; } }

/* Zielgruppen bleiben eine kurze Akkordeonliste; geöffnete Optionen nutzen den Raum effizient. */
.notification-audience-groups { grid-template-columns:1fr; align-items:start; gap:.45rem; }.notification-audience-groups details { align-self:start; }.notification-audience-options { grid-template-columns:repeat(auto-fit,minmax(13rem,1fr)); gap:.15rem .8rem; max-height:9rem; padding:.35rem .8rem .65rem; }.notification-editor .notification-audience-choice { display:flex; align-items:center; min-height:1.85rem; gap:.5rem; margin:0; padding:.1rem 0; color:var(--ink); font-size:.83rem; font-weight:400; }.notification-editor .notification-audience-choice input { flex:0 0 auto; min-height:0; margin:0; }.notification-audience-groups summary { min-height:1.25rem; padding:.58rem .75rem; }.notification-audience-all { padding:.6rem .75rem; }.notification-audience-all .notification-audience-choice { font-weight:700; }
.notification-person-picker { display:grid; gap:.55rem; padding:.75rem; background:var(--surface-muted,#f5f8fa); border:1px solid var(--border,#d6e0e8); }.notification-person-picker > header { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; }.notification-person-picker > header strong { color:var(--oafoch-navy); font-size:.86rem; }.notification-person-picker > header span,.notification-person-picker > label { color:var(--muted,#59728a); font-size:.78rem; }.notification-person-picker input[type="search"] { width:100%; box-sizing:border-box; min-height:2.45rem; padding:.5rem .65rem; color:var(--ink); font:inherit; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.notification-person-suggestions { display:grid; gap:.2rem; }.notification-person-suggestion { padding:.5rem .6rem; color:var(--oafoch-navy); font:inherit; font-size:.83rem; text-align:left; cursor:pointer; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.notification-person-suggestion:hover,.notification-person-suggestion:focus-visible { color:#fff; background:var(--oafoch-navy); border-color:var(--oafoch-navy); }.notification-person-selections { display:flex; flex-wrap:wrap; gap:.4rem; }.notification-person-chip { display:inline-flex; align-items:center; gap:.35rem; padding:.3rem .3rem .3rem .55rem; color:#075d63; font-size:.8rem; font-weight:700; background:#e8f7f7; border:1px solid #9ad9d8; }.notification-person-chip button { display:grid; width:1.3rem; height:1.3rem; padding:0; color:#075d63; font:inherit; font-size:1.1rem; line-height:1; cursor:pointer; background:transparent; border:0; place-items:center; }.notification-person-chip button:hover,.notification-person-chip button:focus-visible { color:#fff; background:var(--oafoch-navy); }html[data-theme="dark"] .notification-person-picker { background:#102a39; border-color:#315068; }html[data-theme="dark"] .notification-person-picker > header strong { color:#edf5f9; }html[data-theme="dark"] .notification-person-picker input[type="search"],html[data-theme="dark"] .notification-person-suggestion { color:#edf5f9; background:#14293a; border-color:#315068; }html[data-theme="dark"] .notification-person-chip { color:#d3f1f0; background:#153a44; border-color:#2f7777; }
.profile-notification-channel { display:flex; align-items:center; gap:.75rem; margin:0 0 1rem; padding:.7rem .8rem; background:var(--surface-muted,#f5f8fa); border-left:3px solid var(--oafoch-teal); }.profile-notification-channel-mark { flex:0 0 auto; padding:.22rem .45rem; color:#075d63; font-size:.74rem; font-weight:800; letter-spacing:.04em; background:#e8f7f7; text-transform:uppercase; }.profile-notification-channel p { margin:0; color:var(--muted,#59728a); font-size:.84rem; line-height:1.4; }html[data-theme="dark"] .profile-notification-channel { background:#14293a; }html[data-theme="dark"] .profile-notification-channel-mark { color:#d3f1f0; background:#153a44; }

/* Persönlicher Aktivitätsfeed */
.activity-feed-page { max-width:1180px; }.activity-feed-heading { padding:2.5rem 0 1.35rem; }.activity-feed-heading h1 { margin:.25rem 0 .5rem; }.activity-feed-heading > p:last-child { margin:0; color:var(--muted,#59728a); }.activity-feed-list { display:grid; gap:.65rem; padding-bottom:3rem; }.activity-feed-item { display:grid; grid-template-columns:8rem minmax(0,1fr) auto; gap:1rem; align-items:start; padding:1rem 1.15rem; color:inherit; text-decoration:none; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); border-left:4px solid var(--oafoch-teal); }.activity-feed-item:hover { border-color:var(--oafoch-teal); }.activity-feed-category { padding-top:.18rem; color:var(--oafoch-teal); font-size:.72rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.activity-feed-main { display:grid; min-width:0; gap:.25rem; }.activity-feed-main strong { color:var(--oafoch-navy); }.activity-feed-main span { overflow:hidden; color:var(--muted,#59728a); text-overflow:ellipsis; white-space:nowrap; }.activity-feed-item time { padding-top:.16rem; color:var(--muted,#59728a); font-size:.82rem; white-space:nowrap; }.activity-feed-empty { padding:2rem; background:var(--surface,#fff); border-left:4px solid var(--oafoch-teal); }.activity-feed-empty h2 { margin-top:0; }html[data-theme="dark"] .activity-feed-item,html[data-theme="dark"] .activity-feed-empty { background:#14293a; }html[data-theme="dark"] .activity-feed-main strong { color:#edf5f9; }@media (max-width:680px) { .activity-feed-item { grid-template-columns:1fr; gap:.35rem; }.activity-feed-item time { padding-top:0; } }

/* Plattformweite Suche */
.portal-search-page { max-width:1180px; }.portal-search-heading { padding:2.5rem 0 1.25rem; }.portal-search-heading h1 { margin:.25rem 0 .45rem; }.portal-search-heading > p:last-of-type { color:var(--muted,#59728a); }.portal-search-heading form { max-width:52rem; margin-top:1.4rem; }.portal-search-heading label { display:block; margin-bottom:.45rem; color:var(--oafoch-navy); font-size:.84rem; font-weight:700; }.portal-search-heading form > div { display:flex; gap:.6rem; }.portal-search-heading input { flex:1; min-width:0; min-height:2.8rem; padding:.55rem .75rem; color:var(--ink); font:inherit; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.portal-search-results { display:grid; gap:1rem; padding-bottom:3rem; }.portal-search-group { background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.portal-search-group h2 { display:flex; justify-content:space-between; margin:0; padding:.8rem 1rem; color:var(--oafoch-navy); font-size:1rem; border-bottom:1px solid var(--border,#d6e0e8); }.portal-search-group h2 span { color:var(--muted,#59728a); font-size:.83rem; font-weight:400; }.portal-search-result { display:grid; grid-template-columns:9rem minmax(0,1fr); gap:1rem; padding:.8rem 1rem; color:inherit; text-decoration:none; border-bottom:1px solid var(--border,#d6e0e8); }.portal-search-result:last-child { border-bottom:0; }.portal-search-result:hover { background:var(--surface-muted,#f5f8fa); }.portal-search-result-kind { color:var(--oafoch-teal); font-size:.73rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }.portal-search-result strong,.portal-search-result small { display:block; }.portal-search-result strong { color:var(--oafoch-navy); }.portal-search-result small { margin-top:.2rem; overflow:hidden; color:var(--muted,#59728a); text-overflow:ellipsis; white-space:nowrap; }.portal-search-empty { padding:2rem; background:var(--surface,#fff); border-left:4px solid var(--oafoch-teal); }.portal-search-empty h2 { margin-top:0; }html[data-theme="dark"] .portal-search-group,html[data-theme="dark"] .portal-search-empty { background:#14293a; border-color:#315068; }html[data-theme="dark"] .portal-search-heading label,html[data-theme="dark"] .portal-search-group h2,html[data-theme="dark"] .portal-search-result strong { color:#edf5f9; }html[data-theme="dark"] .portal-search-heading input { color:#edf5f9; background:#102a39; border-color:#315068; }html[data-theme="dark"] .portal-search-result { border-color:#315068; }html[data-theme="dark"] .portal-search-result:hover { background:#102a39; }@media (max-width:680px) { .portal-search-heading form > div { flex-direction:column; }.portal-search-result { grid-template-columns:1fr; gap:.3rem; } }

/* Globale Suche im Header */
.portal-header-search { display:flex; align-items:center; width:clamp(12rem,18vw,18rem); height:2.35rem; margin:0; border:1px solid var(--border,#d6e0e8); }.portal-header-search input { width:100%; min-width:0; height:100%; padding:0 .65rem; color:var(--ink); font:inherit; font-size:.82rem; background:var(--surface,#fff); border:0; }.portal-header-search input:focus { outline:2px solid var(--oafoch-teal); outline-offset:-2px; }.portal-header-search button { display:grid; width:2.35rem; height:2.35rem; flex:0 0 2.35rem; padding:0; color:#fff; font:inherit; font-size:1.35rem; line-height:1; cursor:pointer; background:var(--oafoch-navy); border:0; place-items:center; }.portal-header-search button:hover,.portal-header-search button:focus-visible { background:var(--oafoch-teal); outline:0; }html[data-theme="dark"] .portal-header-search { border-color:#426176; }html[data-theme="dark"] .portal-header-search input { color:#edf5f9; background:#102a39; }@media (max-width:1120px) { .portal-header-search { width:2.35rem; border:0; }.portal-header-search input { position:absolute; top:calc(100% + .4rem); right:var(--portal-gutter); display:none; width:min(22rem,calc(100vw - 2rem)); height:2.6rem; border:1px solid var(--border,#d6e0e8); box-shadow:0 .6rem 1.5rem rgb(0 34 61 / 18%); }.portal-header-search:focus-within input { display:block; }.portal-header-search button { width:2.35rem; } }@media (max-width:680px) { .portal-header-actions { gap:.65rem; }.portal-user-copy { display:none; } }

/* Revision und Compliance */
.audit-log-page { max-width:1280px; }.audit-log-heading { padding:2.5rem 0 1.25rem; }.audit-log-heading h1 { margin:.25rem 0 .45rem; }.audit-log-heading > p:last-child { max-width:54rem; margin:0; color:var(--muted,#59728a); }.audit-log-filter { display:grid; grid-template-columns:1.3fr repeat(4,minmax(8rem,1fr)) auto; gap:.75rem; align-items:end; padding:1rem; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.audit-log-filter label { display:grid; gap:.35rem; color:var(--oafoch-navy); font-size:.78rem; font-weight:700; }.audit-log-filter input,.audit-log-filter select { min-width:0; min-height:2.4rem; padding:.4rem .55rem; color:var(--ink); font:inherit; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.audit-log-actions { display:flex; gap:.5rem; align-items:end; }.audit-log-actions .notification-action { min-height:2.4rem; white-space:nowrap; }.audit-log-table-wrap { margin:1rem 0 3rem; overflow:auto; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.audit-log-table { width:100%; min-width:62rem; border-collapse:collapse; font-size:.82rem; }.audit-log-table th,.audit-log-table td { padding:.75rem .8rem; text-align:left; vertical-align:top; border-bottom:1px solid var(--border,#d6e0e8); }.audit-log-table th { color:var(--oafoch-navy); font-size:.74rem; letter-spacing:.04em; text-transform:uppercase; background:var(--surface-muted,#f5f8fa); }.audit-log-table td:nth-child(5) { max-width:25rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }html[data-theme="dark"] .audit-log-filter,html[data-theme="dark"] .audit-log-table-wrap { background:#14293a; border-color:#315068; }html[data-theme="dark"] .audit-log-filter label,html[data-theme="dark"] .audit-log-table th { color:#edf5f9; }html[data-theme="dark"] .audit-log-filter input,html[data-theme="dark"] .audit-log-filter select { color:#edf5f9; background:#102a39; border-color:#315068; }html[data-theme="dark"] .audit-log-table th { background:#102a39; }html[data-theme="dark"] .audit-log-table th,html[data-theme="dark"] .audit-log-table td { border-color:#315068; }@media (max-width:1000px) { .audit-log-filter { grid-template-columns:repeat(2,minmax(0,1fr)); }.audit-log-actions { grid-column:1 / -1; } }@media (max-width:600px) { .audit-log-filter { grid-template-columns:1fr; } }

/* Datensparsame Nutzungsanalyse */
.usage-page { max-width:1180px; }.usage-heading { padding:2.5rem 0 1.2rem; }.usage-heading h1 { margin:.25rem 0 .45rem; }.usage-heading > p:last-child,.usage-note { max-width:56rem; margin:0; color:var(--muted,#59728a); line-height:1.55; }.usage-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; }.usage-kpis article { display:grid; gap:.35rem; padding:1rem; background:var(--surface,#fff); border-left:4px solid var(--oafoch-teal); }.usage-kpis strong { color:var(--oafoch-navy); font-size:2rem; line-height:1; }.usage-kpis span { color:var(--muted,#59728a); font-size:.82rem; }.usage-chart,.usage-breakdown > section { margin-top:1rem; padding:1rem; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.usage-chart header,.usage-breakdown header { display:flex; justify-content:space-between; gap:1rem; align-items:baseline; }.usage-chart h2,.usage-breakdown h2 { margin:0; color:var(--oafoch-navy); font-size:1.05rem; }.usage-chart header span,.usage-breakdown header span { color:var(--muted,#59728a); font-size:.8rem; }.usage-chart-bars { display:flex; gap:.35rem; align-items:end; height:11rem; margin-top:1rem; padding-top:.5rem; border-bottom:1px solid var(--border,#d6e0e8); }.usage-day { display:grid; flex:1; min-width:0; height:100%; gap:.3rem; align-items:end; grid-template-rows:1fr auto; }.usage-day i { display:block; width:100%; min-height:4px; background:var(--oafoch-teal); }.usage-day span { overflow:hidden; color:var(--muted,#59728a); font-size:.67rem; text-align:center; text-overflow:clip; white-space:nowrap; }.usage-breakdown { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }.usage-bar-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; padding:.7rem 0; border-bottom:1px solid var(--border,#d6e0e8); }.usage-bar-row:last-child { border-bottom:0; }.usage-bar-row span { overflow:hidden; color:var(--ink); text-overflow:ellipsis; white-space:nowrap; }.usage-bar-row strong { color:var(--oafoch-navy); }.usage-note { margin:1rem 0 3rem; padding:.8rem 1rem; background:var(--surface-muted,#f5f8fa); border-left:3px solid var(--oafoch-teal); }html[data-theme="dark"] .usage-kpis article,html[data-theme="dark"] .usage-chart,html[data-theme="dark"] .usage-breakdown > section { background:#14293a; border-color:#315068; }html[data-theme="dark"] .usage-kpis strong,html[data-theme="dark"] .usage-chart h2,html[data-theme="dark"] .usage-breakdown h2,html[data-theme="dark"] .usage-bar-row strong { color:#edf5f9; }html[data-theme="dark"] .usage-chart-bars,.usage-bar-row { border-color:#315068; }html[data-theme="dark"] .usage-note { background:#102a39; }@media (max-width:800px) { .usage-kpis,.usage-breakdown { grid-template-columns:repeat(2,minmax(0,1fr)); } }@media (max-width:520px) { .usage-kpis,.usage-breakdown { grid-template-columns:1fr; }.usage-chart-bars { gap:.18rem; }.usage-day:nth-child(even) span { visibility:hidden; } }

/* Korrekte Linienfarbe außerhalb des dunklen Farbschemas. */
.usage-bar-row { border-color:var(--border,#d6e0e8); }html[data-theme="dark"] .usage-bar-row { border-color:#315068; }

/* Verbindliche Komponentenreferenz */
.design-system-page { max-width:1280px; padding-bottom:3rem; }.design-system-heading { max-width:56rem; padding:2.5rem 0 1.25rem; }.design-system-heading h1 { margin:.25rem 0 .45rem; }.design-system-heading > p:last-child { margin:0; color:var(--muted,#59728a); line-height:1.55; }.design-system-principles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }.design-system-principles article { display:grid; gap:.35rem; padding:1rem; background:var(--surface,#fff); border-left:4px solid var(--oafoch-teal); }.design-system-principles strong,.design-system-section h2,.design-system-rules h2 { color:var(--oafoch-navy); }.design-system-principles span { color:var(--muted,#59728a); font-size:.85rem; line-height:1.45; }.design-system-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem; }.design-system-section,.design-system-rules { padding:1rem; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.design-system-section header h2,.design-system-rules h2 { margin:.2rem 0 .45rem; font-size:1.1rem; }.design-system-section header > p:last-child { margin:0; color:var(--muted,#59728a); font-size:.86rem; line-height:1.45; }.design-system-examples { display:flex; flex-wrap:wrap; gap:.65rem; align-items:center; margin-top:1rem; }.design-system-link { padding:0; color:var(--oafoch-navy); font:inherit; font-weight:700; text-decoration:underline; cursor:pointer; background:transparent; border:0; }.design-system-feedback { display:grid; gap:.45rem; margin-top:1rem; }.design-system-feedback > div { display:grid; grid-template-columns:9rem minmax(0,1fr); gap:.75rem; padding:.55rem .7rem; font-size:.82rem; }.design-system-feedback-success { color:#17643e; background:#eaf7ef; border-left:3px solid #24965c; }.design-system-feedback-error { color:#4d2c74; background:#f1eafd; border-left:3px solid #7550aa; }.design-system-feedback-critical { color:#8a1743; background:#feeaf1; border-left:3px solid #dd2870; }.design-system-form-example { display:grid; gap:.4rem; margin-top:1rem; }.design-system-form-example label { display:grid; gap:.35rem; color:var(--oafoch-navy); font-size:.82rem; font-weight:700; }.design-system-form-example label b { color:#8a1743; font-size:.7rem; text-transform:uppercase; }.design-system-form-example input { min-height:2.4rem; padding:.45rem .6rem; color:var(--ink); font:inherit; background:var(--surface,#fff); border:2px solid var(--border,#d6e0e8); }.design-system-form-example small { color:var(--muted,#59728a); }.design-system-form-example p { margin:0; color:#8a1743; font-size:.79rem; }.design-system-task-example { display:grid; grid-template-columns:3rem minmax(8rem,1fr) minmax(0,1.25fr) auto; gap:.7rem; align-items:center; margin-top:1rem; border:1px solid var(--border,#d6e0e8); border-left:3px solid var(--oafoch-teal); }.design-system-avatar { display:grid; align-self:stretch; color:#fff; font-size:.78rem; font-weight:800; background:var(--oafoch-navy); place-items:center; }.design-system-task-example > div { display:grid; gap:.25rem; }.design-system-task-example strong { color:var(--oafoch-navy); font-size:.86rem; }.design-system-task-example span { color:var(--muted,#59728a); font-size:.76rem; }.design-system-task-example > p { display:-webkit-box; margin:0; overflow:hidden; color:var(--muted,#59728a); font-size:.79rem; line-height:1.4; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.design-system-task-example .notification-action { margin-right:.65rem; white-space:nowrap; }.design-system-rules { margin-top:1rem; }.design-system-rules dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:1rem 0 0; border-top:1px solid var(--border,#d6e0e8); }.design-system-rules dl > div { padding:.8rem 1rem .8rem 0; border-bottom:1px solid var(--border,#d6e0e8); }.design-system-rules dl > div:nth-child(odd) { padding-right:1rem; }.design-system-rules dl > div:nth-child(even) { padding-left:1rem; border-left:1px solid var(--border,#d6e0e8); }.design-system-rules dt { color:var(--oafoch-navy); font-size:.86rem; font-weight:800; }.design-system-rules dd { margin:.3rem 0 0; color:var(--muted,#59728a); font-size:.84rem; line-height:1.45; }html[data-theme="dark"] .design-system-principles article,html[data-theme="dark"] .design-system-section,html[data-theme="dark"] .design-system-rules { background:#14293a; border-color:#315068; }html[data-theme="dark"] .design-system-principles strong,html[data-theme="dark"] .design-system-section h2,html[data-theme="dark"] .design-system-rules h2,html[data-theme="dark"] .design-system-form-example label,html[data-theme="dark"] .design-system-task-example strong,html[data-theme="dark"] .design-system-rules dt { color:#edf5f9; }html[data-theme="dark"] .design-system-form-example input { color:#edf5f9; background:#102a39; border-color:#426176; }html[data-theme="dark"] .design-system-task-example,html[data-theme="dark"] .design-system-rules dl,html[data-theme="dark"] .design-system-rules dl > div { border-color:#315068; }html[data-theme="dark"] .design-system-link { color:#a8e5e2; }@media (max-width:800px) { .design-system-principles,.design-system-grid,.design-system-rules dl { grid-template-columns:1fr; }.design-system-rules dl > div:nth-child(even) { padding-left:0; border-left:0; }.design-system-task-example { grid-template-columns:2.8rem minmax(0,1fr) auto; }.design-system-task-example > p { grid-column:2 / -1; padding:0 .65rem .65rem 0; }.design-system-task-example .notification-action { grid-column:3; grid-row:1 / span 2; margin-right:.65rem; } }@media (max-width:520px) { .design-system-feedback > div { grid-template-columns:1fr; gap:.15rem; }.design-system-task-example { grid-template-columns:2.7rem minmax(0,1fr); }.design-system-task-example .notification-action { grid-column:2; grid-row:auto; margin:0 0 .65rem; }.design-system-task-example > p { grid-column:2; } }

/* Plattformweite Zugänglichkeit und kleine Bildschirme */
.portal-skip-link { position:fixed; top:.5rem; left:.5rem; z-index:200; padding:.65rem .85rem; color:#fff; font-weight:800; text-decoration:none; background:var(--oafoch-navy); border:2px solid #fff; transform:translateY(-150%); }.portal-skip-link:focus { transform:translateY(0); outline:3px solid var(--oafoch-teal); outline-offset:2px; }:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid var(--oafoch-teal) !important; outline-offset:3px; }main:focus { outline:0; }.crm-table-wrap,.audit-log-table-wrap { max-width:100%; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }.portal-drawer-grip,.portal-drawer-close,.portal-header-search button,.portal-user-trigger { min-height:44px; }.portal-drawer-grip { min-width:32px; }@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }@media (prefers-contrast:more) { :root { --border:#627788; --muted:#365269; }.portal-app-header,.crm-app-header { border-bottom-width:5px; }.module-card,.notification-action,.secondary-action { border-width:2px; } }@media (max-width:600px) { .portal-app-header,.crm-app-header { height:62px; min-height:62px; }.portal-app-header img,.crm-app-header img { max-width:180px; max-height:38px; }.portal-header-actions { height:58px; gap:.45rem; }.portal-app-header nav,.crm-app-header nav,.portal-app-header nav a { height:58px; font-size:.78rem; }.portal-app-header nav a.active::after,.crm-app-header nav strong::after { bottom:8px; }.portal-side-drawer { top:62px; width:calc(100vw - 28px); }.portal-drawer-grip { top:116px; }.portal-drawers-below-module .portal-side-drawer { top:104px; }.portal-drawers-below-context .portal-side-drawer { top:144px; }.portal-drawers-below-module .portal-drawer-grip { top:158px; }.portal-drawers-below-context .portal-drawer-grip { top:198px; }.portal-user-avatar { width:2.3rem; height:2.3rem; flex-basis:2.3rem; }.portal-module-navigation { overflow-x:auto; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }.portal-module-navigation a { white-space:nowrap; }.portal-toast-region { right:.75rem; left:.75rem; width:auto; }.portal-toast { width:100%; } }

/* Das Kanban-Board darf auf kleinen Bildschirmen nur innerhalb des Boards horizontal scrollen. */
.task-list-panel,.task-list-panel .section-heading,.task-list-panel [data-task-view],.task-kanban-board { min-width:0; }.task-list-panel [data-task-view] { width:100%; max-width:100%; }.task-kanban-board { width:100%; max-width:100%; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }@media (max-width:48rem) { .task-list-panel .section-heading { flex-wrap:wrap; align-items:flex-start; }.task-toolbar { flex-wrap:wrap; justify-content:flex-end; }.task-list-panel [data-task-view] { overflow:hidden; }.task-kanban-board { display:flex; grid-template-columns:none; gap:.75rem; padding-bottom:.35rem; overflow-x:auto; }.task-kanban-column { flex:0 0 15.5rem; min-width:15.5rem; } }@media (max-width:30rem) { .task-toolbar { justify-content:flex-start; }.task-toolbar > .notification-action { flex:1 0 auto; }.task-filter-switch { width:100%; }.task-view-switch { margin-left:auto; } }

/* Der Kopfbereich priorisiert auf schmalen Bildschirmen Suche, Aufgaben, Mitteilungen und Profil. */
@media (max-width:600px) { .portal-app-header,.crm-app-header { padding-right:12px; padding-left:12px; }.portal-app-header img,.crm-app-header img { max-width:152px; }.portal-header-actions { gap:.4rem; min-width:0; }.portal-app-header nav,.crm-app-header nav { gap:.45rem; min-width:0; }.portal-app-header nav a:nth-child(2) { display:none; } }

/* Projektansichten teilen die horizontale Modulnavigation mit der Administration. */
.portal-module-navigation .project-navigation-project-list { margin-right:.45rem; padding-right:1.25rem; color:#7b4fa3; border-right:1px solid var(--border,#d6e0e8); }.portal-module-navigation .project-navigation-project-list:hover,.portal-module-navigation .project-navigation-project-list:focus-visible { color:#7b4fa3; }html[data-theme="dark"] .portal-module-navigation .project-navigation-project-list { color:#cba9e5; border-color:#315068; }
.portal-module-navigation a.project-navigation-active,.portal-module-navigation a[aria-current="page"] { color:var(--oafoch-teal); border-bottom-color:var(--oafoch-teal); }

/* Fonds: Übersicht zuerst, fachliche Bearbeitung erst im einzelnen Fonds. */
.funds-page { padding-bottom:3rem; }.funds-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; }.funds-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:0 0 1.5rem; }.funds-kpis article { display:flex; flex-direction:column; gap:.2rem; padding:1rem 1.15rem; background:#fff; border-top:4px solid var(--oafoch-teal); box-shadow:0 1px 4px rgba(16,46,70,.08); }.funds-kpis strong { color:var(--oafoch-navy); font-size:1.65rem; }.funds-kpis span,.funds-table small { color:var(--muted); }.funds-catalog header { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; }.fund-search { width:min(23rem,100%); font-weight:700; }.fund-search input { width:100%; margin-top:.35rem; }.funds-table-wrap { overflow:auto; }.funds-table { width:100%; border-collapse:collapse; }.funds-table th { padding:.8rem .7rem; color:var(--muted); font-size:.78rem; text-align:left; text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid var(--border); }.funds-table td { padding:1rem .7rem; vertical-align:middle; border-bottom:1px solid var(--border); }.funds-table td:first-child { min-width:20rem; }.funds-table strong,.funds-table small { display:block; }.fund-status { display:inline-flex; padding:.25rem .5rem; color:#586d7d; font-size:.78rem; font-weight:700; background:#edf2f5; border-radius:999px; white-space:nowrap; }.fund-status-review { color:#775300; background:#fff3cd; }.fund-status-live { color:#0b5b51; background:#d9f1ed; }.fund-detail-slots { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }.fund-detail-slot { align-self:start; }.fund-detail-slot header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }.fund-review { padding:1rem; margin:1rem 0; background:#fff8e8; border-left:4px solid #e0a500; }.fund-review form,.fund-source-panel form { display:grid; gap:.65rem; margin-top:.8rem; }.fund-source-panel,.fund-detail-slot details { margin-top:1rem; }.fund-source-panel summary { color:var(--oafoch-navy); font-weight:700; cursor:pointer; }.fund-source-panel ul { padding-left:1.1rem; }.fund-source-panel li { margin:.75rem 0; }.fund-source-panel li form { display:inline-block; margin:.4rem 0 0; }@media(max-width:900px){.funds-heading,.funds-catalog header{align-items:stretch;flex-direction:column}.funds-kpis,.fund-detail-slots{grid-template-columns:1fr}.funds-table th:nth-child(2),.funds-table td:nth-child(2),.funds-table th:nth-child(3),.funds-table td:nth-child(3){display:none}.funds-table td:first-child{min-width:15rem}}
.funds-pager { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:1rem; color:var(--muted); font-size:.875rem; }.funds-pager nav { display:flex; align-items:center; gap:.9rem; }.funds-pager a { color:var(--oafoch-teal); font-weight:700; }.pager-disabled { color:var(--muted); }
.fund-provider-logo,.fund-logo-placeholder { display:block; width:88px; height:44px; object-fit:contain; flex:0 0 88px; background:#fff; color:var(--muted); }.fund-logo-placeholder { display:grid; place-items:center; border:1px solid var(--border); }.fund-row-identity,.fund-company-heading { display:flex; align-items:center; gap:1rem; }.fund-company-heading { margin-bottom:1rem; }.funds-dialog { width:min(640px,calc(100vw - 40px)); max-height:calc(100dvh - 40px); overflow:auto; color:var(--ink); background:var(--surface); }.funds-dialog::backdrop { background:rgb(0 51 102 / 55%); }.funds-form { display:grid; gap:1.2rem; padding:1.25rem; }.funds-form label { display:grid; gap:.35rem; font-weight:600; }.funds-form input:not([type=checkbox]),.funds-form select,.fund-search input { box-sizing:border-box; width:100%; min-height:42px; padding:.45rem .65rem; border:2px solid var(--border); background:var(--surface); color:var(--ink); font:inherit; }.funds-form input[readonly] { background:var(--canvas); }.funds-form small { font-size:.8rem; font-weight:400; color:var(--muted); }.funds-form .fund-field-error { color:#993399; }.fund-field-error:empty { display:none; }.funds-form .fund-checkbox { display:flex; align-items:center; gap:.5rem; }.funds-dialog footer { justify-content:flex-end; padding:1rem 1.25rem; border-top:1px solid var(--border); }.fund-search { display:grid; gap:.35rem; }.fund-search button { justify-self:start; }.funds-table tr[hidden] { display:none; }
@media(max-width:900px){.funds-table th:nth-child(2),.funds-table td:nth-child(2),.funds-table th:nth-child(3),.funds-table td:nth-child(3){display:table-cell}.funds-heading>.notification-actions{align-items:stretch;flex-direction:column}.funds-pager{flex-wrap:wrap}}
/* Fonds search uses the same field metrics as portal forms. */
.fund-metric-summary > header { align-items:center; }
.fund-metric-summary + .fund-detail-slots { margin-top:1.5rem; }
.fund-metric-summary > header > div { display:grid; gap:.45rem; }
.fund-metric-legend { display:flex; flex-wrap:wrap; gap:.4rem .9rem; margin:0; color:var(--muted); font-size:.72rem; }
.fund-metric-legend span { display:inline-flex; align-items:center; gap:.35rem; }
.fund-metric-legend span::before { width:.58rem; height:.58rem; content:""; background:#718290; border-radius:50%; }
.fund-metric-legend .approved::before { background:var(--oafoch-teal); }
.fund-metric-legend .open::before { background:#ff3399; }
.fund-metric-legend .stale::before { background:#7655a5; }
.fund-metric-legend .missing::before { background:#b32030; }
.fund-metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); column-gap:1rem; row-gap:.85rem; padding-top:1rem; }
.fund-metric-tile { position:relative; display:grid; grid-template-columns:auto minmax(0,1fr); grid-template-rows:auto auto; gap:.16rem .55rem; min-width:0; padding:.7rem .78rem; background:#f7f9fa; border:1px solid var(--border); border-left:4px solid #718290; outline:0; }
.fund-metric-tile:hover,.fund-metric-tile:focus-visible { z-index:3; border-color:var(--oafoch-navy); box-shadow:0 5px 16px rgb(0 51 102 / 13%); }
.fund-metric-status { grid-row:1 / span 2; align-self:start; width:.58rem; height:.58rem; margin-top:.2rem; background:#718290; border-radius:50%; }
.fund-metric-name { overflow:hidden; color:var(--muted); font-size:.73rem; font-weight:700; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.fund-metric-tile strong { overflow:hidden; color:var(--oafoch-navy); font-size:1.18rem; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }
.fund-metric-approved { border-left-color:var(--oafoch-teal); }.fund-metric-approved .fund-metric-status { background:var(--oafoch-teal); }
.fund-metric-open { border-left-color:#ff3399; }.fund-metric-open .fund-metric-status { background:#ff3399; }
.fund-metric-stale { border-left-color:#7655a5; }.fund-metric-stale .fund-metric-status { background:#7655a5; }
.fund-metric-missing { border-left-color:#b32030; }.fund-metric-missing .fund-metric-status { background:#b32030; }.fund-metric-missing strong { color:#6c7780; font-size:.9rem; }
.fund-metric-tile::after { position:absolute; z-index:5; bottom:calc(100% + .45rem); left:.35rem; display:none; width:max-content; max-width:min(25rem,calc(100vw - 4rem)); padding:.55rem .65rem; content:attr(data-tooltip); color:#fff; font-size:.76rem; font-weight:500; line-height:1.45; white-space:pre-line; background:var(--oafoch-navy); box-shadow:0 5px 16px rgb(0 31 62 / 22%); }
.fund-metric-tile:hover::after,.fund-metric-tile:focus-visible::after { display:block; }
.fund-metric-kpis .fund-kpi-review { border-top-color:#ff3399; }.fund-metric-kpis .fund-kpi-critical { border-top-color:#b32030; }
html[data-theme="dark"] .fund-metric-tile { background:#102a39; border-color:#315068; }html[data-theme="dark"] .fund-metric-tile strong { color:#edf5f9; }
@media(max-width:1050px){.fund-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.fund-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fund-metric-summary>header{align-items:stretch;flex-direction:column}.fund-metric-summary>header>a{align-self:start}}
@media(max-width:440px){.fund-metric-grid{grid-template-columns:1fr}}
.fund-metric-overview { padding-top:1.1rem; }.fund-metric-filter { grid-template-columns:minmax(15rem,1fr) minmax(15rem,1fr) auto; align-items:end; gap:.8rem 1rem; padding-bottom:1rem; border-bottom:1px solid var(--border); }.fund-metric-filter label { margin:0; }.fund-metric-filter input,.fund-metric-filter select,.fund-metric-filter .notification-action { box-sizing:border-box; height:44px; min-height:44px; margin:0; }.fund-metric-filter .notification-action { display:inline-flex; align-items:center; justify-content:center; min-width:10rem; white-space:nowrap; }.fund-metric-list { display:grid; gap:.75rem; margin-top:1rem; }.fund-metric-list-item { display:grid; grid-template-columns:minmax(17rem,1.35fr) minmax(24rem,1.2fr) minmax(8rem,.5fr) auto; align-items:center; gap:1rem; padding:.95rem 1rem; background:#fff; border:1px solid var(--border); border-left:4px solid var(--oafoch-navy); }.fund-metric-list-item:hover { border-color:#9eabb4; border-left-color:var(--oafoch-teal); box-shadow:0 2px 8px rgb(0 51 102 / 8%); }.fund-metric-list-identity { display:grid; gap:.18rem; min-width:0; }.fund-metric-list-identity strong { overflow:hidden; color:var(--oafoch-navy); font-size:.95rem; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }.fund-metric-list-identity small { overflow:hidden; color:var(--muted); font-size:.76rem; text-overflow:ellipsis; white-space:nowrap; }.fund-metric-list-counts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.55rem; margin:0; }.fund-metric-list-counts > div { display:grid; gap:.12rem; min-width:0; padding:.55rem .65rem; background:#f6f8fa; border-top:3px solid #718290; }.fund-metric-list-counts > .is-approved { border-top-color:var(--oafoch-teal); }.fund-metric-list-counts > .is-review { border-top-color:#ff3399; }.fund-metric-list-counts > .is-missing { border-top-color:#b32030; }.fund-metric-list-counts dt { overflow:hidden; color:var(--muted); font-size:.68rem; font-weight:700; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }.fund-metric-list-counts dd { margin:0; color:var(--oafoch-navy); font-size:1.05rem; font-weight:800; line-height:1.15; }.fund-metric-list-counts dd span { color:var(--muted); font-size:.72rem; font-weight:500; }.fund-metric-list-refresh { display:flex; justify-content:flex-start; }.fund-metric-refresh-state { display:inline-flex; padding:.28rem .55rem; color:#586d7d; background:#e5eaee; border-radius:999px; font-size:.75rem; font-weight:800; white-space:nowrap; }.fund-metric-refresh-state.is-ready { color:#0b5b51; background:#d9f1ed; }.fund-metric-refresh-state.is-review { color:#8c2156; background:#ffe0ef; }.fund-metric-list-action { display:flex; justify-content:flex-end; }.fund-metric-list-action .notification-action { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; min-width:10rem; min-height:44px; margin:0; white-space:nowrap; }.fund-metric-fetch-report { grid-column:1 / -1; margin:0; padding:.75rem .85rem; background:#f6f8fa; border-left:3px solid var(--oafoch-teal); }.fund-metric-fetch-report summary { color:var(--oafoch-navy); font-size:.8rem; font-weight:800; cursor:pointer; }.fund-metric-fetch-report p { margin:.65rem 0 0; color:var(--ink); font-size:.8rem; line-height:1.5; white-space:pre-line; }.fund-metric-overview > .funds-pager { margin-top:1rem; padding-top:1rem; border-top:1px solid var(--border); }html[data-theme="dark"] .fund-metric-list-item { background:#142434; }html[data-theme="dark"] .fund-metric-list-counts > div,html[data-theme="dark"] .fund-metric-fetch-report { background:#102a39; }@media(max-width:1250px){.fund-metric-list-item{grid-template-columns:minmax(16rem,1fr) minmax(22rem,1fr) auto}.fund-metric-list-refresh{grid-column:1}.fund-metric-list-action{grid-column:3;grid-row:1 / span 2}.fund-metric-list-counts{grid-column:2;grid-row:1 / span 2}}@media(max-width:880px){.fund-metric-filter{grid-template-columns:1fr 1fr}.fund-metric-filter .notification-action{grid-column:1 / -1;width:100%}.fund-metric-list-item{grid-template-columns:1fr auto}.fund-metric-list-counts{grid-column:1 / -1;grid-row:auto}.fund-metric-list-refresh{grid-column:1}.fund-metric-list-action{grid-column:2;grid-row:3}.fund-metric-fetch-report{grid-column:1 / -1}}@media(max-width:560px){.fund-metric-filter{grid-template-columns:1fr}.fund-metric-filter .notification-action{grid-column:1}.fund-metric-list-item{grid-template-columns:1fr}.fund-metric-list-counts{grid-template-columns:1fr}.fund-metric-list-action,.fund-metric-list-refresh{grid-column:1;grid-row:auto;justify-content:stretch}.fund-metric-list-action .notification-action{width:100%}}
.funds-catalog .fund-search { display:grid; gap:.5rem; margin:0; color:var(--oafoch-navy); font-size:1rem; font-weight:600; }
.funds-catalog form.fund-search { grid-template-columns:minmax(0,1fr) auto; flex:0 1 34rem; width:min(34rem,100%); }
.funds-catalog form.fund-search > label { grid-column:1 / -1; }
.funds-catalog .fund-search input[type="search"] { box-sizing:border-box; width:100%; min-width:0; height:44px; margin:0; padding:.5rem .75rem; border:2px solid var(--border); background:var(--surface); color:var(--ink); font:inherit; font-weight:400; line-height:1.5; appearance:none; }
.funds-catalog .fund-search input[type="search"]::placeholder { color:var(--muted); opacity:1; font:inherit; }
.funds-catalog .fund-search button { align-self:end; min-height:44px; margin:0; font-size:1rem; }
@media(max-width:900px) { .funds-catalog form.fund-search { flex-basis:auto; width:100%; } }
.fund-document-empty { color:var(--muted); padding:.75rem 0; }.fund-slot-review { margin:1rem 0; padding-top:1rem; border-top:1px solid var(--border); }.fund-slot-review h3 { font-size:1rem; }.fund-slot-review ul,.fund-source-panel ul { display:grid; gap:.9rem; padding-left:1.1rem; }.fund-slot-review small,.fund-source-panel small { display:block; color:var(--muted); margin-top:.25rem; }.fund-version-history { margin-top:1rem; }.fund-version-history summary { color:var(--oafoch-navy); font-weight:600; cursor:pointer; }.fund-version-history .funds-table td:first-child { min-width:8rem; }.fund-stable-link { display:grid; gap:.4rem; color:var(--muted); font-size:.85rem; }.fund-stable-link input { box-sizing:border-box; width:100%; padding:.6rem; color:var(--ink); background:var(--surface); border:2px solid var(--border); font:inherit; }.funds-form textarea,.fund-compare-select select { box-sizing:border-box; width:100%; padding:.6rem .75rem; color:var(--ink); background:var(--surface); border:2px solid var(--border); font:inherit; line-height:1.5; }.funds-form textarea { resize:vertical; }.funds-dialog [hidden] { display:none!important; }.fund-review-notes { margin-bottom:1.25rem; }.fund-review-notes dl { display:flex; flex-wrap:wrap; gap:1.25rem 2.5rem; }.fund-review-notes dt { color:var(--muted); font-size:.85rem; }.fund-review-notes dd { margin:.3rem 0; font-weight:600; }.fund-review-notes p { line-height:1.5; }.fund-review-muted,.fund-review-state { color:var(--muted); }.fund-internal-url { overflow-wrap:anywhere; font-size:.85rem; }.fund-compare-select { display:flex; align-items:flex-end; gap:.75rem; margin:1rem 0; }.fund-compare-select label { display:grid; gap:.4rem; min-width:0; flex:0 1 42rem; color:var(--oafoch-navy); font-weight:600; }.fund-compare-select button { flex-shrink:0; }.fund-pdf-comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; align-items:stretch; }.fund-pdf-panel { min-width:0; padding:1rem; }.fund-pdf-panel h2 { font-size:1rem; overflow-wrap:anywhere; }.fund-pdf-panel iframe { display:block; width:100%; height:75vh; min-height:480px; margin-top:1rem; border:1px solid var(--border); background:var(--canvas); }.fund-pdf-empty { display:grid; align-content:center; padding:2rem; min-height:18rem; background:var(--surface); border:1px solid var(--border); color:var(--muted); }.fund-pdf-fallback { line-height:1.6; font-size:.85rem; }.fund-detail-slots .fund-source-panel p { overflow-wrap:anywhere; }.fund-review-page .funds-heading { align-items:center; }
.fund-current-document { display:grid; gap:.75rem; padding:1rem 0; border-bottom:1px solid var(--border); }.fund-current-document strong { color:var(--oafoch-navy); font-size:.94rem; }.fund-current-document p { margin:.22rem 0 0; color:var(--muted); font-size:.82rem; line-height:1.45; }.fund-current-document-missing { padding:.9rem 1rem; background:var(--surface-muted,#f4f6f8); border-bottom:0; border-left:4px solid #b32030; }.fund-current-actions { display:flex; flex-wrap:wrap; gap:.55rem; }.fund-current-actions .notification-action { margin:0; }.fund-copy-status { min-height:1.1rem; margin:0!important; color:var(--oafoch-teal)!important; font-weight:700; }.fund-slot-review { display:grid; gap:.75rem; margin:0; padding:1rem 0; border-top:0; border-bottom:1px solid var(--border); }.fund-slot-review h3 { margin:0; color:var(--oafoch-navy); font-size:.95rem; }.fund-slot-review p { margin:.25rem 0 0; }.fund-slot-review-empty { grid-template-columns:minmax(0,1fr) auto; align-items:center; }.fund-slot-review-attention { margin-top:.85rem; padding:1rem; background:#fff1f7; border-bottom:0; border-left:4px solid #ff3399; }.fund-slot-review .notification-action { justify-self:start; }.fund-slot-management,.fund-source-panel.fund-slot-management { margin:0; padding:.85rem 0 0; border-top:1px solid var(--border); }.fund-slot-management + .fund-slot-management { margin-top:.85rem; }.fund-slot-management summary { display:grid; grid-template-columns:minmax(0,1fr); gap:.12rem; color:var(--oafoch-navy); cursor:pointer; }.fund-slot-management summary span { font-weight:800; }.fund-slot-management summary small { margin:0; color:var(--muted); font-size:.76rem; font-weight:400; }.fund-slot-management[open] summary { margin-bottom:.7rem; }.fund-management-help { margin:0 0 .75rem!important; color:var(--muted)!important; font-size:.8rem!important; line-height:1.45; }.fund-version-history .funds-table { font-size:.82rem; }.fund-version-history .funds-table th,.fund-version-history .funds-table td { padding:.6rem .35rem; }.fund-version-history .funds-table td:first-child { min-width:7rem; }.fund-version-status { color:var(--oafoch-navy); font-weight:700; }.fund-source-panel ul { margin:.5rem 0 1rem; padding-left:1rem; }.fund-source-panel li { padding-bottom:.8rem; border-bottom:1px solid var(--border); }.fund-source-panel li:last-child { border-bottom:0; }html[data-theme="dark"] .fund-current-document-missing,html[data-theme="dark"] .fund-slot-review-attention { background:#102a39; }@media(max-width:1150px){.fund-slot-review-empty{grid-template-columns:1fr}}
.fund-detail-slot a.notification-action,.fund-detail-slot button.notification-action { display:inline-flex!important; align-items:center; justify-content:center; box-sizing:border-box; height:44px!important; min-height:44px!important; max-height:44px; padding:0 1rem!important; font-family:inherit; line-height:1!important; vertical-align:top; white-space:nowrap; }.fund-source-panel .fund-source-actions form { display:flex; align-items:flex-start; height:44px; margin:0; }
.fund-source-panel .fund-source-list { display:grid; gap:.75rem; margin:.75rem 0 0; padding:0; list-style:none; }.fund-source-panel .fund-source-item { display:grid; gap:.7rem; margin:0; padding:.9rem 1rem; background:#f6f8fa; border:1px solid var(--border); border-left:4px solid var(--oafoch-teal); }.fund-source-item-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem; }.fund-source-item-heading > div { display:grid; gap:.18rem; min-width:0; }.fund-source-item-heading strong { color:var(--oafoch-navy); line-height:1.35; overflow-wrap:anywhere; }.fund-source-item-heading small { margin:0; color:var(--muted); font-size:.76rem; line-height:1.35; }.fund-source-state { flex:none; padding:.2rem .45rem; color:#0b5b51; background:#d9f1ed; border-radius:999px; font-size:.72rem; font-weight:800; white-space:nowrap; }.fund-source-state.is-review { color:#8c2156; background:#ffe0ef; }.fund-source-state.is-error { color:#8b1e2d; background:#fbe1e5; }.fund-source-state.is-paused { color:#586d7d; background:#e5eaee; }.fund-source-result { margin:0!important; color:var(--ink)!important; font-size:.82rem!important; line-height:1.45; }.fund-source-actions { display:flex; align-items:center; justify-content:flex-end; gap:.5rem; width:100%; margin-left:auto; padding-top:.1rem; }.fund-source-actions form { display:flex; flex:0 0 auto; width:auto; margin:0; }.fund-source-actions .notification-action,.fund-source-add .notification-action { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; min-height:44px; margin:0; padding-right:.65rem!important; padding-left:.65rem!important; font-size:.82rem; white-space:nowrap; }.fund-source-add { display:flex; justify-content:flex-end; margin-top:.85rem; padding-top:.85rem; border-top:1px solid var(--border); }.fund-source-empty { margin:.75rem 0 0!important; padding:.85rem; color:var(--muted)!important; background:#f6f8fa; }.fund-source-panel .fund-source-add .notification-action { margin:0; }html[data-theme="dark"] .fund-source-panel .fund-source-item,html[data-theme="dark"] .fund-source-empty { background:#102a39; }@media(max-width:620px){.fund-source-item-heading{align-items:stretch;flex-direction:column}.fund-source-state{align-self:flex-start}.fund-source-actions{align-items:stretch;flex-direction:column;width:100%;margin-left:0}.fund-source-add{justify-content:stretch}.fund-source-actions .notification-action,.fund-source-actions form,.fund-source-actions form .notification-action,.fund-source-add .notification-action{width:100%}}
@media(max-width:900px){.fund-pdf-comparison{grid-template-columns:1fr}.fund-pdf-panel iframe{height:65vh;min-height:360px}.fund-compare-select{align-items:stretch;flex-direction:column}.fund-compare-select label{flex-basis:auto}.fund-review-notes dl{display:grid;gap:1rem}}
.fund-pdf-single { grid-template-columns:1fr; }.fund-pdf-single .fund-pdf-empty { display:block; min-height:0; padding:1rem 1.25rem; }.fund-pdf-single .fund-pdf-empty h3 { margin:0 0 .5rem; }.fund-pdf-single .fund-pdf-empty p { margin:0; }.fund-pdf-single iframe { height:85vh; }
.project-detail-single .project-detail-primary { grid-column:1 / -1; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }.project-leadership-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin:0 0 1rem; background:var(--border); border:1px solid var(--border); }.project-leadership-summary article { display:grid; gap:.35rem; min-height:5.5rem; padding:.85rem 1rem; background:var(--surface); }.project-leadership-summary span { color:var(--muted); font-size:.8rem; }.project-leadership-summary strong { color:var(--oafoch-navy); font-size:1.5rem; }.project-leadership-summary .is-alert { border-left:4px solid #ff3399; }.project-leadership-controls { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:0 0 .85rem; }.project-leadership-controls > label:first-child { flex:1 1 20rem; }.project-leadership-controls input[type=search] { box-sizing:border-box; width:100%; min-height:2.55rem; padding:.55rem .7rem; color:var(--ink); font:inherit; background:var(--surface); border:1px solid var(--border); }.project-leadership-row-attention { border-left-color:#ff3399; }.project-leadership-row[hidden],.project-leadership-empty[hidden] { display:none; }
@media (max-width:52rem) { .project-leadership-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }.project-leadership-controls { align-items:flex-start; flex-direction:column; }.project-leadership-controls > label:first-child { width:100%; } }
.project-leadership-row:hover { border-left-color:var(--oafoch-teal); }.project-leadership-row dl > div { display:grid; grid-template-rows:2rem auto; align-items:start; }.project-leadership-row dt { line-height:1.1; }.project-leadership-row dd { align-self:end; font-size:1rem; }.project-leadership-open { display:inline-flex; align-items:center; justify-content:center; min-width:5.5rem; min-height:2.2rem; padding:.3rem .55rem; color:var(--oafoch-navy); text-decoration:none; }.project-leadership-open:hover,.project-leadership-open:focus-visible { color:#fff; background:var(--oafoch-navy); outline:0; }
.project-leadership-back { display:inline-block; margin-top:.15rem; color:#7b4fa3; font-size:.86rem; font-weight:700; text-decoration:none; }.project-leadership-back:hover,.project-leadership-back:focus-visible { text-decoration:underline; }.project-leadership-back:focus-visible { outline:2px solid var(--oafoch-teal); outline-offset:3px; }body:has(.project-leadership-summary) .notification-page-heading { margin-bottom:.75rem; }.project-leadership-summary { margin:0 0 .7rem; }.project-leadership-summary article { min-height:0; padding:.65rem .9rem; }.project-leadership-summary strong { font-size:1.25rem; }.project-leadership-summary article.is-alert { border-left:0; }.project-leadership-summary article.is-alert strong { color:#c00666; }.project-leadership-controls { gap:.75rem; margin:0 0 .55rem; padding:.6rem .7rem; background:var(--surface); border:1px solid var(--border); }.project-leadership-controls input[type=search] { min-height:2.25rem; border-color:transparent; }.project-leadership-controls input[type=search]:focus-visible { outline:2px solid var(--oafoch-teal); outline-offset:2px; }.project-leadership-row { grid-template-columns:minmax(18rem,1fr) auto auto; min-height:4.85rem; gap:1rem; padding:.65rem .9rem; border-left:1px solid var(--border); }.project-leadership-row:hover,.project-leadership-row:focus-visible { border-left-color:var(--oafoch-teal); }.project-leadership-row h2 { font-size:1rem; }.project-leadership-row .eyebrow { margin:0 0 .12rem; font-size:.67rem; }.project-leadership-row p { font-size:.8rem; }.project-leadership-row dl { grid-template-columns:repeat(3,5.35rem); gap:.6rem; }.project-leadership-row dd { font-size:1rem; }.project-leadership-row dd.is-alert { color:#c00666; }.project-leadership-open { display:flex; align-items:center; gap:.35rem; min-width:4.65rem; }.project-leadership-open i { font-style:normal; }.project-leadership-row-attention { border-left-color:var(--border); }
@media (max-width:52rem) { .project-leadership-row { grid-template-columns:1fr; gap:.5rem; }.project-leadership-row dl { grid-template-columns:repeat(3,minmax(0,1fr)); }.project-leadership-open { min-width:0; } }
.project-detail-single .project-documents { max-width:none; }.project-document-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:1.5rem; }.project-document-row { min-width:0; }.project-document-main { overflow:hidden; }
@media (max-width:52rem) { .project-document-list { grid-template-columns:1fr; } }

/* Projektzeitplan: eine steuerbare, horizontale Zeitachse ohne Farbverläufe. */
.project-gantt-bar { position:absolute; z-index:2; top:50%; height:.7rem; min-width:.75rem; transform:translateY(-50%); background:var(--oafoch-teal); border:1px solid var(--oafoch-navy); box-sizing:border-box; }.project-gantt-bar.is-complete { background:#168a63; }.project-gantt-bar.is-blocked { background:#d82970; }
.project-gantt { margin-top:1rem; padding:1.15rem; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.project-gantt > header { display:flex; gap:1rem; align-items:flex-end; justify-content:space-between; margin-bottom:1rem; }.project-gantt h2 { margin:.18rem 0 .35rem; color:var(--oafoch-navy); }.project-gantt header > div:first-child > p:last-child,.project-gantt-hint { margin:0; color:var(--muted,#59728a); font-size:.84rem; line-height:1.45; }.project-gantt-legend { display:flex; flex-wrap:wrap; gap:.7rem; color:var(--muted,#59728a); font-size:.76rem; white-space:nowrap; }.project-gantt-legend span { display:inline-flex; gap:.35rem; align-items:center; }.project-gantt-legend i { display:inline-block; width:.7rem; height:.7rem; }.project-gantt-marker-aufgabe { background:var(--oafoch-teal); }.project-gantt-marker-meilenstein { background:#7b4fa3; transform:rotate(45deg); }.project-gantt-marker-quality-gate { background:#d82970; clip-path:polygon(50% 0,100% 100%,0 100%); }.project-gantt-scroller { overflow-x:auto; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }.project-gantt-chart { min-width:52rem; }.project-gantt-axis { display:grid; grid-template-columns:17rem minmax(0,1fr); min-height:2.4rem; color:var(--muted,#59728a); font-size:.74rem; border-bottom:2px solid var(--oafoch-navy); }.project-gantt-axis-label { display:flex; align-items:end; padding:0 .75rem .45rem 0; font-weight:800; }.project-gantt-axis > div { position:relative; min-width:0; }.project-gantt-axis > div span { position:absolute; bottom:.45rem; transform:translateX(-50%); white-space:nowrap; }.project-gantt-axis > div span:first-child { transform:none; }.project-gantt-axis > div span:last-child { transform:translateX(-100%); }.project-gantt-rows { position:relative; }.project-gantt-row { display:grid; grid-template-columns:17rem minmax(0,1fr); min-height:3.35rem; border-bottom:1px solid var(--border,#d6e0e8); }.project-gantt-label { display:grid; align-content:center; gap:.08rem; padding:.45rem .75rem .45rem 0; background:var(--surface,#fff); border-right:1px solid var(--border,#d6e0e8); }.project-gantt-label span { color:var(--oafoch-teal); font-size:.67rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }.project-gantt-label strong { overflow:hidden; color:var(--oafoch-navy); font-size:.84rem; text-overflow:ellipsis; white-space:nowrap; }.project-gantt-label small { color:var(--muted,#59728a); font-size:.72rem; }.project-gantt-time { position:relative; background:transparent; }.project-gantt-marker { position:absolute; z-index:2; top:50%; width:.95rem; height:.95rem; margin:-.475rem 0 0 -.475rem; border:2px solid #fff; box-sizing:border-box; box-shadow:0 0 0 1px var(--oafoch-navy); }.project-gantt-marker-aufgabe { background:var(--oafoch-teal); }.project-gantt-marker-meilenstein { background:#7b4fa3; transform:rotate(45deg); }.project-gantt-marker-quality-gate { background:#d82970; clip-path:polygon(50% 0,100% 100%,0 100%); }.project-gantt-marker.is-complete { background:#168a63; }.project-gantt-marker.is-blocked { background:#d82970; }.project-gantt-connectors { position:absolute; inset:0; z-index:1; overflow:visible; pointer-events:none; }.project-gantt-connector { fill:none; stroke:#5d7182; stroke-width:1.5; stroke-dasharray:4 3; }.project-gantt-hint { margin-top:.85rem; padding-top:.75rem; border-top:1px solid var(--border,#d6e0e8); }.project-gantt-empty { max-width:58rem; }.project-gantt-empty h2 { margin:.18rem 0 .35rem; }html[data-theme="dark"] .project-gantt,html[data-theme="dark"] .project-gantt-label { background:#14293a; border-color:#315068; }html[data-theme="dark"] .project-gantt h2,html[data-theme="dark"] .project-gantt-label strong { color:#edf5f9; }html[data-theme="dark"] .project-gantt-axis,html[data-theme="dark"] .project-gantt-row,html[data-theme="dark"] .project-gantt-label,html[data-theme="dark"] .project-gantt-hint { border-color:#315068; }html[data-theme="dark"] .project-gantt-time { background:transparent; }@media (max-width:720px) { .project-gantt { padding:1rem; }.project-gantt > header { align-items:flex-start; flex-direction:column; }.project-gantt-chart { min-width:45rem; }.project-gantt-axis,.project-gantt-row { grid-template-columns:12rem minmax(0,1fr); } }

/* Berechtigungsprüfung */
.access-decision-page { max-width:1280px; padding-bottom:3rem; }.access-decision-picker { display:flex; gap:.7rem; align-items:end; max-width:46rem; padding:1rem; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.access-decision-picker label { display:grid; flex:1; gap:.35rem; color:var(--oafoch-navy); font-size:.8rem; font-weight:800; }.access-decision-picker select { min-width:0; min-height:2.45rem; padding:.4rem .55rem; color:var(--ink); font:inherit; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.access-decision-heading { display:flex; gap:1rem; align-items:end; justify-content:space-between; margin-top:1.4rem; padding-bottom:.8rem; border-bottom:2px solid var(--oafoch-navy); }.access-decision-heading h2,.access-decision-modules h2 { margin:.2rem 0 .3rem; color:var(--oafoch-navy); }.access-decision-heading p,.access-decision-modules header > p:last-child { margin:0; color:var(--muted,#59728a); }.access-decision-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; margin-top:1rem; }.access-decision-summary article,.access-decision-module,.access-decision-note { background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.access-decision-summary article { padding:1rem; }.access-decision-summary h3 { margin:0 0 .75rem; color:var(--oafoch-navy); font-size:.95rem; }.access-decision-list,.access-lineage,.access-permission-list { display:grid; gap:.55rem; margin:0; padding:0; list-style:none; }.access-decision-list li { display:grid; gap:.15rem; padding-bottom:.55rem; border-bottom:1px solid var(--border,#d6e0e8); }.access-decision-list li:last-child { padding-bottom:0; border-bottom:0; }.access-decision-list strong,.access-lineage strong { color:var(--oafoch-navy); font-size:.83rem; }.access-decision-list span,.access-lineage span { color:var(--muted,#59728a); font-size:.76rem; }.access-lineage { counter-reset:lineage; }.access-lineage li { position:relative; display:grid; gap:.14rem; padding-left:1.5rem; }.access-lineage li::before { position:absolute; left:0; display:grid; width:1rem; height:1rem; color:#fff; font-size:.68rem; font-weight:800; content:counter(lineage); counter-increment:lineage; background:var(--oafoch-navy); place-items:center; }.access-permission-list li { padding:.36rem .45rem; color:#0a5660; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.72rem; background:#eaf6f6; border-left:3px solid var(--oafoch-teal); }.access-decision-modules { margin-top:1.25rem; }.access-decision-modules > header { padding:1rem 0 .8rem; }.access-decision-modules > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }.access-decision-module { padding:1rem; border-left:4px solid #788b99; }.access-decision-module.is-allowed { border-left-color:#15948e; }.access-decision-module.is-denied { border-left-color:#8a1743; }.access-decision-module header { display:flex; gap:.8rem; justify-content:space-between; }.access-decision-module h3 { margin:0 0 .3rem; color:var(--oafoch-navy); font-size:1rem; }.access-decision-module p { margin:0; color:var(--muted,#59728a); font-size:.82rem; line-height:1.4; }.access-decision-module header b { align-self:start; padding:.3rem .45rem; color:#0d625b; font-size:.72rem; background:#e6f5f3; white-space:nowrap; }.access-decision-module.is-denied header b { color:#8a1743; background:#feeaf1; }.access-decision-module ul { display:grid; gap:.35rem; margin:.85rem 0 0; padding:.75rem 0 0 1.15rem; color:var(--muted,#59728a); font-size:.8rem; line-height:1.4; border-top:1px solid var(--border,#d6e0e8); }.access-decision-note { margin-top:1rem; padding:1rem; border-left:4px solid var(--oafoch-teal); }.access-decision-note strong { color:var(--oafoch-navy); }.access-decision-note p { max-width:60rem; margin:.35rem 0 0; color:var(--muted,#59728a); line-height:1.5; }html[data-theme="dark"] .access-decision-picker,html[data-theme="dark"] .access-decision-summary article,html[data-theme="dark"] .access-decision-module,html[data-theme="dark"] .access-decision-note { background:#14293a; border-color:#315068; }html[data-theme="dark"] .access-decision-picker label,html[data-theme="dark"] .access-decision-heading h2,html[data-theme="dark"] .access-decision-modules h2,html[data-theme="dark"] .access-decision-summary h3,html[data-theme="dark"] .access-decision-list strong,html[data-theme="dark"] .access-lineage strong,html[data-theme="dark"] .access-decision-module h3,html[data-theme="dark"] .access-decision-note strong { color:#edf5f9; }html[data-theme="dark"] .access-decision-picker select { color:#edf5f9; background:#102a39; border-color:#426176; }html[data-theme="dark"] .access-decision-list li,html[data-theme="dark"] .access-decision-module ul { border-color:#315068; }html[data-theme="dark"] .access-permission-list { color:#bcf1ed; background:#103b43; }@media (max-width:900px) { .access-decision-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }.access-decision-modules > div { grid-template-columns:1fr; } }@media (max-width:600px) { .access-decision-picker,.access-decision-heading { align-items:stretch; flex-direction:column; }.access-decision-summary { grid-template-columns:1fr; }.access-decision-heading .notification-action { align-self:flex-start; } }

/* Daten-Governance: Fakten und offene Freigaben klar trennen. */
.governance-page { max-width:1180px; padding-bottom:3rem; }.governance-heading { max-width:58rem; padding:2.5rem 0 1.25rem; }.governance-heading h1 { margin:.25rem 0 .45rem; }.governance-heading > p:last-child { margin:0; color:var(--muted,#59728a); line-height:1.55; }.governance-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }.governance-summary article { display:grid; gap:.3rem; padding:1rem; background:var(--surface,#fff); border-left:4px solid var(--oafoch-teal); }.governance-summary strong,.governance-data h2,.governance-actions h2,.governance-data dt { color:var(--oafoch-navy); }.governance-summary span { color:var(--muted,#59728a); font-size:.82rem; }.governance-summary b { margin-top:.25rem; color:var(--oafoch-navy); font-size:1.35rem; }.governance-data { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem; }.governance-data article,.governance-actions { padding:1rem; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.governance-data h2,.governance-actions h2 { margin:.2rem 0 .8rem; font-size:1.12rem; }.governance-data dl { display:grid; gap:.7rem; margin:0; }.governance-data dl > div { padding-top:.7rem; border-top:1px solid var(--border,#d6e0e8); }.governance-data dt { font-size:.84rem; font-weight:800; }.governance-data dd { margin:.25rem 0 0; color:var(--muted,#59728a); font-size:.84rem; line-height:1.45; }.governance-actions { margin-top:1rem; }.governance-actions header > p:last-child { margin:0; color:var(--muted,#59728a); }.governance-actions ol { display:grid; gap:0; margin:1rem 0 0; padding:0; list-style:none; border-top:1px solid var(--border,#d6e0e8); }.governance-actions li { display:grid; grid-template-columns:2rem minmax(0,1fr) auto; gap:.75rem; align-items:start; padding:.85rem 0; border-bottom:1px solid var(--border,#d6e0e8); }.governance-actions li > span { display:grid; width:1.65rem; height:1.65rem; color:#075d63; font-size:.78rem; font-weight:800; background:#e8f7f7; place-items:center; }.governance-actions li strong { color:var(--oafoch-navy); font-size:.9rem; }.governance-actions li p { margin:.25rem 0 0; color:var(--muted,#59728a); font-size:.83rem; line-height:1.45; }.governance-actions li b { padding:.25rem .45rem; color:#8a1743; font-size:.72rem; background:#feeaf1; }.governance-note { margin:1rem 0 0; padding:.8rem 1rem; color:var(--muted,#59728a); background:var(--surface-muted,#f5f8fa); border-left:3px solid var(--oafoch-teal); line-height:1.45; }html[data-theme="dark"] .governance-summary article,html[data-theme="dark"] .governance-data article,html[data-theme="dark"] .governance-actions { background:#14293a; border-color:#315068; }html[data-theme="dark"] .governance-summary strong,html[data-theme="dark"] .governance-summary b,html[data-theme="dark"] .governance-data h2,html[data-theme="dark"] .governance-actions h2,html[data-theme="dark"] .governance-data dt,html[data-theme="dark"] .governance-actions li strong { color:#edf5f9; }html[data-theme="dark"] .governance-data dl > div,html[data-theme="dark"] .governance-actions ol,html[data-theme="dark"] .governance-actions li { border-color:#315068; }html[data-theme="dark"] .governance-note { background:#102a39; }@media (max-width:720px) { .governance-summary,.governance-data { grid-template-columns:1fr; }.governance-actions li { grid-template-columns:2rem minmax(0,1fr); }.governance-actions li b { grid-column:2; justify-self:start; } }

/* Kompakte Aufgabenzeilen: feste Spalten verhindern Überlagerungen bei Frist und Beschreibung. */
.task-toolbar-links { display:flex; align-items:center; gap:.65rem; }.task-toolbar-link { color:var(--oafoch-navy); font-size:.82rem; font-weight:800; text-decoration:none; white-space:nowrap; }.task-toolbar-link:hover,.task-toolbar-link:focus-visible { color:var(--oafoch-teal); text-decoration:underline; }.task-toolbar-link + .task-toolbar-link { padding-left:.65rem; border-left:1px solid var(--border,#d6e0e8); }html[data-theme="dark"] .task-toolbar-link { color:#edf5f9; }html[data-theme="dark"] .task-toolbar-link + .task-toolbar-link { border-color:#315068; }
.task-create-action { white-space:nowrap; }
.fund-document-slots { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1rem; background:transparent; border:0; }.fund-document-slot { display:grid; align-content:start; gap:.7rem; min-width:0; padding:1rem; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.fund-document-slot h3 { margin:0; padding-bottom:.65rem; color:var(--oafoch-navy); font-size:1rem; border-bottom:2px solid var(--oafoch-navy); }.fund-document-slot p { margin:0; color:var(--muted,#59728a); font-size:.84rem; line-height:1.45; }.fund-document-slot form { display:grid; gap:.55rem; margin:0; padding-top:.75rem; border-top:1px solid var(--border,#d6e0e8); }.fund-document-slot form:first-of-type { border-top:0; }.fund-document-slot label { display:grid; gap:.3rem; color:var(--oafoch-navy); font-size:.8rem; font-weight:700; }.fund-document-slot input,.fund-document-slot textarea { box-sizing:border-box; width:100%; min-height:2.35rem; padding:.45rem .55rem; color:var(--ink); font:inherit; background:var(--surface,#fff); border:2px solid var(--border,#d6e0e8); }.fund-document-slot textarea { min-height:4.8rem; resize:vertical; }.fund-document-slot .notification-action { justify-self:start; }.fund-document-slot .secondary-action { color:var(--oafoch-navy); background:var(--surface,#fff); }.fund-document-slot .secondary-action:hover,.fund-document-slot .secondary-action:focus-visible { color:#fff; background:var(--oafoch-navy); }html[data-theme="dark"] .fund-document-slot { background:#14293a; }html[data-theme="dark"] .fund-document-slot h3,html[data-theme="dark"] .fund-document-slot label { color:#edf5f9; }html[data-theme="dark"] .fund-document-slot form,html[data-theme="dark"] .fund-document-slots { border-color:#315068; }html[data-theme="dark"] .fund-document-slot input,html[data-theme="dark"] .fund-document-slot textarea,html[data-theme="dark"] .fund-document-slot .secondary-action { color:#edf5f9; background:#102a39; border-color:#426176; }@media (max-width:900px) { .fund-document-slots { grid-template-columns:1fr; } }
.task-card-compact .task-card-copy { flex:1 1 32rem; min-width:0; }.task-card-compact .task-due { min-width:0; overflow:hidden; }.task-card-compact .task-due > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.task-card-compact .task-due > span:first-of-type { flex:0 1 auto; }.task-card-compact .task-followup { flex:1 1 7rem; }.task-card-compact .task-card-description { flex:1 1 16rem; min-width:10rem; }@media (max-width:78rem) { .task-card-compact .task-card-summary { align-items:stretch; flex-wrap:wrap; }.task-card-compact .task-card-copy { flex:1 1 calc(100% - 3.35rem); }.task-card-compact .task-card-description { flex-basis:100%; min-width:0; border-top:1px solid var(--border); border-left:0; }.task-card-compact .task-summary-actions { width:100%; padding:.35rem .75rem .55rem; } }

/* Das vollflächige KI-Modul wird auf Smartphone-Breite zu einer kompakten Einspaltenansicht. */
@media (max-width:48rem) { .assistant-module-heading { display:grid; gap:.45rem; margin:1.5rem 0 .85rem; }.assistant-module { grid-template-columns:1fr; min-height:0; }.assistant-module-sidebar { display:grid; grid-template-columns:5.5rem minmax(0,1fr); gap:.75rem; align-items:center; padding:.85rem; border-right:0; border-bottom:1px solid var(--border); }.assistant-module-sidebar > .assistant-module-portrait { width:5.5rem; height:5.5rem; }.assistant-module-portrait [data-assistant-frame-image] { height:5.5rem; }.assistant-module-sidebar > div { gap:.15rem; }.assistant-module-sidebar strong { font-size:1rem; }.assistant-module-sidebar nav { grid-column:1 / -1; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:0; }.assistant-module-sidebar nav .eyebrow { grid-column:1 / -1; }.assistant-module-sidebar > .link-button { grid-column:1 / -1; margin-top:0; }.assistant-module-chat { grid-template-rows:auto auto auto; }.assistant-module-chat > header { flex-direction:column; gap:.45rem; padding:1rem; }.assistant-module-chat h2 { font-size:1.15rem; }.assistant-module-context { max-width:none; text-align:left; }.assistant-module-messages { max-height:none; padding:1rem; }.assistant-module-welcome { padding:1rem; }.assistant-module-message { max-width:100%; }.assistant-module-compose { padding:1rem; }.assistant-module-compose > div { align-items:flex-end; flex-wrap:wrap; }.assistant-module-compose small { flex:1 1 12rem; }.assistant-module-compose button { flex:1 0 7rem; } }@media (max-width:30rem) { .assistant-module-sidebar nav { grid-template-columns:1fr; }.assistant-module-compose > div { align-items:stretch; }.assistant-module-compose button { width:100%; } }

/* Führungsübersicht: Kennzahlen bleiben trotz zweizeiliger Bezeichnungen auf einer gemeinsamen Grundlinie. */
.project-leadership-row dl > div { display:grid; grid-template-rows:2rem auto; align-items:start; }.project-leadership-row dt { line-height:1.1; }.project-leadership-row dd { align-self:end; font-size:1rem; }.project-leadership-open { display:inline-flex; align-items:center; justify-content:center; min-width:5.5rem; min-height:2.2rem; padding:.3rem .55rem; color:var(--oafoch-navy); text-decoration:none; }.project-leadership-open:hover,.project-leadership-open:focus-visible { color:#fff; background:var(--oafoch-navy); outline:0; }
/* News & Newsletter */
.newsletter-workspace { gap:1rem; }.newsletter-workspace .module-admin-card > header { padding-bottom:.85rem; border-bottom:2px solid var(--oafoch-navy); }.newsletter-workspace .module-admin-card > header .eyebrow { margin:0 0 .25rem; }.newsletter-workspace .module-admin-card > header h2 { margin:.1rem 0 .3rem; }.newsletter-workspace .module-admin-card > header p:last-child { margin:0; color:var(--muted); line-height:1.45; }.newsletter-form { gap:.9rem 1rem; padding:1rem 0 0; }.newsletter-article-picker { grid-column:1 / -1; min-width:0; margin:0; padding:0; border:0; }.newsletter-article-picker legend { padding:0; color:var(--oafoch-navy); font-size:1rem; font-weight:800; }.newsletter-article-picker > p { margin:.35rem 0 .7rem; color:var(--muted); font-size:.86rem; line-height:1.4; }.newsletter-article-list { display:grid; gap:.5rem; }.newsletter-article-choice { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:start; gap:.75rem; padding:.8rem .9rem; cursor:pointer; background:#fff; border:1px solid var(--border); border-left:4px solid var(--oafoch-navy); }.newsletter-article-choice:hover { border-color:var(--oafoch-teal); }.newsletter-article-choice input { width:1.1rem; min-height:auto; height:1.1rem; margin:.2rem 0 0; accent-color:var(--oafoch-teal); }.newsletter-article-choice:has(input:checked) { background:#f1fbfb; border-left-color:var(--oafoch-teal); }.newsletter-article-copy { display:grid; gap:.15rem; min-width:0; }.newsletter-article-copy strong { color:var(--oafoch-navy); font-size:1rem; }.newsletter-article-copy small { color:var(--muted); font-size:.76rem; font-weight:700; }.newsletter-article-copy span { color:var(--muted); font-size:.88rem; line-height:1.4; }.newsletter-form-actions { display:flex; justify-content:flex-end; padding-top:.1rem; }.newsletter-form-actions .notification-action { width:auto; min-width:10rem; }.newsletter-drafts { padding-top:1.1rem; }.newsletter-drafts .news-editorial-list { max-width:none; margin-top:1rem; }@media (max-width:720px) { .newsletter-form-actions { justify-content:stretch; }.newsletter-form-actions .notification-action { width:100%; } }
.news-version-notice { display:grid; gap:.25rem; max-width:52rem; margin:0 0 1rem; padding:.8rem 1rem; color:var(--oafoch-navy); background:#f2f2f2; border-left:4px solid var(--oafoch-teal); }.news-version-notice span { line-height:1.45; }.news-version-notice a { color:inherit; font-weight:800; }
.news-form-hint { grid-column:1 / -1; margin:0; padding:.7rem .8rem; color:var(--muted,#59728a); background:#f2f2f2; border-left:3px solid var(--oafoch-teal); line-height:1.45; }
.news-page,.news-detail { max-width:1180px; padding-bottom:3rem; }.news-toolbar { display:grid; grid-template-columns:minmax(0,1fr) minmax(13rem,.28fr); gap:.75rem; margin:0 0 1rem; padding:.7rem; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.news-toolbar input,.news-toolbar select { width:100%; min-height:2.45rem; padding:.45rem .6rem; color:var(--ink); font:inherit; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.news-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }.news-card { display:grid; grid-template-rows:auto auto 1fr auto; min-height:14rem; padding:1rem 1.1rem; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); border-left:4px solid var(--oafoch-navy); }.news-card:hover { border-color:var(--oafoch-teal); }.news-card .eyebrow { margin:0 0 .45rem; }.news-card h2 { margin:0; color:var(--oafoch-navy); font-size:1.15rem; line-height:1.25; }.news-card h2 a { color:inherit; text-decoration:none; }.news-card h2 a:hover,.news-card h2 a:focus-visible { color:var(--oafoch-teal); text-decoration:underline; }.news-card > p:not(.eyebrow) { margin:.65rem 0 1rem; color:var(--muted,#59728a); line-height:1.45; }.news-card footer { display:flex; align-items:end; justify-content:space-between; gap:.75rem; padding-top:.7rem; border-top:1px solid var(--border,#d6e0e8); }.news-card footer span { color:var(--muted,#59728a); font-size:.78rem; }.news-read-link { color:var(--oafoch-navy); font-size:.82rem; font-weight:800; text-decoration:underline; white-space:nowrap; }.news-read-link:hover,.news-read-link:focus-visible { color:var(--oafoch-teal); }.news-article { max-width:52rem; padding:1.4rem; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); border-top:3px solid var(--oafoch-navy); }.news-article > header { display:flex; flex-wrap:wrap; gap:.75rem 1.2rem; padding-bottom:.8rem; color:var(--muted,#59728a); font-size:.83rem; border-bottom:1px solid var(--border,#d6e0e8); }.news-validity { margin:1rem 0 0; padding:.65rem .8rem; color:var(--oafoch-navy); background:#f2f2f2; border-left:3px solid var(--oafoch-teal); }.news-article-body { margin-top:1.25rem; line-height:1.6; }.news-article-body p { margin:0 0 1rem; }.news-dialog { width:min(52rem,calc(100vw - 2rem)); }.news-dialog form { margin:0; }.news-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; padding:1.4rem 1.65rem; }.news-form label { display:grid; gap:.35rem; color:var(--oafoch-navy); font-size:.84rem; font-weight:800; }.news-form label small { color:var(--muted,#59728a); font-size:.76rem; font-weight:400; }.news-form input,.news-form select,.news-form textarea { width:100%; min-height:2.5rem; padding:.5rem .6rem; color:var(--ink); font:inherit; background:#fff; border:1px solid var(--border,#d6e0e8); box-sizing:border-box; }.news-form textarea { resize:vertical; }.news-form .form-full { grid-column:1 / -1; }.news-form .news-publish-toggle { align-content:end; grid-template-columns:auto 1fr; align-items:center; min-height:2.5rem; font-weight:700; }.news-form .news-publish-toggle input { width:1.05rem; min-height:auto; height:1.05rem; }.news-dialog footer { padding:1rem 1.65rem 1.35rem; border-top:1px solid var(--border,#d6e0e8); }.news-editorial-list { display:grid; gap:0; max-width:62rem; background:var(--surface,#fff); border:1px solid var(--border,#d6e0e8); }.news-editorial-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; padding:1rem 1.1rem; color:inherit; text-decoration:none; border-bottom:1px solid var(--border,#d6e0e8); }.news-editorial-row:last-child { border-bottom:0; }.news-editorial-row:hover,.news-editorial-row:focus-visible { background:#f4fbfb; outline:2px solid var(--oafoch-teal); outline-offset:-2px; }.news-editorial-row .eyebrow { margin:0 0 .2rem; }.news-editorial-row h2 { margin:0; color:var(--oafoch-navy); font-size:1.03rem; }.news-editorial-row p:last-child,.news-editorial-row > span { margin:.3rem 0 0; color:var(--muted,#59728a); font-size:.84rem; }.news-editorial-row > span { white-space:nowrap; }html[data-theme="dark"] .news-toolbar,html[data-theme="dark"] .news-card,html[data-theme="dark"] .news-article,html[data-theme="dark"] .news-editorial-list { background:#14293a; border-color:#315068; }html[data-theme="dark"] .news-toolbar input,html[data-theme="dark"] .news-toolbar select,html[data-theme="dark"] .news-form input,html[data-theme="dark"] .news-form select,html[data-theme="dark"] .news-form textarea { color:#edf5f9; background:#102a39; border-color:#426176; }html[data-theme="dark"] .news-card h2,html[data-theme="dark"] .news-article,html[data-theme="dark"] .news-editorial-row h2 { color:#edf5f9; }@media (max-width:720px) { .news-toolbar,.news-list,.news-form { grid-template-columns:1fr; }.news-card { min-height:0; }.news-form .form-full { grid-column:auto; }.news-card footer,.news-article > header { align-items:start; flex-direction:column; }.news-editorial-row { grid-template-columns:1fr; }.news-editorial-row > span { white-space:normal; } }
/* Einheitliche Modulbreite: alle Arbeitsseiten folgen der Administration mit einer zentralen Portalbreite. */
body:has(.structure-workspace) .shell { width:min(100%,var(--portal-content-width)); max-width:var(--portal-content-width); margin-left:auto; margin-right:auto; }
.news-page,.news-detail { max-width:none; }
.news-page .news-list { grid-template-columns:repeat(auto-fit,minmax(22rem,1fr)); }
.news-page .news-editorial-list { max-width:none; }
/* Fonds: kompakte Prüfberichte und nachvollziehbare KI-Belege. */
.fund-analysis { margin:1rem 0; min-width:0; }
.fund-analysis dl { display:flex; flex-wrap:wrap; gap:1rem 2rem; }
.fund-analysis dl > div { min-width:9rem; }
.fund-analysis dt { color:var(--muted); font-size:.8rem; }
.fund-analysis dd { margin:.2rem 0 0; font-weight:700; }
.fund-analysis p,.fund-analysis li { line-height:1.5; overflow-wrap:anywhere; }
.fund-analysis-evidence { margin:.65rem 0; padding-left:1.2rem; font-size:.85rem; }
.fund-analysis-evidence li { margin-bottom:.45rem; }
.fund-analysis-severity { padding:.7rem 1rem; border-left:4px solid var(--oafoch-teal); background:var(--surface-muted,#f2f2f2); font-weight:700; }
.fund-analysis-warnings { padding:1rem 1rem 1rem 2rem; border-left:4px solid var(--oafoch-navy); background:var(--surface-muted,#f2f2f2); }
.fund-job-result { white-space:pre-line; overflow-wrap:anywhere; max-width:40rem; }
.fund-slot-review ul.fund-review-proposals { gap:1rem; margin:.8rem 0 1.2rem; padding:0; list-style:none; }
.fund-review-proposals > li { display:grid; gap:.3rem; min-width:0; }
.fund-review-proposals small { margin:0; overflow-wrap:anywhere; }
.fund-review-proposals .fund-review-proposal-action { justify-self:start; max-width:100%; box-sizing:border-box; }
.fund-analysis .funds-table td:first-child { min-width:10rem; }
.fund-coverage-filters { display:grid; grid-template-columns:minmax(15rem,2fr) repeat(3,minmax(10rem,1fr)); gap:1rem; margin:1rem 0; }
.fund-coverage-filters label { display:grid; align-content:start; gap:.4rem; color:var(--oafoch-navy); font-weight:600; min-width:0; }
.fund-coverage-filters input,.fund-coverage-filters select { box-sizing:border-box; width:100%; min-width:0; min-height:44px; padding:.5rem .75rem; border:2px solid var(--border); color:var(--ink); background:var(--surface); font:inherit; font-weight:400; }
.fund-coverage-filters input::placeholder { color:var(--muted); opacity:1; font:inherit; }
.fund-coverage-filters > .notification-actions { grid-column:1 / -1; }
.fund-coverage-table { min-width:70rem; }
.fund-coverage-table caption { text-align:left; padding:.5rem 0; color:var(--muted); }
.fund-coverage-table td { vertical-align:top; }
.fund-coverage-table td:first-child { min-width:15rem; max-width:22rem; }
.fund-coverage-table td:nth-child(3),.fund-coverage-table td:nth-child(4) { min-width:13rem; max-width:24rem; }
.fund-coverage-table small { margin:.3rem 0; line-height:1.45; }
.fund-coverage-table details { margin-top:.6rem; font-size:.85rem; }
.fund-coverage-table summary { cursor:pointer; color:var(--oafoch-navy); font-weight:600; }
.fund-coverage-table details p,.fund-coverage-table li { overflow-wrap:anywhere; line-height:1.45; }
.fund-coverage-table ul { padding-left:1.2rem; }
.fund-coverage-table li { margin:.6rem 0; }
.fund-coverage-warning { border-left:3px solid var(--oafoch-navy); padding-left:.6rem; }
.fund-coverage-actions { display:grid; justify-items:start; gap:.7rem; min-width:11rem; }
.fund-review-workspace { display:grid; grid-template-columns:minmax(17rem,21rem) minmax(0,1fr); gap:1.25rem; align-items:start; }
.fund-review-reference { position:sticky; top:calc(123px + 1rem); max-height:calc(100dvh - 123px - 2rem); overflow:auto; padding:1.25rem; border-top:3px solid var(--oafoch-navy); }
.fund-review-reference h2 { margin:.25rem 0 .85rem; font-size:1.05rem; }
.fund-review-reference-name { margin:0 0 1rem; color:var(--oafoch-navy); font-weight:700; font-size:1.1rem; line-height:1.4; overflow-wrap:anywhere; }
.fund-review-reference dl { display:grid; gap:.8rem; margin:0; }
.fund-review-reference dt { color:var(--muted); font-size:.8rem; }
.fund-review-reference dd { margin:.25rem 0 0; color:var(--oafoch-navy); font-weight:600; overflow-wrap:anywhere; }
.fund-review-reference-isin { padding:.75rem; border:2px solid var(--oafoch-navy); background:var(--surface); }
.fund-review-reference-isin dt { color:var(--oafoch-navy); }
.fund-review-reference-isin code { font-size:1.25rem; font-weight:700; letter-spacing:.03em; user-select:all; }
.fund-review-reference-missing { margin:1rem 0; color:var(--muted); font-size:.8rem; line-height:1.5; }
.fund-review-reference .notification-action { box-sizing:border-box; max-width:100%; }
.fund-review-content { min-width:0; }
.fund-review-progress { padding:.65rem 1rem; margin-bottom:1rem; border-left:3px solid var(--oafoch-navy); background:var(--surface); font-size:.85rem; line-height:1.5; }
.fund-review-progress p { margin:.25rem 0; }
.fund-review-progress a { margin-left:.4rem; font-weight:600; }
.fund-review-content .fund-compare-select { margin:0 0 1rem; }
.fund-review-content .fund-pdf-panel { padding:.85rem; }
.fund-review-content .fund-pdf-panel header p { margin:.25rem 0; font-size:.8rem; }
.fund-review-content .fund-pdf-panel iframe { height:calc(100dvh - 14rem); min-height:480px; margin-top:.6rem; }
.fund-review-document-info { margin-top:1rem; }
.fund-review-document-info summary { color:var(--oafoch-navy); font-weight:700; cursor:pointer; }
#fund-review-analysis { scroll-margin-top:calc(123px + 1rem); }
.fund-review-decision-reference { margin:0; padding:.8rem; border-left:3px solid var(--oafoch-navy); background:var(--canvas); line-height:1.6; overflow-wrap:anywhere; }
.fund-review-masterdata-notes { margin:1rem 0; font-size:.85rem; }
.fund-review-masterdata-notes summary,.fund-analysis-coverage summary { cursor:pointer; color:var(--oafoch-navy); font-weight:600; }
.fund-analysis-coverage { margin:.85rem 0; font-size:.85rem; line-height:1.5; }
.fund-service-results { table-layout:fixed; min-width:780px; }
.fund-quality-table { min-width:760px; }.fund-quality-table td { vertical-align:top; line-height:1.5; overflow-wrap:anywhere; }.fund-quality-table small { margin-top:.35rem; }.fund-quality-table p { margin:.5rem 0; }
.fund-detail-slot[id] { scroll-margin-top:calc(123px + 1rem); }
.fund-service-results th:nth-child(1) { width:25%; }.fund-service-results th:nth-child(2) { width:11%; }.fund-service-results th:nth-child(3) { width:41%; }.fund-service-results th:nth-child(4) { width:23%; }
.fund-service-results td { vertical-align:top; line-height:1.5; overflow-wrap:anywhere; }.fund-service-results td:first-child { min-width:0; }
.fund-service-fund-link { color:var(--oafoch-navy); font-weight:600; text-underline-offset:.2em; }.fund-service-results small { margin-top:.25rem; }
.fund-service-outcome { padding-left:.65rem; border-left:3px solid var(--oafoch-navy); color:var(--oafoch-navy); }.fund-service-outcome-review { border-color:var(--oafoch-teal); }
.fund-service-summary { margin:.55rem 0; }.fund-service-next { margin:0 0 .75rem; }.fund-service-results .notification-action { display:inline-flex; box-sizing:border-box; max-width:100%; font-size:.85rem; }
.fund-service-sources,.fund-service-log { margin-top:.6rem; font-size:.85rem; }.fund-service-sources summary,.fund-service-log summary,.fund-service-help summary { cursor:pointer; color:var(--oafoch-navy); font-weight:600; }
.fund-service-sources ol { display:grid; gap:.65rem; margin:.75rem 0; padding-left:1.2rem; }.fund-service-sources ul { margin:.2rem 0 0; padding-left:1rem; }.fund-service-log .fund-job-result { margin:.65rem 0; padding:.75rem; background:var(--canvas); white-space:pre-wrap; overflow-wrap:anywhere; }
@media(max-width:900px){.fund-service-results th:nth-child(2),.fund-service-results td:nth-child(2),.fund-service-results th:nth-child(3),.fund-service-results td:nth-child(3){display:table-cell}}
.fund-module-navigation { overflow-x:auto; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }
.fund-module-navigation > a,.fund-navigation-current { flex-shrink:0; white-space:nowrap; }
.fund-module-navigation .fund-navigation-context { display:block; flex:0 1 auto; min-width:8rem; max-width:24rem; overflow:hidden; text-overflow:ellipsis; line-height:46px; border-left:1px solid var(--border); }
.fund-navigation-current { display:flex; align-items:center; min-height:46px; padding:0 1rem; color:var(--oafoch-teal); font-size:.88rem; font-weight:700; border-bottom:3px solid var(--oafoch-teal); }
@media(max-width:600px){.fund-module-navigation{top:62px}.fund-module-navigation .fund-navigation-context{flex-shrink:0;max-width:16rem}#fund-review-analysis{scroll-margin-top:calc(111px + 1rem)}}
@media(max-width:1050px){.fund-review-workspace{grid-template-columns:1fr}.fund-review-reference{position:static;max-height:none;overflow:visible}.fund-review-reference dl{grid-template-columns:repeat(2,minmax(0,1fr))}.fund-review-reference-isin{grid-column:1 / -1}.fund-review-reference-missing{max-width:55rem}}
@media(max-width:600px){.fund-review-reference dl{grid-template-columns:1fr}.fund-review-reference-isin{grid-column:auto}.fund-review-content .fund-pdf-panel iframe{min-height:360px}}
@media(max-width:1100px){.fund-coverage-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.fund-coverage-filters{grid-template-columns:1fr}}
@media(max-width:900px){.fund-analysis .funds-table th:nth-child(2),.fund-analysis .funds-table td:nth-child(2),.fund-analysis .funds-table th:nth-child(3),.fund-analysis .funds-table td:nth-child(3){display:table-cell}.fund-analysis .funds-table{min-width:40rem}}
/* Aufgabenlisten: Die Spalte folgt dem verfügbaren Bereich, nicht der längsten Aufgabenzeile. */ .task-list-panel .task-card-list { grid-template-columns:minmax(0,1fr); }.task-list-panel .task-card { width:100%; min-width:0; max-width:100%; }.task-list-panel .task-card-summary { min-width:0; max-width:100%; }.task-list-panel .task-card-copy,.task-list-panel .task-card-description,.task-list-panel .task-summary-actions { min-width:0; }.task-list-panel .task-card-description { min-inline-size:0; }
