:root {
  --ink: #102d3d;
  --teal: #15939a;
  --line: #dce6e8;
  --muted: #71868f;
  --bg: #f3f6f7;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font:
    15px Inter,
    system-ui,
    sans-serif;
}
.login-page { min-height: 100vh; display: grid; place-items: center; padding: 28px; background: radial-gradient(circle at 15% 20%, #dceced, transparent 35%), #eff4f4; }
.login-shell { width: min(100%, 470px); }
.login-brand { display: flex; align-items: center; gap: 12px; margin: 0 0 28px; color: #0d2e3f; }
.login-brand i { display: grid; place-items: center; width: 44px; height: 44px; border: 2px solid #168e95; border-radius: 11px; font: bold 27px Georgia, serif; }
.login-brand b, .login-brand small { display: block; }
.login-brand b { letter-spacing: .17em; font-size: 19px; }
.login-brand small { color: #55727c; font-size: 13px; }
.login-card { padding: clamp(26px, 6vw, 46px); border: 1px solid #d7e3e5; border-radius: 17px; background: white; box-shadow: 0 20px 55px #15374716; }
.login-eyebrow { margin: 0 0 12px; color: #168e95; font-size: 12px; font-weight: 750; letter-spacing: .13em; }
.login-card h1 { margin: 0 0 13px; font-size: clamp(27px, 5vw, 35px); letter-spacing: -.035em; }
.login-card p:not(.login-eyebrow) { margin: 0 0 28px; color: #506974; font-size: 16px; line-height: 1.6; }
.login-card strong { color: #183e4c; }
.login-button { display: block; padding: 14px 18px; border-radius: 9px; background: #117d83; color: white; font-weight: 700; text-align: center; text-decoration: none; }
.login-button:hover { background: #096a70; }
.login-secondary { display: block; margin-top: 19px; color: #356b76; text-align: center; text-decoration: underline; text-underline-offset: 3px; }
.login-foot { margin: 20px 3px 0; color: #70858d; font-size: 13px; line-height: 1.5; }
.account-link { color: #235965; font-size: 13px; font-weight: 650; text-decoration: none; }
.account-menu { position: relative; flex-shrink: 0; }
.account-menu svg { width: 17px; height: 17px; }
.account-dropdown { position: absolute; top: calc(100% + 8px); right: 0; z-index: 50; min-width: 170px; padding: 6px; background: #fff; border: 1px solid #d7e3e5; border-radius: 9px; box-shadow: 0 8px 25px #15374724; }
.account-dropdown a { display: flex; align-items: center; gap: 9px; padding: 11px 13px; border-radius: 6px; color: #235965; font-size: 14px; font-weight: 650; text-decoration: none; }
.account-dropdown a:hover { background: #edf5f6; }
.account-dropdown a:focus-visible { outline: 2px solid #117d83; outline-offset: -2px; }
.account-dropdown .personal-settings-link{display:flex;align-items:center;gap:9px;padding:11px 13px;border:0;border-radius:6px;color:#235965;background:transparent;font-family:inherit;font-size:14px;font-weight:650;text-align:left;width:100%;cursor:pointer}
.account-dropdown .personal-settings-link:hover{background:#edf5f6}
.account-dropdown .personal-settings-link:focus-visible{outline:2px solid #117d83;outline-offset:-2px}
.account-dropdown .personal-settings-link svg{width:18px;height:18px;flex-shrink:0}
.form-error { color: #a83736; font-size: 14px; margin: 10px 0; }
.shell > aside {
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--sidebar-width, 245px);
  background: #0d2e3f;
  color: #dcebee;
  padding: 24px 16px;
  display: flex;
  flex-direction: column;
}
.brand {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 0 8px 28px;
}
.brand i {
  width: 39px;
  height: 39px;
  border: 2px solid #51c4c3;
  border-radius: 10px;
  display: grid;
  place-items: center;
  font: 700 23px Georgia;
}
.brand b,
.brand small {
  display: block;
}
.brand b {
  letter-spacing: 0.16em;
}
.brand small {
  font-size: 11px;
  color: #93b1ba;
}
.shell nav {
  display: grid;
  gap: 5px;
}
.shell nav button {
  border: 0;
  background: transparent;
  color: #adc3ca;
  padding: 11px 12px;
  border-radius: 8px;
  display: flex;
  gap: 12px;
  align-items: center;
  font: inherit;
  cursor: pointer;
}
.shell nav svg {
  width: 18px;
}
.shell nav button:disabled { cursor: default; opacity: .65; }
.shell nav button:disabled:hover { background: transparent; color: #adc3ca; box-shadow: none; }
.shell nav button.on,
.shell nav button:hover {
  background: #17475a;
  color: #fff;
  box-shadow: inset 3px 0 #4ac1bf;
}
.shell nav em {
  margin-left: auto;
  background: #d78b22;
  border-radius: 20px;
  padding: 2px 7px;
  font: 11px inherit;
}
.shell aside footer {
  margin-top: auto;
  border-top: 1px solid #315364;
  padding: 17px 8px;
}
.shell aside footer small,
.shell aside footer b,
.shell aside footer span {
  display: block;
}
.shell aside footer small {
  color: #6e97a5;
  font-size: 10px;
}
.shell aside footer b {
  font-size: 12px;
  margin: 7px 0 3px;
}
.shell aside footer span {
  font-size: 11px;
  color: #91abb4;
}
.shell main {
  margin-left: var(--sidebar-width, 245px);
  min-height: 100vh;
}
.shell main > header {
  position: sticky;
  top: 0;
  z-index: 20;
  height: 70px;
  background: #fff;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  padding: 0 34px;
  gap: 18px;
}
.search {
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: 570px;
  flex: 1;
  background: #f3f7f8;
  border-radius: 8px;
  padding: 9px 12px;
}
.search svg {
  width: 18px;
  color: #78909a;
}
.search input {
  border: 0;
  outline: 0;
  background: transparent;
  width: 100%;
  font: inherit;
}
.bell {
  margin-left: auto;
  border: 0;
  background: none;
  position: relative;
}
.bell i {
  position: absolute;
  top: -6px;
  right: -5px;
  background: #d58922;
  color: #fff;
  border-radius: 50%;
  font: 9px sans-serif;
  min-width: 18px;
  height: 18px;
  padding: 0 3px;
  display: grid;
  place-items: center;
}
.avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #daeeee;
  color: #146476;
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 12px;
}
.content {
  padding: 34px;
  max-width: 1500px;
  margin: auto;
}
.heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  margin-bottom: 26px;
}
.heading p,
.eyebrow {
  font-size: 11px;
  letter-spacing: 0.12em;
  color: #728a94;
  font-weight: 700;
  margin: 0 0 6px;
}
.heading h1 {
  font: 500 34px Georgia;
  margin: 0 0 4px;
}
.heading span {
  color: var(--muted);
}
.primary {
  border: 0;
  background: #13697e;
  color: #fff;
  border-radius: 8px;
  padding: 11px 16px;
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  font-weight: 650;
  cursor: pointer;
}
.primary svg {
  width: 17px;
}
.metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 16px;
}
.metric,
.panel,
.empty {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.metric {
  padding: 20px;
  min-height: 126px;
  position: relative;
  overflow: hidden;
}
.metric:after {
  content: "";
  position: absolute;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: #dceff1;
  right: -18px;
  bottom: -25px;
}
.metric.warn:after {
  background: #f5e4c5;
}
.metric span,
.metric b,
.metric small {
  display: block;
}
.metric span {
  color: #5f7680;
  font-size: 13px;
}
.metric b {
  font: 500 29px Georgia;
  margin: 12px 0 5px;
}
.metric small {
  color: #83949b;
}
.grid {
  display: grid;
  grid-template-columns: 1.7fr 1fr;
  gap: 16px;
}
.title {
  height: 58px;
  padding: 0 20px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.title h2 {
  font: 600 17px Georgia;
}
.title button {
  border: 0;
  background: none;
  color: #137286;
  display: flex;
  align-items: center;
  font-size: 11px;
}
.title svg {
  width: 15px;
}
.table {
  overflow-x: auto;
}
.table table {
  width: 100%;
  border-collapse: collapse;
  min-width: 650px;
}
.table th {
  text-align: left;
  padding: 11px 17px;
  background: #f8fafb;
  color: #7d9199;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}
.table td {
  padding: 14px 17px;
  border-top: 1px solid #edf1f2;
  font-size: 12px;
  cursor: pointer;
}
.table tr:hover td {
  background: #f7fbfb;
}
.contract-table .contract-row {
  cursor: pointer;
}
.contract-table .contract-row:focus-visible {
  outline: 2px solid #15939a;
  outline-offset: -2px;
}
.contract-table .contract-row:focus-visible td {
  background: #eef8f8;
}
.contract-table.dashboard table {
  min-width: 700px;
}
.contract-table.contracts table {
  min-width: 920px;
}
.table td b,
.table td small {
  display: block;
}
.table td small {
  color: #809199;
  margin-top: 4px;
}
.table label,
.drawer > label {
  border-radius: 20px;
  padding: 4px 8px;
  background: #e0f1ea;
  color: #246b58;
  font-size: 10px;
  font-weight: 700;
}
.table label.concept {
  background: #e9eff2;
  color: #657983;
}
.table label.aflopend {
  background: #faead0;
  color: #a76a11;
}
.signals {
  padding: 6px 18px;
}
.signal {
  display: flex;
  gap: 13px;
  padding: 13px 0;
  border-bottom: 1px solid #edf1f2;
  width: 100%;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
  font: inherit;
  border-top: 0;
  border-left: 0;
  border-right: 0;
}
.signal:hover { background: #f4f9f9; }
.signal time {
  width: 42px;
  height: 45px;
  border: 1px solid #d4dfe1;
  border-radius: 7px;
  display: grid;
  place-items: center;
  align-content: center;
  font-size: 9px;
  color: #93703c;
}
.signal time b {
  font-size: 16px;
  color: var(--ink);
}
.signal p {
  margin: 3px 0;
}
.signal p b,
.signal p span {
  display: block;
}
.signal p b {
  font-size: 12px;
}
.signal p span {
  font-size: 11px;
  color: #778b93;
  margin-top: 5px;
}
.activity {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 20px;
  border-bottom: 1px solid #edf1f2;
}
.activity p {
  flex: 1;
  margin: 0;
}
.activity p b,
.activity p span {
  display: block;
}
.activity p b {
  font-size: 12px;
}
.activity p span {
  font-size: 11px;
  color: #768a92;
  margin-top: 4px;
}
.activity time {
  font-size: 10px;
  color: #899ba2;
}
.value {
  min-width: 0;
}
.value .title {
  height: auto;
  min-height: 58px;
  padding: 16px 20px;
}
.value .title h2 {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}
.value-content {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 22px;
  min-width: 0;
  padding: 22px;
}
.donut {
  flex: 0 1 135px;
  min-width: 0;
  max-width: 100%;
  width: 135px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(
    #155f77 46%,
    #25a5a1 0 77%,
    #e1a33b 0 91%,
    #bfd0d5 0
  );
  margin: 0;
  display: grid;
  place-items: center;
  position: relative;
}
.donut:after {
  content: "";
  position: absolute;
  inset: 18px;
  background: #fff;
  border-radius: 50%;
}
.donut span {
  z-index: 1;
  max-width: 70%;
  overflow-wrap: anywhere;
  font: 600 20px Georgia;
  text-align: center;
}
.donut small {
  display: block;
  font: 10px sans-serif;
}
.value ul {
  flex: 1 1 140px;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
.value li {
  font-size: 11px;
  padding: 6px 0;
  display: flex;
  align-items: baseline;
  gap: 12px;
  justify-content: space-between;
}
.value li span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.value li b {
  flex-shrink: 0;
  white-space: nowrap;
}
.empty {
  text-align: center;
  padding: 70px 30px;
}
.empty > div {
  width: 62px;
  height: 62px;
  border-radius: 16px;
  background: #e4f2f3;
  color: #176e79;
  display: grid;
  place-items: center;
  margin: auto;
}
.empty h2 {
  font: 500 28px Georgia;
  margin: 17px;
}
.empty p {
  max-width: 570px;
  color: var(--muted);
  margin: auto;
}
.cards {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 25px;
}
.cards b {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.overlay {
  position: fixed;
  inset: 0;
  background: #09223066;
  z-index: 40;
  display: flex;
  justify-content: flex-end;
}
.overlay.center {
  justify-content: center;
  align-items: center;
}
.drawer,
.modal {
  background: white;
  padding: 34px;
  box-shadow: -15px 0 50px #09223020;
}
.drawer {
  width: min(520px, 100%);
  height: 100%;
}
.overlay:has(.drawer) {
  overflow: hidden;
}
.drawer h2,
.modal h2 {
  font: 500 28px Georgia;
  margin: 17px 0 5px;
}
.drawer > p {
  color: var(--muted);
}
.close {
  float: right;
  border: 0;
  background: #edf3f4;
  border-radius: 7px;
  padding: 6px;
}
.close svg {
  width: 18px;
}
.drawer dl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  margin: 25px 0;
}
.drawer dl > div {
  padding: 14px;
  border: 1px solid #edf1f2;
}
.drawer dt {
  font-size: 11px;
  color: #788c94;
}
.drawer dd {
  margin: 5px 0 0;
  font-weight: 650;
}
.drawer h3 {
  font-size: 13px;
}
.drawer article {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 14px;
}
.drawer article span {
  display: flex;
  justify-content: space-between;
  padding: 9px 0;
  border-bottom: 1px solid #edf1f2;
  font-size: 12px;
}
.full {
  width: 100%;
  margin-top: 22px;
}
.modal {
  width: min(690px, calc(100% - 24px));
  border-radius: 14px;
}
.form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
  margin: 24px 0;
}
.form label {
  font-size: 12px;
  font-weight: 650;
}
.form input,
.form select,
.form textarea {
  display: block;
  width: 100%;
  padding: 10px;
  border: 1px solid #ccdadd;
  border-radius: 7px;
  margin-top: 6px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.form textarea { min-height: 100px; resize: vertical; }
.reminder-editor { max-height: min(850px, calc(100vh - 32px)); overflow-y: auto; }
.reminder-editor .form { grid-template-columns: 1fr; }
.reminder-notes { margin: 18px 0; padding-top: 16px; border-top: 1px solid #dce6e8; }
.reminder-notes h3 { margin: 0 0 10px; font-size: 16px; }
.reminder-notes article { padding: 11px 0; border-bottom: 1px solid #e5ecee; }
.reminder-notes article b { margin-right: 10px; }
.reminder-notes article time, .reminder-notes article small { color: #607984; font-size: 12px; }
.reminder-notes article p { margin: 6px 0; white-space: pre-wrap; }
.form input[readonly] {
  background: #f1f5f5;
  color: #47616a;
  cursor: not-allowed;
}
.form label small {
  display: block;
  margin-top: 6px;
  color: #6f8289;
  font-size: 11px;
  font-weight: 450;
}
.settings-page {
  display: grid;
  gap: 18px;
}
.settings-card {
  padding: 24px;
}
.settings-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
}
.settings-heading h2 {
  margin: 4px 0 5px;
}
.settings-heading span {
  color: #667b84;
  font-size: 14px;
}
.number-preview {
  min-width: 210px;
  padding: 14px 18px;
  border: 1px solid #bdd4d6;
  border-radius: 10px;
  background: #f2f8f8;
}
.number-preview small,
.number-preview b {
  display: block;
}
.number-preview small {
  color: #698087;
  font-size: 11px;
  margin-bottom: 4px;
}
.number-preview b {
  color: #123f46;
  font-size: 20px;
}
.settings-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.settings-form label {
  color: #314d55;
  font-size: 13px;
  font-weight: 650;
}
.settings-form input,
.settings-form select,
.add-type input {
  width: 100%;
  margin-top: 6px;
  padding: 10px 11px;
  border: 1px solid #ccdadd;
  border-radius: 7px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.settings-form .check {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-top: 8px;
}
.settings-form .check input {
  width: auto;
  margin: 0;
}
.add-type {
  display: flex;
  gap: 10px;
  max-width: 620px;
  margin-bottom: 16px;
}
.add-type input {
  margin-top: 0;
}
.add-type .primary {
  white-space: nowrap;
}
.type-list {
  display: grid;
  gap: 8px;
}
.type-list > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 13px;
  border: 1px solid #e0e9ea;
  border-radius: 8px;
  background: #fbfdfd;
}
.type-list > div.inactive {
  background: #f5f6f6;
  opacity: .72;
}
.type-copy {
  display: grid;
  grid-template-columns: minmax(180px, .7fr) minmax(260px, 1.3fr);
  gap: 10px;
  flex: 1;
}
.type-copy input {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #d6e1e3;
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.status-toggle {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 90px;
  margin: 0 12px;
  color: #47616a;
  font-size: 13px;
  font-weight: 650;
}
.status-toggle input {
  accent-color: #146b72;
}
.role-list {
  display: grid;
  gap: 12px;
}
.role-list article {
  padding: 16px;
  border: 1px solid #dbe6e7;
  border-radius: 9px;
  background: #fbfdfd;
}
.role-list article.inactive { background: #f5f6f6; }
.role-list article > fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.inactive-role-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.inactive-role-actions > span { color: #47616a; font-size: 13px; font-weight: 650; }
.shell .inactive-role-actions .role-delete-action { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; width: auto; padding: 8px 12px; border: 1px solid #bb3c3c; background: white; color: #932b2b; opacity: 1; }
.role-delete-action svg { display: block; flex-shrink: 0; width: 18px; height: 18px; }
.shell .inactive-role-actions .role-delete-action:disabled { border-color: #ccd6d9; background: #f5f7f7; color: #697a80; cursor: not-allowed; }
.role-head {
  display: grid;
  grid-template-columns: 190px 1fr 100px;
  gap: 10px;
  align-items: center;
}
.role-head > input {
  width: 100%;
  padding: 9px 10px;
  border: 1px solid #d1dfe1;
  border-radius: 6px;
}
.role-head label,
.permission-grid label {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #47616a;
  font-size: 13px;
}
.permission-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px 14px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #e3ebec;
}
.utilization-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.utilization-options > label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 15px;
  border: 1px solid #d4e1e2;
  border-radius: 9px;
  background: #fbfdfd;
  cursor: pointer;
}
.utilization-options input { margin-top: 3px; accent-color: #14747a; }
.utilization-options b,
.utilization-options small { display: block; }
.utilization-options small { margin-top: 4px; color: #6b7f86; line-height: 1.4; }
.utilization-total {
  display: grid;
  grid-template-columns: minmax(220px, .9fr) minmax(240px, 1.4fr) auto;
  align-items: center;
  gap: 22px;
  margin-bottom: 18px;
  padding: 18px 22px;
}
.utilization-total h2 { margin: 2px 0; font-size: 28px; color: #0e5d64; }
.utilization-total span,
.contract-utilization span { color: #657a82; font-size: 13px; }
.utilization-total > b { color: #35545b; font-size: 13px; }
.utilization-bar { height: 10px; overflow: hidden; border-radius: 20px; background: #dfe9ea; }
.utilization-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #16828a, #50b8af); }
.dashboard-finance { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; margin-bottom:18px; }
.dashboard-finance.distribution-only { grid-template-columns:minmax(0,1fr); }
.dashboard-finance > .panel { min-width:0; margin:0; overflow:hidden; }
.dashboard-utilization-body { padding:22px; display:grid; gap:14px; }
.dashboard-utilization-body h2 { margin:0; font-size:28px; color:#0e5d64; }
.dashboard-utilization-body p { margin:0; color:#657a82; font-size:13px; }
.dashboard-utilization-body b { color:#35545b; font-size:13px; }
.dashboard-distribution .value-content ul { flex:1; min-width:150px; }
.dashboard-distribution li span { display:flex; align-items:center; gap:8px; }
.dashboard-distribution li i { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.dashboard-attention-note { margin:12px 20px; color:#657a82; font-size:13px; }
@media(max-width:760px) { .dashboard-finance {grid-template-columns:minmax(0,1fr);} }
.contract-utilization { padding: 15px; border: 1px solid #d9e6e7; border-radius: 9px; background: #f7fbfb; }
.contract-utilization > div:first-child { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.contract-utilization small { display: block; margin-top: 8px; color: #567078; }
.reminder-list { padding: 0; overflow: hidden; }
.reminder-list > button {
  width: 100%;
  display: grid;
  grid-template-columns: 110px minmax(240px, 1fr) 170px 90px 24px;
  gap: 14px;
  align-items: center;
  padding: 15px 18px;
  border: 0;
  border-bottom: 1px solid #e4ebec;
  background: #fff;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.reminder-list > button:hover { background: #f4f9f9; }
.reminder-list > button.done { background: #f7faf8; opacity: .72; }
.reminder-list time { color: #47646b; font-size: 13px; font-weight: 700; }
.reminder-list div b,
.reminder-list div span { display: block; }
.reminder-list div span { margin-top: 3px; color: #71838a; font-size: 12px; }
.reminder-list label { color: #465f67; font-size: 13px; }
.reminder-list em { padding: 5px 8px; border-radius: 20px; background: #fff1d9; color: #8b5b12; font-size: 11px; font-style: normal; text-align: center; }
.reminder-list .done em { background: #dff2e8; color: #287052; }
.reminder-list svg { width: 17px; color: #829399; }
.processed-check { display: flex; align-items: flex-start; gap: 10px; padding: 12px; border: 1px solid #d6e2e3; border-radius: 8px; }
.processed-check input { width: auto; margin: 3px 0 0; accent-color: #16767d; }
.processed-check b,
.processed-check small { display: block; }
.processed-check small { margin-top: 3px; color: #6d8187; font-weight: 400; }
.modal-intro {
  margin: 5px 0 0;
  color: #657a82;
  font-size: 14px;
}
.auth-scroll {
  overflow-x: auto;
}
.clickable-row {
  cursor: pointer;
  transition: background .15s ease;
}
.clickable-row:hover {
  background: #f1f7f7;
}
.user-editor {
  width: min(860px, calc(100% - 24px));
  max-height: min(820px, calc(100vh - 32px));
  overflow-y: auto;
}
.identity-form {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.assignment-list {
  display: grid;
  gap: 10px;
  margin: 12px 0 24px;
}
.add-tenant {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: -8px 0 22px;
  padding: 12px 14px;
  border: 1px dashed #afc8ca;
  border-radius: 8px;
  background: #f4f9f9;
}
.add-tenant b { margin-right: 8px; font-size: 13px; }
.add-tenant button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 10px;
  border: 1px solid #b8ced0;
  border-radius: 7px;
  background: #fff;
  color: #22535a;
  cursor: pointer;
}
.add-tenant svg { width: 15px; }
.metadata-title-input {
  width: calc(100% - 48px);
  margin: 8px 0 4px;
  padding: 8px 10px;
  border: 1px solid #b9ced0;
  border-radius: 7px;
  font: inherit;
  font-size: 22px;
  font-weight: 700;
}
.metadata-grid input,
.metadata-grid select,
.metadata-block input {
  width: 100%;
  margin-top: 3px;
  padding: 7px 8px;
  border: 1px solid #c7d7d9;
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
}
.assignment-card {
  display: grid;
  grid-template-columns: 150px 1fr 1fr;
  gap: 14px;
  align-items: end;
  padding: 15px;
  border: 1px solid #dbe6e7;
  border-radius: 9px;
  background: #f9fbfb;
}
.assignment-card > div b,
.assignment-card > div span {
  display: block;
}
.assignment-card > div span {
  margin-top: 3px;
  color: #70838a;
  font-size: 12px;
}
.assignment-card label {
  color: #415d65;
  font-size: 12px;
  font-weight: 650;
}
.assignment-card select {
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 9px;
  border: 1px solid #ccdadd;
  border-radius: 7px;
  background: #fff;
  color: var(--ink);
}
.invited-user {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #9a671a;
}
.invited-user svg {
  width: 15px;
}
.type-list button {
  display: grid;
  place-items: center;
  border: 0;
  background: transparent;
  color: #809197;
  cursor: pointer;
}
.type-list svg {
  width: 17px;
}
.settings-empty {
  padding: 50px;
  text-align: center;
}
.settings-empty > svg {
  width: 34px;
  height: 34px;
  color: #52747a;
}
.actions .primary:disabled {
  cursor: not-allowed;
  opacity: .5;
}
.actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  border-top: 1px solid var(--line);
  padding-top: 18px;
}
.actions > button:not(.primary) {
  border: 0;
  background: none;
  color: #667b84;
}
@media (max-width: 1000px) {
  .settings-form {
    grid-template-columns: 1fr 1fr;
  }
  .metrics {
    grid-template-columns: 1fr 1fr;
  }
  .grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .settings-heading,
  .add-type {
    flex-direction: column;
  }
  .number-preview,
  .add-type,
  .settings-form {
    width: 100%;
  }
  .settings-form {
    grid-template-columns: 1fr;
  }
  .type-list > div {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .type-copy {
    grid-template-columns: 1fr;
    flex-basis: 100%;
  }
  .identity-form,
  .assignment-card {
    grid-template-columns: 1fr;
  }
  .role-head,
  .permission-grid,
  .utilization-options,
  .utilization-total {
    grid-template-columns: 1fr;
  }
  .reminder-list > button { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .shell > aside {
    width: 72px;
    padding: 20px 9px;
  }
  .brand div,
  .shell nav button:not(.on) {
    font-size: 0;
  }
  .brand i {
    width: 36px;
  }
  .shell nav button {
    justify-content: center;
  }
  .shell nav em,
  .shell aside footer {
    display: none;
  }
  .shell main {
    margin-left: 72px;
  }
  .content {
    padding: 22px 14px;
  }
  .shell main > header {
    padding: 0 14px;
  }
  .heading h1 {
    font-size: 28px;
  }
  .heading span {
    display: none;
  }
  .heading .primary {
    font-size: 0;
    padding: 11px;
  }
  .metrics {
    grid-template-columns: 1fr;
  }
  .grid {
    display: block;
  }
  .panel {
    margin-bottom: 14px;
  }
  .form {
    grid-template-columns: 1fr;
  }
  .cards {
    flex-direction: column;
  }
  .activity time {
    display: none;
  }
}
.drawer {
  width: min(700px, 100%);
  max-height: 100dvh;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}
.drawer-kicker {
  display: flex;
  align-items: center;
  gap: 10px;
}
.drawer-kicker > span {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #758a93;
}
.contract-ref {
  font-size: 12px;
}
.metadata-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.metadata-heading-copy { flex: 1; min-width: 0; }
.metadata-heading-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.metadata-heading-actions .metadata-edit-action { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; }
.metadata-edit-action svg { width: 18px; height: 18px; flex-shrink: 0; }
@media (max-width: 500px) { .metadata-heading { flex-wrap: wrap; } .metadata-heading-actions { margin-left: auto; } }
.metadata-tabs {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--line);
  margin: 24px 0 20px;
}
.metadata-tabs button {
  border: 0;
  background: none;
  padding: 10px 12px;
  color: #6c818a;
  font-size: 11px;
  border-bottom: 2px solid transparent;
}
.metadata-tabs button.selected {
  color: #126f80;
  border-bottom-color: #1a8e98;
  font-weight: 700;
}
.metadata-tabs b {
  background: #e6eff1;
  border-radius: 20px;
  padding: 2px 6px;
  margin-left: 3px;
  font-size: 9px;
}
.drawer .metadata-grid {
  grid-template-columns: repeat(3, 1fr);
  margin: 8px 0 16px;
}
.drawer .metadata-grid > div {
  min-height: 54px;
  padding: 8px 10px;
}
.drawer .metadata-grid dd {
  margin-top: 3px;
}
.drawer .metadata-block {
  padding: 6px 10px;
}
.drawer .metadata-block > span {
  padding: 6px 0;
}
.metadata-block {
  margin-bottom: 22px;
}
.drawer-actions {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  position: sticky;
  bottom: -35px;
  background: #fff;
  border-top: 1px solid var(--line);
  padding: 16px 0 4px;
}
.drawer-actions > button:not(.primary) {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 8px;
  padding: 10px 14px;
  color: #536d78;
  font-weight: 650;
}
.drawer-actions .primary {
  margin: 0;
}
@media (max-width: 700px) {
  .drawer .metadata-grid {
    grid-template-columns: 1fr 1fr;
  }
  .metadata-tabs {
    overflow: auto;
  }
  .drawer-actions {
    bottom: -24px;
  }
}
.scope {
  min-width: 210px;
}
.scope span {
  display: block;
  font-size: 9px;
  letter-spacing: 0.12em;
  color: #78909a;
  font-weight: 700;
}
.scope select {
  border: 0;
  background: transparent;
  color: var(--ink);
  font-weight: 700;
  font-size: 14px;
  padding: 3px 20px 3px 0;
  outline: 0;
}
.context-note {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #e8f4f5;
  border: 1px solid #c8e3e5;
  border-radius: 10px;
  padding: 12px 15px;
  margin-bottom: 22px;
}
.context-note svg {
  width: 22px;
  color: #157987;
  flex: none;
}
.context-note b,
.context-note span {
  display: block;
}
.context-note b {
  font-size: 13px;
}
.context-note span {
  font-size: 11px;
  color: #607a84;
  margin-top: 3px;
}
.viewbar {
  display: flex;
  gap: 7px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--line);
  overflow-x: auto;
}
.viewbar button {
  white-space: nowrap;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 7px;
  padding: 8px 11px;
  color: #57707a;
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  cursor: pointer;
}
.viewbar button svg {
  width: 15px;
}
.viewbar button.selected {
  background: #123d50;
  color: white;
  border-color: #123d50;
}
.groups {
  padding: 14px;
  background: #f5f8f9;
}
.groups > section {
  background: white;
  border: 1px solid var(--line);
  border-radius: 9px;
  overflow: hidden;
  margin-bottom: 12px;
}
.grouphead {
  padding: 13px 17px;
  background: #edf5f6;
}
.grouphead b,
.grouphead span {
  display: block;
}
.grouphead span {
  font-size: 11px;
  color: #71868f;
  margin-top: 3px;
}
@media (max-width: 700px) {
  .scope {
    min-width: 115px;
  }
  .scope span {
    display: none;
  }
  .scope select {
    max-width: 130px;
  }
  .context-note span {
    display: none;
  }
  .viewbar {
    padding: 10px;
  }
  .viewbar button {
    font-size: 0;
  }
  .viewbar button svg {
    margin: 0;
  }
}
.module-page {
  display: grid;
  gap: 16px;
}
.module-top {
  display: flex;
  align-items: center;
  gap: 13px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 18px 20px;
}
.module-symbol {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: #e3f2f3;
  color: #187481;
  display: grid;
  place-items: center;
}
.module-symbol svg {
  width: 22px;
}
.module-top h2,
.module-top p {
  margin: 0;
}
.module-top h2 {
  font: 600 21px Georgia;
}
.module-top p {
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
}
.module-top .primary {
  margin-left: auto;
}
.summary-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.summary-strip > div {
  padding: 18px 22px;
  border-right: 1px solid var(--line);
}
.summary-strip > div:last-child {
  border: 0;
}
.summary-strip b,
.summary-strip span {
  display: block;
}
.summary-strip b {
  font: 500 25px Georgia;
}
.summary-strip span {
  font-size: 11px;
  color: var(--muted);
  margin-top: 4px;
}
.relation-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.relation-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 18px;
}
.relation-head {
  display: flex;
  align-items: center;
  gap: 10px;
}
.relation-head > i {
  width: 40px;
  height: 40px;
  border-radius: 9px;
  background: #dceff1;
  display: grid;
  place-items: center;
  font-style: normal;
  font-weight: 700;
}
.relation-head b,
.relation-head span {
  display: block;
}
.relation-head span {
  font-size: 10px;
  color: var(--muted);
  margin-top: 3px;
}
.relation-head button,
.record button {
  margin-left: auto;
  border: 0;
  background: none;
  color: #7d9199;
}
.relation-head svg {
  width: 17px;
}
.relation-card > p {
  font-size: 12px;
  padding: 13px 0;
  border-bottom: 1px solid #edf1f2;
}
.contact {
  display: flex;
  gap: 9px;
  align-items: center;
}
.contact svg {
  width: 17px;
  color: #73909a;
}
.contact b,
.contact span {
  display: block;
  font-size: 11px;
}
.contact span {
  color: #71868f;
}
.text-button {
  border: 0;
  background: none;
  color: #147487;
  font-weight: 700;
  font-size: 11px;
  padding: 15px 0 0;
}
.toolbar {
  display: flex;
  align-items: center;
  gap: 7px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px;
}
.toolbar > span {
  flex: 1;
}
.toolbar button {
  border: 1px solid var(--line);
  background: #fff;
  padding: 8px 10px;
  border-radius: 7px;
  display: flex;
  gap: 6px;
  align-items: center;
  font-size: 11px;
}
.toolbar button.active {
  background: #123d50;
  color: white;
}
.toolbar svg {
  width: 15px;
}
.records {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.record {
  display: grid;
  grid-template-columns: 40px minmax(220px, 1fr) 170px 110px 32px;
  gap: 12px;
  align-items: center;
  padding: 15px 18px;
  border-bottom: 1px solid #edf1f2;
}
.record:last-child {
  border: 0;
}
.record > i {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: #eaf3f4;
  color: #167382;
  display: grid;
  place-items: center;
}
.record > i svg {
  width: 18px;
}
.record b,
.record span {
  display: block;
}
.record span,
.record small {
  font-size: 11px;
  color: #788b94;
  margin-top: 4px;
}
.record label {
  font-size: 10px;
  color: #256b58;
  background: #e2f2ec;
  border-radius: 20px;
  padding: 5px 8px;
  text-align: center;
}
.mini .metric {
  min-height: 112px;
}
.split {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 16px;
}
.finance-list article {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 15px 18px;
  border-bottom: 1px solid #edf1f2;
}
.finance-list svg {
  width: 19px;
  color: #167382;
}
.finance-list b,
.finance-list span,
.finance-list small {
  display: block;
}
.finance-list span,
.finance-list small {
  font-size: 10px;
  color: var(--muted);
  margin-top: 3px;
}
.finance-list strong {
  text-align: right;
  font-size: 12px;
}
.signal-board {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.signal-column {
  background: #eaf1f3;
  border-radius: 12px;
  padding: 14px;
}
.signal-column h3 {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  margin: 0 0 12px;
}
.signal-column h3 > span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #4c91a0;
}
.signal-column h3 b {
  margin-left: auto;
  border-radius: 20px;
  background: #d6e4e7;
  padding: 2px 7px;
}
.urgent-col h3 > span {
  background: #d68a24;
}
.done-col h3 > span {
  background: #3b9b77;
}
.task {
  background: #fff;
  border: 1px solid #dce5e7;
  border-radius: 9px;
  padding: 14px;
  margin-bottom: 9px;
}
.task time {
  font-size: 10px;
  font-weight: 700;
  color: #ad6d15;
  background: #fff0d8;
  padding: 4px 7px;
  border-radius: 20px;
}
.task > b,
.task > span,
.task > small {
  display: block;
}
.task > b {
  font-size: 12px;
  margin-top: 12px;
}
.task > span {
  font-size: 10px;
  color: var(--muted);
  margin: 4px 0 12px;
}
.task > small {
  border-top: 1px solid #edf1f2;
  padding-top: 9px;
  color: #70858e;
}
.task small svg {
  width: 13px;
  vertical-align: middle;
  margin-right: 5px;
}
.task.done {
  opacity: 0.68;
}
.audit-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 16px;
}
.activity-filters {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px;
}
.activity-filters > b {
  display: block;
  font-size: 11px;
  padding: 5px 8px 10px;
}
.activity-filters button {
  width: 100%;
  display: flex;
  justify-content: space-between;
  border: 0;
  background: none;
  padding: 9px;
  border-radius: 6px;
  color: #617882;
  font-size: 11px;
}
.activity-filters button.active {
  background: #e7f3f4;
  color: #126c7d;
  font-weight: 700;
}
.activity-filters span {
  color: #91a0a6;
}
.audit-stream {
  padding: 8px 20px;
}
.audit {
  display: flex;
  gap: 13px;
  padding: 16px 0;
  border-bottom: 1px solid #edf1f2;
}
.audit > div:last-child {
  flex: 1;
}
.audit time,
.audit b,
.audit span {
  display: block;
}
.audit time {
  font-size: 10px;
  color: #899ba2;
}
.audit b {
  font-size: 13px;
  margin-top: 5px;
}
.audit p {
  font-size: 12px;
  color: #617780;
  margin: 5px 0;
}
.audit span {
  font-size: 10px;
  color: #167487;
}
.auth-info {
  display: flex;
  gap: 12px;
  background: #e8f4f5;
  border: 1px solid #c8e3e5;
  border-radius: 10px;
  padding: 15px;
}
.auth-info svg {
  width: 24px;
  color: #137586;
}
.auth-info b,
.auth-info span {
  display: block;
}
.mail-config label {
  margin-left: auto;
  background: #fff4df;
  color: #966117;
  border-radius: 20px;
  padding: 6px 10px;
  font-size: 10px;
  font-weight: 700;
}
.auth-info span {
  font-size: 11px;
  color: #617a84;
  margin-top: 4px;
}
.auth-table {
  width: 100%;
  min-width: 480px;
}
.person {
  display: flex;
  align-items: center;
  gap: 9px;
}
.person i {
  width: 31px;
  height: 31px;
  border-radius: 50%;
  background: #dbeef0;
  color: #146576;
  display: grid;
  place-items: center;
  font-style: normal;
  font-weight: 700;
}
.auth-table label {
  background: #e8f1f3 !important;
  color: #466571 !important;
}
.active-user {
  display: flex !important;
  align-items: center;
  gap: 4px;
  color: #27775e !important;
}
.active-user svg {
  width: 14px;
}
@media (max-width: 1000px) {
  .relation-grid,
  .signal-board {
    grid-template-columns: 1fr 1fr;
  }
  .split {
    grid-template-columns: 1fr;
  }
  .record {
    grid-template-columns: 40px 1fr 110px;
  }
  .record small,
  .record button {
    display: none;
  }
}
@media (max-width: 700px) {
  .module-top .primary {
    font-size: 0;
  }
  .summary-strip {
    grid-template-columns: 1fr 1fr;
  }
  .relation-grid,
  .signal-board {
    grid-template-columns: 1fr;
  }
  .audit-layout {
    grid-template-columns: 1fr;
  }
  .activity-filters {
    display: flex;
    overflow: auto;
  }
  .activity-filters > b {
    display: none;
  }
  .activity-filters button {
    white-space: nowrap;
    width: auto;
  }
  .record {
    grid-template-columns: 40px 1fr;
  }
  .record label {
    display: none;
  }
  .toolbar {
    overflow: auto;
  }
  .toolbar > span {
    display: none;
  }
}

.invoice-section{margin-bottom:24px}.invoice-section .settings-heading{align-items:center}.invoice-table-wrap{overflow:auto}.invoice-table{width:100%;border-collapse:collapse;min-width:850px;font-size:13px}.invoice-table th,.invoice-table td{text-align:left;padding:12px;border-bottom:1px solid #e4e9ef}.invoice-table th{color:#607184;font-weight:650}.invoice-empty{padding:20px;color:#607184}.invoice-contract-list button{align-self:flex-start;margin-top:10px}

.date-form-label { font-size: 12px; font-weight: 650; min-width: 0; }
.date-form-label > small { display: block; margin-top: 6px; color: #6f8289; font-size: 11px; font-weight: 450; }
.date-field { position: relative; width: 100%; margin-top: 6px; font-size: 13px; }
.date-trigger { width: 100%; min-height: 39px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 10px; border: 1px solid #ccdadd; border-radius: 7px; background: #fff; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.date-trigger:hover, .date-trigger:focus-visible { border-color: var(--teal); outline-color: var(--teal); }
.date-placeholder { color: #71868f; }
.date-trigger svg { flex: none; color: #347882; margin-right: 18px; }
.date-clear { position: absolute; top: 10px; right: 31px; border: 0; padding: 2px; background: transparent; color: #607984; cursor: pointer; }
.date-popover { position: absolute; top: calc(100% + 5px); left: 0; z-index: 100; width: max-content; max-width: min(360px, 90vw); padding: 12px; border: 1px solid #ccdadd; border-radius: 10px; background: white; box-shadow: 0 14px 35px #09223030; }
.date-popover .rdp-root { --rdp-accent-color: #137f86; --rdp-accent-background-color: #e4f4f3; font-size: 13px; }
.date-popover .rdp-month_caption { min-height: 34px; }
.date-popover-actions { display: flex; justify-content: flex-end; border-top: 1px solid #e5ecee; padding-top: 7px; }
.date-popover-actions button { border: 0; padding: 6px 8px; background: transparent; color: #137f86; font-weight: 650; cursor: pointer; }

.financial-agreements{display:grid;gap:16px;margin:16px 0}.agreement-card{padding:18px;border:1px solid #dce3ec;border-radius:12px;background:#fff}.agreement-card h4{margin:0 0 12px}.agreement-description{white-space:pre-wrap;overflow-wrap:anywhere}.full-width{grid-column:1/-1}.money-input{display:flex!important;align-items:center;gap:8px}.money-input input{min-width:0;width:100%}.agreement-card textarea{min-height:90px;width:100%}

.settings-fields{border:0;padding:0;margin:0;display:grid;gap:24px;min-width:0}.settings-save{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px}.settings-save .form-error{flex-basis:100%}

.real-activity-list{display:grid}.real-activity{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid #e4e8f0}.real-activity:last-child{border:0}.activity-avatar{flex:0 0 38px;height:38px;border-radius:50%;background:#edf2ff;color:#355a9f;display:grid;place-items:center;font-weight:700}.activity-copy{flex:1;min-width:0;overflow-wrap:anywhere}.activity-copy>p{margin:6px 0;color:#5d687b;font-size:14px}.activity-copy summary{cursor:pointer;margin-top:10px;color:#355a9f}.activity-contract button{background:none;border:0;color:#355a9f;padding:0;text-align:left}.activity-changes{display:grid;gap:12px;margin-top:14px}.activity-changes>div{background:#f5f7fb;padding:12px;border-radius:8px}.activity-changes dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0 0}.activity-changes dt{color:#5d687b;font-size:14px}.activity-changes dd{margin:4px 0 0;white-space:pre-wrap}.activity-page-heading{display:flex;justify-content:space-between;gap:16px;align-items:center}.activity-page-heading h2{margin:0}.activity-search{display:grid;gap:8px;margin-bottom:18px}.activity-search input{padding:12px;border:1px solid #dce3ec;border-radius:8px}.activity-empty{padding:16px;color:#5d687b}@media(max-width:650px){.activity-changes dl{grid-template-columns:1fr}.activity-page-heading{align-items:flex-start}.audit-layout{grid-template-columns:1fr}}

/* Text actions use visible, consistent secondary buttons. View-more links retain their styling. */
.action-button,
.shell .action-button,
.shell .actions > .action-button,
.shell .drawer-actions > .action-button,
.login-secondary.action-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 36px;
  max-width: 100%;
  padding: 8px 13px;
  border: 1px solid #b8ced2;
  border-radius: 8px;
  background: #fff;
  color: #1d6470;
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.4;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
  cursor: pointer;
  transition: background-color .15s, border-color .15s;
}
.action-button:hover:not(:disabled) {
  border-color: #15939a;
  background: #eef8f8;
  color: #104d57;
  text-decoration: none;
}
.action-button:focus-visible,
.login-button:focus-visible {
  outline: 2px solid #15939a;
  outline-offset: 3px;
}
.action-button:disabled {
  opacity: .5;
  cursor: not-allowed;
}
.shell .contract-open {
  justify-content: flex-start;
  text-align: left;
}
.shell .relation-action {
  margin-top: 14px;
}
.shell .activity-contract .action-button {
  margin-top: 4px;
  text-align: left;
}
.shell summary.action-button {
  display: list-item;
  width: fit-content;
  list-style-position: inside;
}
.login-secondary.action-button {
  display: flex;
  margin-top: 16px;
}

.table tbody td { cursor: inherit; }

.shell .icon-action, .shell .actions > .icon-action, .shell .drawer-actions > .icon-action { width: 36px; height: 36px; min-width: 36px; padding: 8px; flex-shrink: 0; border: 0; background: transparent; box-shadow: none; }
.shell .icon-action svg { width: 18px; height: 18px; }

.user-editor .assignment-card { grid-template-columns: 130px minmax(0, 1fr) minmax(0, 1fr) 36px; }
@media (max-width: 700px) { .user-editor .assignment-card { grid-template-columns: minmax(0, 1fr); } }

.shell .icon-action:hover:not(:disabled), .shell .actions > .icon-action:hover:not(:disabled), .shell .drawer-actions > .icon-action:hover:not(:disabled) { background: transparent; border: 0; box-shadow: none; color: #117d83; }

.contract-create-modal {
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}

.supplier-contact-editor { background: white; color: #173d48; border-radius: 18px; max-height: calc(100dvh - 2rem); overflow-y: auto; }
.supplier-contact-editor .form { display: grid; grid-template-columns: 1fr; gap: 18px; }
.supplier-contact-editor .actions { margin-top: 24px; justify-content: flex-end; }
.contact > span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.relation-action:disabled { opacity: .5; cursor: not-allowed; }
.shell .contact b, .shell .contact span { font-size: 14px; }
.supplier-list-wrap { overflow-x: auto; border: 1px solid #dce5e8; border-radius: 12px; background: white; }
.supplier-list { list-style: none; padding: 0; margin: 0; min-width: 800px; }
.supplier-list-head, .shell .supplier-row { display: grid; grid-template-columns: minmax(180px, 1.3fr) minmax(200px, 1.4fr) 100px minmax(140px, 1fr) 160px; gap: 16px; align-items: center; padding: 16px 20px; min-width: 800px; }
.supplier-list-head { background: #edf3f5; font-size: 14px; font-weight: 600; }
.shell .supplier-row { width: 100%; border: 0; border-top: 1px solid #e2e9ec; border-radius: 0; background: white; color: #173d48; text-align: left; font-size: 14px; cursor: pointer; }
.supplier-row span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.shell .supplier-row:hover { background: #f0f7f8; }
.shell .supplier-row:focus-visible { outline: 2px solid #147487; outline-offset: -3px; }
.supplier-section-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.supplier-section-heading h3 { font-size: 18px; margin: 0; }
.supplier-contact-table-wrap { overflow-x: auto; }
.supplier-contact-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.supplier-contact-table th, .supplier-contact-table td { padding: 12px; text-align: left; border-bottom: 1px solid #e2e9ec; }
.supplier-contact-table td { overflow-wrap: anywhere; }
.supplier-contact-table th { background: #edf3f5; }


.contract-tree-name { position: relative; min-width: 160px; }
.contract-tree-child .contract-tree-link { position: absolute; top: -15px; width: 12px; height: 25px; border-left: 2px solid #73a9b1; border-bottom: 2px solid #73a9b1; border-bottom-left-radius: 4px; }
.contract-child-row td { background: #f8fbfc; }
.supplier-contract-group { border: 1px solid #e0e9ec; border-radius: 12px; overflow: hidden; background: white; }
.supplier-contract-group summary { list-style: none; cursor: pointer; }
.supplier-contract-group summary::-webkit-details-marker { display: none; }
.supplier-contract-group summary:focus-visible { outline: 2px solid #15939a; outline-offset: -3px; }
.supplier-contract-group .grouphead { display: flex; justify-content: space-between; align-items: center; }
.supplier-contract-group[open] > summary .grouphead b, .customer-supplier-group[open] > .customer-group-heading b { font-size: 13px; }
.supplier-expand-icon { width: 18px; height: 18px; transition: transform .15s; }
.supplier-contract-group[open] .supplier-expand-icon { transform: rotate(90deg); }

.contract-tree-name { display: flex; align-items: center; }
.shell .contract-tree-toggle { position: absolute; top: 50%; transform: translateY(-50%); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 22px; width: 22px; height: 22px; padding: 2px; border: 0; background: transparent; color: #147487; cursor: pointer; }
.contract-tree-toggle svg { width: 16px; height: 16px; }
.contract-tree-toggle[aria-expanded="true"] svg { transform: rotate(90deg); }
.contract-tree-toggle:focus-visible { outline: 2px solid #15939a; border-radius: 4px; }
.supplier-contract-overview { overflow-x: auto; }
.supplier-contract-overview > .groups { min-width: 1100px; }
.supplier-contract-overview .contract-table table { table-layout: fixed; min-width: 0; }
.supplier-contract-overview .contract-table { overflow: visible; }
.supplier-contract-overview .contract-tree-name { min-width: 0; }
.supplier-contract-overview .contract-table td { overflow-wrap: anywhere; }

.contract-table .contract-value-cell { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }

.customer-contract-overview > .groups { min-width: 1440px; }
.customer-group-heading { display: grid; grid-template-columns: 10% 15% 9.6% 5% 22.4% 12% 10% 9% 7%; list-style: none; cursor: pointer; background: #edf5f6; }
.customer-group-heading::-webkit-details-marker { display: none; }
.customer-group-heading:focus-visible { outline: 2px solid #15939a; outline-offset: -3px; }
.customer-group-heading > span { grid-column: 1 / 3; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 13px 17px; }
.customer-group-heading svg { width: 16px; height: 16px; flex-shrink: 0; }
.customer-supplier-group > .customer-group-heading { background: #f6f9fa; border-top: 1px solid #e2e9ec; }
.customer-supplier-group > .customer-group-heading > span { grid-column: 2 / 5; }
.customer-supplier-group[open] > .customer-group-heading svg { transform: rotate(90deg); }

.content[hidden] { display: none; }
.dossier-back { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 20px; }
.dossier-back svg { width: 18px; height: 18px; }
.drawer.contract-dossier { width: 100%; height: auto; max-height: none; overflow: visible; scrollbar-gutter: auto; border: 1px solid var(--line); border-radius: 12px; box-shadow: none; }
.contract-dossier .drawer-actions { position: static; margin-top: 24px; }
.contract-dossier .drawer-actions [hidden] { display: none; }
.contract-dossier h3 { font-size: 17px; margin-top: 28px; }
@media (max-width: 650px) { .drawer.contract-dossier { padding: 20px; } .contract-dossier .metadata-grid { grid-template-columns: 1fr; } }

.modal.contract-create-page { width: 100%; max-width: none; max-height: none; overflow: visible; border: 1px solid var(--line); border-radius: 12px; box-shadow: none; }
.shell .contract-create-page .form { grid-template-columns:minmax(0,1fr); max-width:720px; align-items:start; }
.shell .contract-create-page .form > label, .shell .contract-create-page .date-form-label { display:flex; flex-direction:column; align-items:stretch; gap:8px; }
.shell .contract-create-page .form .full-width { grid-column:1; }
.shell .contract-create-page .form :is(input,select,textarea,.date-field,.customer-contact-picker) { width:100%; min-width:0; box-sizing:border-box; }
.shell .contract-create-page .date-form-label > .date-field, .shell .contract-create-page .customer-contact-picker { margin-top:0; }
.contract-required-note { color:#657a82; font-size:13px; margin:0 0 20px; }
.metadata-contract-type { display:inline-flex; flex-direction:column; vertical-align:middle; gap:4px; font-size:12px; }
.metadata-contract-type select { min-width:180px; max-width:100%; }
.customer-contact-picker { position: relative; width: 100%; }
.customer-contact-picker > input { width: 100%; }
.customer-contact-options { position: absolute; inset: calc(100% + 4px) 0 auto; z-index: 30; background: white; border: 1px solid #ccdadd; border-radius: 8px; box-shadow: 0 8px 24px #09223020; max-height: 290px; overflow-y: auto; min-width: 240px; }
.customer-contact-options > button { display: block; width: 100%; text-align: left; padding: 10px 12px; background: white; border: 0; color: var(--ink); cursor: pointer; }
.customer-contact-options > button:hover, .customer-contact-options > button[aria-selected="true"] { background: #edf5f6; }
.customer-contact-options b, .customer-contact-options small { display: block; }
.customer-contact-options small { font-size: 12px; color: var(--muted); margin-top: 4px; }
.drawer .metadata-grid:has(.customer-contact-picker, .date-field) { overflow: visible; }
.drawer .metadata-grid .date-field { margin-top: 3px; }
.drawer .metadata-grid .date-trigger { min-height: 0; padding: 7px 8px; }
.drawer .metadata-grid .date-clear { top: 50%; transform: translateY(-50%); }
@media (max-width: 650px) { .modal.contract-create-page { padding: 20px; } }

.activity-overview { overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; background: white; }
.activity-row-header, .activity-row { display: grid; grid-template-columns: 180px 180px 140px minmax(210px, 1fr) minmax(320px, 1.6fr); gap: 16px; align-items: center; min-width: 1160px; padding: 8px 18px; }
.activity-row-header { background: #edf3f5; font-size: 12px; font-weight: 650; color: #536d78; }
.activity-row { list-style: none; cursor: pointer; font-size: 13px; border-top: 1px solid #e2e9ec; }
.activity-row::-webkit-details-marker { display: none; }
.activity-row:hover, .activity-row-details[open] > .activity-row { background: #f0f7f8; }
.activity-row:focus-visible { outline: 2px solid #147487; outline-offset: -3px; }
.activity-row > span, .activity-row > time { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.activity-row > time { font-variant-numeric: tabular-nums; }
.activity-row .activity-specification { position: relative; padding-right: 25px; }
.activity-specification svg { position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; }
.activity-row-details[open] > .activity-row .activity-specification svg { transform: translateY(-50%) rotate(90deg); }
.activity-row-content { min-width: 1160px; padding: 18px; background: #fbfdfd; border-top: 1px solid #e2e9ec; }
.activity-row-content > p { margin: 0 0 12px; font-size: 14px; color: #536d78; }
.activity-row-content .activity-changes { margin-top: 16px; }

.test-mode-label { display: inline-block; padding: 3px 7px; border-radius: 6px; background: #fff1d4; color: #815b17; font-size: 11px; font-weight: 700; margin-right: 6px; }
.account-dropdown:has(.test-account-options) { width: 330px; max-width: calc(100vw - 24px); max-height: calc(100dvh - 85px); overflow-y: auto; }
.test-account-options { padding: 6px; border-bottom: 1px solid #e2e9ec; margin-bottom: 4px; }
.test-account-options > b { display: block; padding: 7px; font-size: 12px; color: #536d78; }
.shell .test-account-options > button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 7px; border: 0; border-radius: 6px; background: white; text-align: left; color: #235965; font-size: 13px; cursor: pointer; }
.shell .test-account-options > button:hover { background: #edf5f6; }
.shell .test-account-options > button:disabled { opacity: .55; cursor: default; }
.test-account-options small { display: block; color: #71868f; font-size: 11px; margin-top: 3px; }
.test-account-options > p { padding: 4px 7px; font-size: 12px; }

.shell.standalone-dossier main { margin-left: 0; }

.contract-table table { table-layout: fixed; }
.contract-table .contract-row { height: 38px; }
.contract-table .contract-row > td { height: 38px; padding-top: 6px; padding-bottom: 6px; line-height: 18px; vertical-align: middle; white-space: normal; overflow-wrap: anywhere; }
.contract-table .contract-tree-name { min-height: 24px; min-width: 0; }
.contract-table .contract-tree-name > b { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.contract-table .contract-row > .contract-value-cell { white-space: nowrap; }
.contract-table .contract-row label { display: inline-flex; align-items: center; height: 24px; padding: 0 8px; line-height: 14px; vertical-align: middle; white-space: nowrap; }
.contract-table .contract-row > td:last-child { padding-left: 8px; padding-right: 8px; }
.contract-table .document-folder-count { display: flex; margin-inline: auto; }


.pacta-brand { padding: 0 8px 28px; margin-bottom: 0; flex-direction: column; align-items: stretch; gap: 4px; }
.pacta-logo { display: block; position: relative; width: 100%; aspect-ratio: 484 / 116; overflow: hidden; }
.pacta-logo img { display: block; width: 100%; height: auto; }
.pacta-brand .pacta-brand-subtitle { color: #93b1ba; font-family: inherit; font-size: 11px; font-weight: 400; text-align: center; margin-left: 42px; white-space: nowrap; }
.supplier-contract-group .grouphead > div { display: flex; align-items: baseline; gap: 12px; }
@media (max-width: 700px) {
  .pacta-brand { padding: 0 7px 28px; }
  .pacta-logo { width: 40px; height: 46px; aspect-ratio: auto; }
  .pacta-logo img { width: 186px; max-width: none; }
  .pacta-brand .pacta-brand-subtitle { display: none; }
}

.contract-table.dashboard.with-customer table { min-width: 650px; }

.notification-connection-status { padding: 12px 16px; border: 1px solid #d6e6eb; border-radius: 8px; background: #edf5f7; color: #47646f; font-size: 13px; }
.notification-fields { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 18px; }
.notification-fields label { min-width: 0; }
.notification-fields small { color: #607984; font-weight: 400; font-size: 12px; line-height: 1.5; }
.notification-introduction { grid-column: 1 / -1; }
.notification-fields textarea { width: 100%; resize: vertical; font: inherit; padding: 12px; border: 1px solid #dce3ec; border-radius: 8px; }
.notification-preview { margin-top: 20px; padding: 18px; background: #f8fafb; border: 1px solid #e0e9ec; border-radius: 8px; }
.notification-preview h3 { margin: 0 0 10px; font-size: 15px; }
.notification-preview p { color: #607984; font-size: 12px; }
.notification-preview pre { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: 13px; line-height: 1.65; margin-bottom: 0; }
@media(max-width: 850px) { .notification-fields { grid-template-columns: 1fr; } }

.settings-topic > summary { list-style: none; cursor: pointer; margin-bottom: 0; align-items: center; flex-direction: row; }
.settings-topic > summary::-webkit-details-marker { display: none; }
.settings-topic > summary > div:first-child { flex: 1; }
.settings-topic > summary:focus-visible { outline: 2px solid #147487; outline-offset: 6px; border-radius: 4px; }
.settings-topic-toggle { width: 20px; height: 20px; flex-shrink: 0; color: #147487; }
.settings-topic[open] > summary { margin-bottom: 20px; }
.settings-topic[open] > summary .settings-topic-toggle { transform: rotate(90deg); }

.notification-enable { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 18px; cursor: pointer; }
.notification-enable input { margin-top: 3px; }
.notification-enable small { display: block; color: #607984; font-size: 12px; margin-top: 4px; }
.settings-topic > .number-preview { margin-bottom: 18px; }
.settings-topic-status { white-space: nowrap; font-size: 12px; }

/* Compact field values in the contract metadata, including edit controls. */
.drawer .metadata-grid dd,
.drawer .metadata-grid input,
.drawer .metadata-grid select,
.drawer .metadata-grid .date-trigger,
.drawer .metadata-block input,
.drawer .agreement-card input,
.drawer .agreement-card select,
.drawer .agreement-card textarea,
.drawer .agreement-card > b,
.drawer .agreement-description {
  font-size: 12px;
}

.stored-mail-list { overflow-x: auto; margin-top: 18px; }
.stored-mail-item { min-width: 1000px; border-bottom: 1px solid var(--line); }
.stored-mail-item > summary { display: grid; grid-template-columns: 130px 110px 180px 200px minmax(220px,1fr) 150px; gap: 12px; padding: 10px; cursor: pointer; font-size: 12px; }
.stored-mail-item > summary > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stored-mail-item > summary:focus-visible { outline: 2px solid var(--teal); outline-offset: -2px; }
.stored-mail-body { padding: 14px; background: #f8fafb; }
.stored-mail-body pre { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: 13px; }

.document-form { margin: 18px 0; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: #f9fbfb; }
.document-form fieldset { border: 0; padding: 0; }
.document-form small { display: block; color: var(--muted); font-size: 12px; }
.document-table { overflow-x: auto; margin-top: 18px; }
.document-table table { width: 100%; min-width: 650px; }
.document-table td, .document-table th { padding: 8px 10px; text-align: left; border-bottom: 1px solid var(--line); font-size: 12px; }
.document-table td:first-child { overflow-wrap: anywhere; }
.document-table a.action-button { display: inline-block; text-decoration: none; }
.document-choice-row { display: flex; align-items: center; gap: 12px; margin: 8px 0; }
.document-choice-row > input { flex: 1; min-width: 0; padding: 8px; border: 1px solid var(--line); border-radius: 6px; }
.document-choice-row > label { white-space: nowrap; }

.stored-mail-row { display: grid; grid-template-columns: minmax(0,1fr) 36px; gap: 8px; min-width: 1040px; }
.stored-mail-row .stored-mail-item { min-width: 0; }
.stored-mail-row > .icon-action { align-self: start; margin-top: 2px; }

.document-choice-section + .document-choice-section { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.document-choice-section h3 { margin-top: 0; }
.document-choice-replacement { margin:16px 0; padding:16px; border:1px solid #b8d4d9; border-radius:8px; background:#f3f9fa; }
.document-choice-replacement h4 { margin:0 0 8px; }
.document-choice-replacement p { font-size:12px; line-height:1.6; color:#526873; }
.document-choice-replacement > label { display:grid; gap:7px; max-width:520px; font-size:12px; font-weight:600; }
.document-choice-replacement input { min-width:0; width:100%; padding:9px 12px; border:1px solid var(--line); border-radius:6px; background:white; color:inherit; }

.documents-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:20px; }
.documents-heading h2 { display:flex; align-items:center; gap:10px; margin:0; }
.documents-heading p { margin:6px 0 0; color:var(--muted); font-size:13px; }
.documents-heading button svg { width:16px; height:16px; }
.document-upload-panel { padding:18px; background:white; border:1px solid var(--line); border-radius:10px; margin-bottom:20px; }
.document-upload-panel .document-form { margin-bottom:0; }
.document-contract-context { font-size:13px; overflow-wrap:anywhere; }
.document-filters { display:flex; gap:14px; flex-wrap:wrap; margin:18px 0; }
.document-filters label { display:flex; flex-direction:column; gap:6px; color:var(--muted); font-size:12px; }
.document-filters select { min-width:180px; padding:8px 12px; border:1px solid var(--line); border-radius:6px; background:white; color:var(--ink); }
.document-customer-group { padding:16px; margin-top:16px; }
.document-customer-group h3 { display:flex; align-items:center; gap:12px; margin:0; font-size:16px; }
.document-customer-group h3 span { font-weight:400; color:var(--muted); font-size:12px; }
.document-customer-group .document-table { margin-top:10px; }
.document-file-name { display:block; margin-top:3px; font-size:11px; color:var(--muted); overflow-wrap:anywhere; }
.document-contract-button { display:flex; flex-direction:column; gap:3px; border:1px solid var(--line); background:white; border-radius:5px; padding:5px 8px; text-align:left; color:var(--ink); cursor:pointer; }
.document-contract-button:hover { background:#f0f5f5; }
.document-contract-button span { font-size:11px; color:var(--muted); }
.document-empty { padding:20px; background:white; border:1px solid var(--line); border-radius:8px; color:var(--muted); }
@media(max-width:600px) { .document-filters label,.document-filters select { width:100%; } .document-upload-panel { padding:12px; } }
.service-level-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.service-level-values dd { white-space:pre-wrap; }
.contract-service-level fieldset { padding:0; border:0; margin:0 0 16px; }
.contract-service-level textarea { width:100%; padding:10px; font:inherit; font-size:13px; border:1px solid var(--line); border-radius:6px; resize:vertical; }

.service-level-section h4 { margin:0 0 12px; }
.service-level-legacy { margin-top:16px; }
.contract-service-level small { font-size:11px; color:var(--muted); font-weight:normal; }

.supplier-contact-table { min-width:960px; table-layout:auto; }
.supplier-contact-table th, .supplier-contact-table td { white-space:nowrap; overflow-wrap:normal; }
.supplier-contact-table th:last-child, .supplier-contact-table td:last-child { width:48px; }
.contract-finance-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.contract-finance fieldset { min-width:0; border:0; padding:0; margin:0; }
.contract-invoice-table { overflow-x:auto; margin-top:12px; }
.contract-invoice-table table { width:100%; min-width:760px; border-collapse:collapse; }
.contract-invoice-table th, .contract-invoice-table td { padding:8px 10px; border-bottom:1px solid var(--line); text-align:left; font-size:12px; white-space:nowrap; }
.contract-invoice-table .invoice-amount { text-align:right; }

.contract-table .document-count-cell { width:56px; padding-left:8px; padding-right:8px; text-align:center; vertical-align:middle; }
.contract-table th.document-count-cell > svg { width:18px; height:18px; display:block; margin:auto; }
.document-folder-count { position:relative; display:inline-flex; align-items:center; justify-content:center; width:32px; height:24px; padding:0; border:0; border-radius:3px; background:transparent; vertical-align:middle; color:#277b89; cursor:pointer; }
.document-folder-count:hover:not(:disabled) { color:#117d83; }
.document-folder-count:focus-visible { outline:2px solid #15939a; outline-offset:2px; }
.document-folder-count:disabled { cursor:default; opacity:.6; }
.document-folder-count > svg { width:32px; height:24px; stroke-width:1.4; fill:#edf5f6; }
.contract-table .document-folder-count > b { position:absolute; top:7px; left:0; width:100%; text-align:center; font-size:10px; line-height:12px; font-weight:600; font-variant-numeric:tabular-nums; }
.contract-table .document-folder-many > b { font-size:8px; }

/* Service Level: stacked sections with compact, structured inputs. */
.contract-service-level .sla-stack { display:flex; flex-direction:column; gap:20px; min-width:0; }
.sla-section { min-width:0; padding-bottom:18px; border-bottom:1px solid var(--line); }
.sla-section:last-child { border-bottom:0; padding-bottom:0; }
.sla-section h4 { margin:0 0 12px; font-size:13px; }
.sla-section p { margin:0; font-size:12px; }
.sla-section label { display:flex; flex-direction:column; gap:6px; font-size:12px; font-weight:500; }
.sla-section input:not([type="checkbox"]), .sla-section select { width:100%; min-width:0; height:34px; padding:6px 8px; font:inherit; font-size:12px; border:1px solid var(--line); border-radius:5px; background:white; color:var(--ink); }
.sla-availability { display:grid; grid-template-columns:150px minmax(0,1fr); gap:16px; }
.sla-percentage { position:relative; display:inline-flex; width:110px; max-width:100%; align-items:center; }
.sla-percentage input:not([type="checkbox"]) { padding-right:24px; }
.sla-percentage > span { position:absolute; right:9px; pointer-events:none; font-size:12px; }
.sla-time-input { display:grid; grid-template-columns:70px minmax(90px,1fr); gap:6px; max-width:240px; }
.sla-window { display:flex; align-items:flex-end; gap:16px; margin-bottom:12px; }
.sla-window-times { display:grid; grid-template-columns:120px 120px; gap:10px; }
.sla-weekdays { display:flex; flex-direction:column; gap:6px; font-size:12px; }
.sla-weekdays > div { display:flex; gap:10px; flex-wrap:wrap; min-height:34px; align-items:center; }
.sla-weekdays label { flex-direction:row; align-items:center; gap:4px; font-weight:400; }
.sla-weekdays input { accent-color:#17868c; margin:0; }
.sla-help { display:block; margin-top:8px; }
.sla-table-scroll { width:100%; overflow-x:auto; }
.sla-targets { width:100%; min-width:660px; border-collapse:collapse; }
.sla-targets th, .sla-targets td { padding:8px 10px; border-bottom:1px solid var(--line); font-size:12px; text-align:left; vertical-align:middle; }
.sla-targets th { font-weight:500; }
.sla-targets thead { color:var(--muted); }
.sla-targets th:first-child { width:70px; padding-left:0; white-space:nowrap; }
.sla-targets td:nth-child(3), .sla-targets td:nth-child(5) { width:120px; }
.sla-recovery { max-width:320px; }
.sla-availability-display { display:flex; gap:20px; align-items:baseline; font-size:12px; }
.sla-availability-display span:last-child { white-space:pre-wrap; overflow-wrap:anywhere; }
.sla-window-display { display:flex; gap:20px; flex-wrap:wrap; padding:6px 0; }
.sla-window-display strong { min-width:110px; font-weight:500; }
.sla-section .sla-legacy-display { white-space:pre-wrap; margin-top:10px; }
@media(max-width:700px) { .sla-availability { grid-template-columns:1fr; } .sla-window { flex-wrap:wrap; align-items:flex-start; gap:10px; } .sla-weekdays { flex-basis:100%; order:3; } .sla-availability-display { flex-direction:column; gap:8px; } }

.contract-licenses fieldset,.supplier-detail-page fieldset { padding:0; margin:0 0 16px; border:0; min-width:0; }
.license-entry { padding:12px 0 20px; margin-bottom:12px; border-bottom:1px solid var(--line); }
.license-entry h4 { margin:0 0 12px; font-size:13px; }
.license-toolbar { display:flex; align-items:end; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.license-toolbar label { display:grid; gap:6px; min-width:180px; font-size:12px; font-weight:600; }
.license-toolbar select { padding:9px 12px; border:1px solid var(--line); border-radius:6px; background:#fff; color:inherit; }
.license-toolbar p { flex:1; margin:0; color:var(--muted); font-size:12px; }
.license-toolbar button { display:flex; gap:8px; align-items:center; }
.license-toolbar svg,.license-detail-heading svg { width:15px; height:15px; }
.license-totals { display:grid; grid-template-columns:1fr 1fr 2fr; gap:16px; padding:18px 22px; background:white; border:1px solid var(--line); border-radius:10px; }
.license-totals > div { display:grid; gap:6px; align-content:start; }
.license-totals span,.license-totals small,.license-explanation { font-size:12px; color:var(--muted); }
.license-totals strong { font-size:21px; font-weight:600; }
.license-explanation { margin:14px 0 18px; line-height:1.6; }
.license-overview-columns { display:grid; grid-template-columns:minmax(150px,1.5fr) minmax(120px,1.25fr) repeat(2,minmax(90px,1fr)) repeat(2,minmax(95px,1fr)) minmax(100px,1fr); gap:14px; align-items:start; padding:12px 16px; font-size:12px; overflow-wrap:anywhere; }
.license-groups > .license-overview-columns { font-weight:600; color:var(--muted); padding-bottom:10px; }
.license-group.panel { padding:0; margin-bottom:10px; }
.license-group summary { cursor:pointer; list-style:none; min-height:76px; align-items:center; border-radius:10px; }
.license-group summary::-webkit-details-marker { display:none; }
.license-group summary:hover { background:#f2f7f7; }
.license-group summary:focus-visible { outline:2px solid #16828a; outline-offset:2px; }
.license-group small { display:block; font-size:11px; color:var(--muted); margin-top:4px; line-height:1.4; }
.license-product { display:flex; align-items:center; gap:8px; }
.license-product > svg { width:16px; height:16px; flex:none; transition:transform .15s; }
.license-group[open] .license-product > svg { transform:rotate(90deg); }
.license-quantity { display:block; margin-bottom:4px; }
.license-value { text-align:right; font-weight:600; }
.license-expanded { border-top:1px solid var(--line); padding:16px; }
.license-detail-heading { display:flex; gap:12px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.license-detail-heading h3 { font-size:14px; margin:0; }
.license-detail-heading button { display:flex; align-items:center; gap:8px; font-size:12px; }
.license-overused { color:#ad332b; font-weight:600; }
.license-usage { display:grid; gap:5px; min-width:0; width:100%; max-width:260px; margin-top:6px; font-size:11px; }
.license-usage-label { display:flex; flex-wrap:wrap; align-items:baseline; gap:3px 8px; }
.license-usage-label b { color:#233e48; font-variant-numeric:tabular-nums; }
.license-usage .license-usage-label small { margin:0; font-size:10px; color:#526873; }
.license-usage-track { position:relative; display:block; height:10px; width:100%; border-radius:6px; background:#e5ebed; overflow:hidden; }
.license-usage-fill { display:block; height:100%; border-radius:inherit; background-image:linear-gradient(to right,rgba(255,255,255,.22),rgba(255,255,255,0)); transition:width .45s ease,background-color .6s ease; }
.license-usage-threshold { position:absolute; top:0; bottom:0; width:1px; background:rgba(35,62,72,.4); }
.usage-over .license-usage-label b,.usage-over .license-usage-label small { color:#791526; font-weight:600; }
.license-usage-unknown { display:block; font-size:11px; color:#526873; margin-top:5px; }
.license-usage-legend { color:#526873; font-size:11px; line-height:1.6; margin:10px 0; }
.license-entry > .license-usage { margin-top:14px; }
.license-management{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start}
.license-commercial-dialog{display:flex!important;flex-direction:column;gap:18px;width:calc(100vw - 32px)!important;max-width:1060px!important;max-height:calc(100dvh - 40px);overflow:auto;background:#fff!important;color:var(--ink)}
.license-commercial-dialog>[data-slot="dialog-header"]{padding-right:28px;text-align:left;flex-shrink:0}
.license-commercial-tabs{display:flex;flex-wrap:wrap;gap:5px;border-bottom:1px solid var(--line);padding-bottom:10px;flex-shrink:0}
.license-commercial-tabs button{padding:9px 12px;border:1px solid transparent;border-radius:6px;color:#47616c;background:#f3f6f7;font-size:12px;cursor:pointer}
.license-commercial-tabs button[aria-current="page"]{color:#fff;background:#126a72;border-color:#126a72}
.license-commercial-body{min-width:0}.license-commercial-body h3{font-size:16px;margin:20px 0 12px}.license-commercial-body h3:first-child{margin-top:0}.license-commercial-body h4{font-size:13px;margin:18px 0 8px}
.license-commercial-body p,.license-commercial-body li{font-size:13px;line-height:1.6}.license-commercial-body fieldset{border:0;padding:0;margin:0;min-width:0}
.license-commercial-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.license-commercial-heading h3{margin:0}
.license-commercial-fields,.license-commercial-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.license-commercial-fields label,.license-commercial-tier label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600;min-width:0}
.license-commercial-fields input,.license-commercial-fields select,.license-commercial-fields textarea,.license-commercial-tier input{width:100%;min-width:0;background:#fff;color:var(--ink);border:1px solid #cbd5dc;border-radius:6px;padding:10px;font:inherit;font-weight:400;min-height:40px}
.license-commercial-fields small,.license-commercial-help{font-size:12px!important;color:#526873;font-weight:400}.license-commercial-wide{grid-column:1/-1}
.license-commercial-tier{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:12px;align-items:end;margin:12px 0}
.license-commercial-facts{margin:16px 0}.license-commercial-facts>div{padding:10px 0;border-bottom:1px solid var(--line);min-width:0}.license-commercial-facts dt{font-size:11px;color:#526873;margin-bottom:5px}.license-commercial-facts dd{margin:0;font-size:13px;overflow-wrap:anywhere}
.license-commercial-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:12px;margin:16px 0}.license-commercial-stats>div{background:#f2f7f8;border:1px solid #dce9eb;border-radius:8px;padding:15px;min-width:0}.license-commercial-stats span{display:block;font-size:11px;color:#526873;margin-bottom:8px}.license-commercial-stats strong{display:block;font-size:20px;color:#126a72;overflow-wrap:anywhere}
.license-commercial-note p{white-space:pre-wrap}.license-commercial-warnings{margin:14px 0;padding:14px 18px 14px 34px;border:1px solid #edd19b;background:#fff9ec;border-radius:7px;color:#76541a}.license-commercial-source{background:#f2f7f8;padding:13px;border-radius:7px}.license-commercial-source b{display:block}
.license-commercial-record{border:1px solid var(--line);border-radius:7px;margin:12px 0;padding:15px;font-size:13px;min-width:0;overflow-wrap:anywhere}.license-commercial-record summary{cursor:pointer}.license-commercial-record summary span{display:block;font-size:12px;margin-top:6px;color:#526873}.license-commercial-record small{display:block;color:#526873;margin-bottom:12px}.license-commercial-record .action-button{display:inline-flex;margin-top:8px}
.license-commercial-dialog footer{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:20px}.license-commercial-dialog .form-error p{margin:0 0 10px}
@media(max-width:650px){.license-commercial-dialog{padding:18px;max-height:calc(100dvh - 24px)}.license-commercial-fields,.license-commercial-facts{grid-template-columns:minmax(0,1fr)}.license-commercial-tier{grid-template-columns:minmax(0,1fr)}.license-commercial-tabs button{flex:1 1 130px}.license-commercial-stats strong{font-size:18px}}
.license-management>.action-button{font-size:11px;padding:6px 8px;min-height:30px}
.license-action-dialog{grid-template-columns:minmax(0,1fr);width:calc(100vw - 32px)!important;max-width:860px!important;max-height:calc(100dvh - 40px);overflow:auto;background:#fff;color:var(--ink)}
.license-action-dialog>[data-slot="dialog-header"]{text-align:left;padding-right:28px}
.license-action-dialog>form{min-width:0}
.license-current-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:16px;background:#f2f7f7;border-radius:8px;margin:0}
.license-current-totals dt{font-size:12px;color:#526873}.license-current-totals dd{margin:5px 0 0;font-size:22px;font-weight:600;overflow-wrap:anywhere}
.license-volume-field{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600}
.license-volume-field input{width:100%;padding:10px 12px;border:1px solid #cbdcde;border-radius:7px;background:#fff;font:inherit}
.license-volume-preview,.license-history-help{font-size:12px;line-height:1.7;color:#526873;margin:8px 0}
.license-action-success{color:#126a72;background:#edf8f4;padding:12px 14px;border-radius:7px;font-size:13px;margin:0}
.license-action-dialog footer{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:18px}
.license-action-dialog .license-history-table{width:100%;min-width:0;margin:0;overflow:auto}
.license-action-dialog .license-history-table table{width:100%;min-width:0;table-layout:fixed}
.license-action-dialog .license-history-table :is(th,td){font-size:12px;white-space:normal;overflow-wrap:anywhere;text-align:left;padding:10px 8px;vertical-align:top}
@media(max-width:600px){.license-action-dialog{padding:18px}.license-history-table thead{display:none}.license-history-table tr{display:grid;grid-template-columns:minmax(0,1fr);padding:10px 0;border-bottom:1px solid var(--line)}.license-history-table td{display:block;border:0}.license-history-table td:before{content:attr(data-label);display:block;font-size:10px;color:#526873;margin-bottom:4px}}
@media(max-width:1100px) {
 .license-groups > .license-overview-columns { display:none; }
 .license-group summary { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
 .license-group summary > [data-label]::before { content:attr(data-label); display:block; color:var(--muted); font-weight:400; font-size:11px; margin-bottom:5px; }
 .license-product { grid-column:1 / -1; }
 .license-value { text-align:left; }
}
@media(max-width:600px) {
 .license-totals { grid-template-columns:1fr 1fr; }
 .license-totals > div:last-child { grid-column:1 / -1; }
 .license-group summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .license-toolbar label { width:100%; }
}
.financial-summary-scroll { overflow-x:auto; }
.financial-summary-table { width:100%; min-width:640px; border-collapse:collapse; }
.financial-summary-table th,.financial-summary-table td { text-align:left; padding:8px 12px; border-bottom:1px solid var(--line); font-size:12px; }
.financial-summary-table .invoice-amount { text-align:right; white-space:nowrap; }
.financial-summary-table td small { display:block; margin-top:4px; color:var(--muted); font-size:11px; }
.finance-contract-link { border:1px solid var(--line); background:white; color:var(--ink); font:inherit; font-weight:500; border-radius:4px; padding:4px 8px; cursor:pointer; text-align:left; }
.finance-contract-link:hover { background:#f0f5f5; }
.financial-summary-help { display:block; margin-top:12px; font-size:11px; color:var(--muted); }
.supplier-detail-page { width:100%; min-width:0; }
.supplier-detail-heading h2 { margin:0 0 16px; }
.supplier-general { padding-bottom:24px; border-bottom:1px solid var(--line); }
.supplier-general-scroll { width:100%; overflow-x:auto; }
.supplier-general-row { display:grid; grid-template-columns:minmax(180px,1.4fr) minmax(180px,1.4fr) 90px minmax(140px,1fr) minmax(160px,1fr); gap:20px; margin:0; min-width:900px; }
.supplier-general-row dt { color:var(--muted); font-size:11px; margin-bottom:5px; }
.supplier-general-row dd { margin:0; font-size:13px; overflow-wrap:anywhere; }
.supplier-general-edit label,.supplier-certification-row label { display:flex; flex-direction:column; gap:6px; font-size:12px; }
.supplier-detail-page input { width:100%; min-width:0; padding:8px 10px; font:inherit; font-size:12px; border:1px solid var(--line); border-radius:5px; }
.supplier-certifications { margin-top:24px; }
.supplier-certification-row { display:flex; gap:12px; align-items:flex-end; margin-bottom:12px; max-width:640px; }
.supplier-certification-row label { flex:1; }
.supplier-certification-list { margin:0; padding-left:20px; font-size:13px; }
.supplier-certification-list li { margin:8px 0; }

/* Reflow to the space inside each page, including the sidebar and dossier. */
.shell { overflow-wrap: anywhere; }
.shell :is(label, fieldset) { min-width: 0; }
.shell main { min-width: 0; container: workspace / inline-size; }
.shell > aside { max-height: 100dvh; overflow-y: auto; z-index: 30; }
.shell nav button { min-width: 0; }
.shell nav svg, .shell nav em { flex-shrink: 0; }
.shell .sidebar-label { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; }
.shell .pacta-brand-subtitle { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.shell aside footer { overflow-wrap: anywhere; }
.sidebar-resize-handle { position: fixed; inset: 0 auto 0 calc(var(--sidebar-width, 245px) - 7px); width: 14px; z-index: 31; display: grid; place-items: center; cursor: col-resize; touch-action: none; user-select: none; }
.sidebar-resize-handle::before { content: ""; position: absolute; inset: 0 auto 0 6px; width: 2px; background: #4ac1bf; opacity: .2; }
.sidebar-resize-handle > svg { position: relative; width: 14px; height: 30px; padding: 2px 0; border: 1px solid #315364; border-radius: 6px; background: #17475a; color: #b4d8de; }
.sidebar-resize-handle:hover::before, .sidebar-resize-handle:focus-visible::before, .shell[data-sidebar-resizing="true"] .sidebar-resize-handle::before { opacity: 1; }
.sidebar-resize-handle:focus-visible { outline: 2px solid #4ac1bf; outline-offset: -2px; }
.shell[data-sidebar-resizing="true"], .shell[data-sidebar-resizing="true"] * { cursor: col-resize !important; user-select: none !important; }
.shell[data-sidebar-compact="true"] > aside { padding: 20px 9px; }
.shell[data-sidebar-compact="true"] .pacta-brand { padding: 0 3px 20px; align-items: center; }
.shell[data-sidebar-compact="true"] .pacta-logo { width: 40px; height: 46px; aspect-ratio: auto; }
.shell[data-sidebar-compact="true"] .pacta-logo img { width: 186px; max-width: none; }
.shell[data-sidebar-compact="true"] :is(.sidebar-label, .pacta-brand-subtitle), .shell[data-sidebar-compact="true"] aside footer { display: none; }
.shell[data-sidebar-compact="true"] nav button { position: relative; justify-content: center; padding: 12px; gap: 0; }
.shell[data-sidebar-compact="true"] nav button svg { width: 20px; height: 20px; }
.shell[data-sidebar-compact="true"] nav em { position: absolute; top: 1px; right: 0; margin: 0; padding: 1px 4px; font-size: 9px; }
.shell :is(.content, .panel, .module-page, .grid > *, .split > *, .audit-layout > *, .form > *, .metadata-grid > *, .settings-form > *, .role-head > *, .assignment-card > *) { min-width: 0; }
.shell :is(input, select, textarea) { min-width: 0; max-width: 100%; }
.shell :is(p, h1, h2, h3, h4, dd, dt, small, .person, .assignment-card, .auth-info, .context-note, .task, .record, .grouphead) { overflow-wrap: anywhere; }
.shell :is(.actions, .drawer-actions, .viewbar, .metadata-tabs, .toolbar, .settings-heading, .heading, .module-top, .contract-finance-heading, .service-level-heading) { flex-wrap: wrap; }
.shell :is(.viewbar, .metadata-tabs, .toolbar) { overflow: visible; }
.shell .viewbar button { font-size: 12px; white-space: normal; }
.shell :is(.primary, .metadata-tabs button, .toolbar button) { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.shell :is(.primary svg, .viewbar svg, .metadata-tabs svg, .toolbar svg, .module-symbol, .auth-info > svg) { flex-shrink: 0; }
.shell .title { height: auto; min-height: 58px; padding: 12px 18px; gap: 12px; flex-wrap: wrap; }
.shell .title h2 { min-width: 0; overflow-wrap: anywhere; }
.shell .grid { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
.shell .split { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
.shell .metrics { grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }
.shell .summary-strip { grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); }
.shell :is(.form, .settings-form, .type-copy, .role-head) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.shell .reminder-editor .form, .shell .supplier-contact-editor .form { grid-template-columns: minmax(0, 1fr); }
.shell .drawer .metadata-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.shell :is(.permission-grid, .utilization-options, .relation-grid, .signal-board) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.shell .utilization-total { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.shell .type-list > div, .shell .add-type { flex-wrap: wrap; gap: 10px; }
.shell .type-copy { min-width: min(100%, 200px); }
.shell .number-preview { min-width: 0; max-width: 100%; }
.shell .contract-utilization > div:first-child { flex-wrap: wrap; }
.shell .customer-contact-options { min-width: 0; max-width: 100%; }
.shell .sla-window { flex-wrap: wrap; }
.shell .sla-availability { grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); }
.shell .sla-window-times { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 100%; }
.shell .sla-time-input { grid-template-columns: minmax(0, .7fr) minmax(0, 1fr); max-width: 100%; }
.shell .sla-recovery { max-width: 100%; }
.shell .supplier-certification-row { max-width: 100%; }
.shell .supplier-certification-row label { min-width: 0; }
.shell .supplier-general-scroll { overflow: visible; }
.shell .supplier-general-row { min-width: 0; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); }
.shell .supplier-general-row > * { min-width: 0; }
.shell .activity-filters { display: flex; flex-wrap: wrap; gap: 4px; overflow: visible; align-content: start; }
.shell .activity-filters > b { display: block; flex-basis: 100%; }
.shell .activity-filters button { flex: 1 1 160px; width: auto; white-space: normal; gap: 12px; text-align: left; }
.shell .audit-layout { grid-template-columns: minmax(160px, 220px) minmax(0, 1fr); }
.shell .activity-changes dd, .shell .stored-mail-body { overflow-wrap: anywhere; }
.shell .record { grid-template-columns: 40px minmax(0, 1fr) minmax(0, .7fr) minmax(0, .5fr) 32px; }
.shell .record :is(small, label, button) { display: block; }
.shell .reminder-list > button { grid-template-columns: 90px minmax(0, 1fr) minmax(0, .6fr) minmax(0, .4fr) 24px; }
.shell .reminder-list > button > * { min-width: 0; overflow-wrap: anywhere; }
.shell .signal > p { min-width: 0; overflow-wrap: anywhere; }
.shell .signal > time { flex-shrink: 0; }

/* Tables retain every field and action; narrower containers show labelled rows. */
:is(.table, .document-table, .invoice-table-wrap, .contract-invoice-table, .financial-summary-scroll, .supplier-contact-table-wrap, .sla-table-scroll, .auth-scroll, .panel:has(> .auth-table)) {
  container: data-table / inline-size;
  min-width: 0;
  max-width: 100%;
  overflow: visible;
}
.shell :is(.table table, .document-table table, .invoice-table, .contract-invoice-table table, .financial-summary-table, .supplier-contact-table, .sla-targets, .auth-table) { min-width: 0; width: 100%; table-layout: fixed; }
.shell .contract-table.dashboard.with-customer table { min-width: 0; }
:is(.table, .document-table, .invoice-table-wrap, .contract-invoice-table, .financial-summary-scroll, .supplier-contact-table-wrap, .sla-table-scroll, .auth-scroll, .panel:has(> .auth-table)) :is(th, td) { min-width: 0; overflow-wrap: anywhere; white-space: normal; }
.shell .contract-table .contract-row > .contract-value-cell { white-space: normal; }
.shell .supplier-contract-overview { min-width: 0; max-width: 100%; overflow: visible; container: contract-groups / inline-size; }
.shell .supplier-contract-overview > .groups { min-width: 0; }
.shell .supplier-list-wrap { container: supplier-list / inline-size; overflow: visible; min-width: 0; }
.shell :is(.supplier-list, .supplier-list-head, .supplier-row) { min-width: 0; }
.shell :is(.supplier-list-head, .supplier-row) { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.4fr) minmax(0, .6fr) minmax(0, 1fr) minmax(0, 1fr); }
.shell .supplier-row span { white-space: normal; overflow: visible; overflow-wrap: anywhere; }
.shell .activity-overview { container: activity-list / inline-size; min-width: 0; max-width: 100%; overflow: visible; }
.shell :is(.activity-row-header, .activity-row) { min-width: 0; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, .8fr) minmax(0, 1.2fr) minmax(0, 1.6fr); gap: 12px; }
.shell .activity-overview[data-show-tenant="false"] :is(.activity-row-header, .activity-row) { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1.6fr); }
.shell .activity-row-content { min-width: 0; }
.shell .activity-row > :is(span, time) { white-space: normal; overflow: visible; overflow-wrap: anywhere; }
.shell .stored-mail-list { container: mail-list / inline-size; min-width: 0; overflow: visible; }
.shell :is(.stored-mail-item, .stored-mail-row) { min-width: 0; }
.shell .stored-mail-item > summary { grid-template-columns: minmax(0, .8fr) minmax(0, .6fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, .9fr); }
.shell .stored-mail-item > summary > * { min-width: 0; white-space: normal; overflow: visible; overflow-wrap: anywhere; }
.shell .stored-mail-item > summary > b { font-weight: 600; }
.shell .account-menu { min-width: 0; flex-shrink: 1; }
.shell .account-link { max-width: 100%; flex-wrap: wrap; }
.shell .account-name { min-width: 0; overflow-wrap: anywhere; }
.shell .account-menu svg { flex-shrink: 0; }
.shell :is(.scope, .search) { min-width: 0; }
.shell .scope select { max-width: 100%; }
.shell .search svg { flex-shrink: 0; }
.shell .account-dropdown { max-width: calc(100vw - 100px); }

@container workspace (max-width: 1050px) {
  .shell :is(.grid, .split, .audit-layout) { grid-template-columns: minmax(0, 1fr); }
}
@container workspace (max-width: 700px) {
  .shell main > header { height: auto; min-height: 70px; padding: 12px 14px; gap: 12px; flex-wrap: wrap; }
  .shell .scope { flex: 1 1 90px; }
  .shell .scope span { display: block; }
  .shell .account-menu { flex: 1 1 90px; }
  .shell .account-link { margin-left: auto; font-size: 12px; padding: 6px; }
  .shell .bell { flex: 0 0 24px; margin-left: 0; }
  .shell .search { order: 4; flex: 1 1 100%; max-width: none; }
  .shell .content { padding: 22px 14px; }
  .shell :is(.heading, .settings-heading, .module-top) { gap: 12px; align-items: center; }
  .shell :is(.heading .primary, .module-top .primary) { font-size: 13px; }
  .shell .module-top > div:not(.module-symbol) { min-width: 0; flex: 1 1 160px; }
  .shell .module-top .primary { margin-left: 0; }
  .shell .assignment-card, .shell .user-editor .assignment-card { grid-template-columns: minmax(0, 1fr); }
  .shell .reminder-list > button { grid-template-columns: minmax(0, 1fr) 24px; gap: 8px; }
  .shell .reminder-list > button > :not(svg) { grid-column: 1; }
  .shell .reminder-list > button > svg { grid-column: 2; grid-row: 1; }
  .shell .reminder-list em { justify-self: start; }
  .shell .record { grid-template-columns: 36px minmax(0, 1fr); }
  .shell .record > :not(i) { grid-column: 2; }
  .shell .record > i { grid-row: 1; }
  .shell .record label { justify-self: start; }
  .shell .toolbar > span { display: block; flex-basis: 100%; }
  .shell .settings-topic-status { white-space: normal; }
}
@container data-table (max-width: 900px) {
  .shell :is(.table table, .document-table table, .invoice-table, .contract-invoice-table table, .financial-summary-table, .supplier-contact-table, .sla-targets, .auth-table) { display: block; table-layout: auto; }
  :is(.table, .document-table, .invoice-table-wrap, .contract-invoice-table, .financial-summary-scroll, .supplier-contact-table-wrap, .sla-table-scroll, .auth-scroll, .panel:has(> .auth-table)) thead {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
  }
  .table colgroup { display: none; }
  :is(.table, .document-table, .invoice-table-wrap, .contract-invoice-table, .financial-summary-scroll, .supplier-contact-table-wrap, .sla-table-scroll, .auth-scroll, .panel:has(> .auth-table)) tbody { display: block; }
  :is(.table, .document-table, .invoice-table-wrap, .contract-invoice-table, .financial-summary-scroll, .supplier-contact-table-wrap, .sla-table-scroll, .auth-scroll, .panel:has(> .auth-table)) tbody > tr {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 8px 16px; padding: 14px 18px; border-bottom: 1px solid var(--line);
  }
  :is(.table, .document-table, .invoice-table-wrap, .contract-invoice-table, .financial-summary-scroll, .supplier-contact-table-wrap, .sla-table-scroll, .auth-scroll, .panel:has(> .auth-table)) tbody > tr > :is(td, th) {
    display: block; width: auto; height: auto; min-width: 0; padding: 0; border: 0; font-size: 12px; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; text-align: left;
  }
  :is(.table, .document-table, .invoice-table-wrap, .contract-invoice-table, .financial-summary-scroll, .supplier-contact-table-wrap, .sla-table-scroll, .auth-scroll, .panel:has(> .auth-table)) tbody [data-label]::before {
    content: attr(data-label); display: block; margin-bottom: 3px; color: #607984; font-size: 10px; line-height: 1.4; font-weight: 500; letter-spacing: 0; text-transform: none; text-align: left;
  }
  .shell .contract-table .contract-row > td { height: auto; padding: 0; }
  .shell .contract-table .contract-row > .contract-name-cell { grid-column: 1 / -1; }
  .shell .contract-table .contract-row > .contract-value-cell { text-align: right; white-space: normal; }
  .shell .contract-table.customer .contract-row > td:empty { display: none; }
  .shell .contract-table .contract-row :is(label, .document-folder-count) { max-width: 100%; }
  .shell .contract-table .contract-row label { height: auto; white-space: normal; }
  .shell .contract-table .contract-row { background: #fff; }
  .shell .contract-table .contract-child-row { background: #f8fbfc; }
  .shell .contract-table .contract-row > td { background: transparent; }
  .shell .contract-table .contract-row:hover { background: #f0f7f8; }
  .shell .contract-table .contract-tree-name { min-width: 0; }
  .shell .sla-targets tbody > tr > th { grid-column: 1 / -1; font-weight: 650; }
  .shell .document-table .actions { justify-content: flex-start; margin: 0; padding: 0; border: 0; }
}
@container contract-groups (max-width: 940px) {
  .supplier-contract-overview > .groups > .contract-table { display: none; }
  .customer-supplier-group > .customer-group-heading { grid-template-columns: minmax(0, 1fr); }
  .customer-supplier-group > .customer-group-heading > span { grid-column: 1; }
}
@container supplier-list (max-width: 850px) {
  .supplier-list-head { display: none; }
  .shell .supplier-row { grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 10px 16px; padding: 14px; }
  .supplier-row > span::before { content: attr(data-label); display: block; font-size: 10px; color: #607984; margin-bottom: 3px; }
  .supplier-row > span:first-child { grid-column: 1 / -1; }
}
@container activity-list (max-width: 1050px) {
  .activity-row-header { display: none; }
  .shell .activity-overview[data-show-tenant] .activity-row { grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); padding: 12px 14px; gap: 8px 16px; }
  .activity-row > [data-label]::before { content: attr(data-label); display: block; color: #607984; font-size: 10px; margin-bottom: 3px; }
  .activity-row > .activity-specification { grid-column: 1 / -1; }
}
@container mail-list (max-width: 1000px) {
  .shell .stored-mail-item > summary { grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); }
  .stored-mail-item > summary > [data-label]::before { content: attr(data-label); display: block; font-size: 10px; font-weight: 400; color: #607984; margin-bottom: 3px; }
  .stored-mail-item > summary > [data-label="Onderwerp"] { grid-column: 1 / -1; }
}
@media (max-width: 1000px) {
  .shell > aside { width: 72px; padding: 20px 9px; }
  .shell .sidebar-resize-handle, .shell .sidebar-label { display: none; }
  .shell main { margin-left: 72px; }
  .shell .pacta-brand { padding: 0 3px 20px; }
  .shell .pacta-logo { width: 40px; height: 46px; aspect-ratio: auto; }
  .shell .pacta-logo img { width: 186px; max-width: none; }
  .shell .pacta-brand-subtitle, .shell aside footer { display: none; }
  .shell nav button { position: relative; font-size: 0; justify-content: center; padding: 12px; gap: 0; }
  .shell nav button svg { width: 20px; height: 20px; flex-shrink: 0; }
  .shell nav em { display: block; position: absolute; top: 1px; right: 0; margin: 0; padding: 1px 4px; font-size: 9px; }
}
@media (max-width: 600px) {
  .shell :is(.settings-card, .drawer.contract-dossier, .modal) { padding: 16px; }
  .shell .document-filters select { min-width: 0; }
  .shell .date-popover { position: fixed; top: 50%; left: calc(50% + 36px); transform: translate(-50%, -50%); width: calc(100vw - 100px); max-width: 360px; max-height: calc(100dvh - 32px); overflow-y: auto; padding: 8px; }
  .shell .date-popover .rdp-root { --rdp-day-width: 24px; --rdp-day-height: 28px; --rdp-day_button-width: 24px; --rdp-day_button-height: 28px; --rdp-months-gap: 0; font-size: 11px; }
  .shell .date-popover .rdp-months { max-width: 100%; }
  .shell .activity-changes dl { grid-template-columns: minmax(0, 1fr); }
  .shell .supplier-certification-row { flex-wrap: wrap; }
}

.shell .settings-topic > summary { flex-wrap: wrap; }
.shell .settings-topic > summary > div:first-child { min-width: 0; overflow-wrap: anywhere; }

.calendar-period-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(90px, .65fr); gap: 8px; }
.calendar-period-fields > :is(input, select) { min-width: 0; width: 100%; }

.notice-standard-list { display: grid; gap: 12px; margin-bottom: 16px; }
.notice-standard-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 32px; gap: 16px; align-items: end; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.notice-standard-field { display: grid; gap: 6px; font-size: 12px; min-width: 0; }
.notice-standard-row > .icon-action { align-self: end; margin-bottom: 4px; }
.settings-fields .notice-standard-field :is(input, select) { min-width: 0; padding: 9px 10px; border: 1px solid #ccdadd; border-radius: 5px; background: white; color: var(--ink); font: inherit; }
@media (max-width: 700px) {
  .notice-standard-row { grid-template-columns: minmax(0, 1fr) 32px; gap: 10px; }
  .notice-standard-field { grid-column: 1; }
  .notice-standard-row > .icon-action { grid-column: 2; grid-row: 1 / 3; align-self: center; }
}

.contract-actions .contract-finance-heading{gap:12px;flex-wrap:wrap}
.contract-action-editor{margin:16px 0;padding:16px;border:1px solid var(--border,#e2e8f0);border-radius:8px}
.contract-action-editor fieldset{border:0;padding:0;margin:0;min-width:0}
.contract-action-comment{grid-column:1 / -1}
.contract-action-entry{padding:12px 0;border-bottom:1px solid #e2e8f0}
.contract-action-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.contract-action-row>div:first-child{min-width:0;overflow-wrap:anywhere}
.contract-action-row span{display:block;font-size:12px;color:#64748b;margin-top:4px}
.contract-action-buttons{display:flex;flex-shrink:0;gap:4px}
.contract-action-entry details{font-size:13px;margin-top:8px}
.contract-action-entry summary{cursor:pointer;color:#334155}
.contract-action-note{margin:10px 0;padding:8px 12px;background:#f8fafc;border-radius:6px}
.contract-action-note p{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0}
.contract-action-entry .actions{flex-wrap:wrap}

.system-settings .panel{padding:20px;margin-bottom:16px}
.system-discipline-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:16px 0}
.system-discipline-form label{display:grid;gap:6px;font-size:13px}
.system-discipline-form .system-active{display:flex;align-items:center;gap:8px;padding:10px}
.system-discipline-form .system-active input{width:auto}
.system-discipline-row{display:grid;grid-template-columns:minmax(0,1fr) 80px auto;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid #e2e8f0}
.system-discipline-row>span{overflow-wrap:anywhere}
.system-discipline-row>div{display:flex;gap:6px}
.branch-form{padding:16px;border:1px solid var(--line);border-radius:8px;background:#f7fafb}
.branch-module-choices{flex-basis:100%;border:0;padding:8px 0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.branch-module-choices legend{font-size:13px;font-weight:650;margin-bottom:10px}
.branch-module-choices label{display:flex;align-items:center;gap:8px;font-size:13px}
.branch-module-choices input{width:auto;accent-color:var(--teal)}
.branch-hint{flex-basis:100%;font-size:12px;color:var(--muted);margin:0}
.branch-module-summary{display:block;font-size:12px;font-weight:400;color:#607984;line-height:1.7;margin-top:5px}
.tenant-branch-settings{margin-bottom:20px}
.tenant-branch-settings h2{font-size:20px;margin:0 0 12px}
.tenant-branch-settings label{display:grid;gap:8px;font-size:13px;max-width:420px;margin-top:16px}
.tenant-branch-settings select{padding:10px;border:1px solid #ccdadd;border-radius:6px;background:white;color:var(--ink);font:inherit}
.system-discipline-row .system-delete-confirm{grid-column:1 / -1;flex-wrap:wrap}
.system-history{font-size:12px;border-bottom:1px solid #e2e8f0;padding:8px 0;overflow-wrap:anywhere}
.system-history summary{cursor:pointer}
.system-history pre{white-space:pre-wrap}

/* Typed dates alongside the existing calendar in the new-contract dialog. */
.date-field .date-text-input { width: 100%; min-height: 39px; margin: 0; padding: 7px 62px 7px 10px; border: 1px solid #ccdadd; border-radius: 7px; background: #fff; color: var(--ink); font: inherit; }
.date-field .date-text-input:focus { border-color: var(--teal); outline-color: var(--teal); }
.date-field .date-text-input[aria-invalid="true"] { border-color: #b42318; }
.date-calendar-toggle { position: absolute; top: 8px; right: 7px; display: flex; padding: 3px; border: 0; background: transparent; color: #347882; cursor: pointer; }
.date-field > .form-error { display: block; margin-top: 4px; }
.contract-timeline {
  --timeline-accent: #137553;
  --timeline-tint: #eef8f2;
  border: 1px solid #d7e3e3;
  border-radius: 12px;
  padding: 20px;
  margin: 12px 0 24px;
  background: #fff;
}
.contract-timeline.timeline-warning { --timeline-accent: #9b4e08; --timeline-tint: #fff5e7; }
.contract-timeline:is(.timeline-urgent, .timeline-overdue) { --timeline-accent: #b42332; --timeline-tint: #fff0f1; }
.contract-timeline.timeline-unknown { --timeline-accent: #546873; --timeline-tint: #f1f5f6; }
.timeline-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.drawer .timeline-heading h4 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 15px; color: #233e48; }
.timeline-heading .action-button { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; }
.timeline-summary { display: grid; gap: 5px; margin-top: 16px; padding: 14px 16px; border-radius: 8px; color: var(--timeline-accent); background: var(--timeline-tint); transition:color .6s ease,background-color .6s ease; }
.timeline-summary strong { font-size: 17px; line-height: 1.4; }
.timeline-summary > span { font-size: 12px; line-height: 1.5; }
.timeline-mode { font-weight: 600; }
.timeline-dates { display: grid; gap: 12px; margin: 16px 0; }
.timeline-dates dt { font-size: 11px; color: #526873; margin-bottom: 6px; }
.timeline-dates dd { margin: 0; font-size: 14px; font-weight: 650; line-height: 1.5; color: #233e48; }
.timeline-dates .timeline-deadline-date dd { color: var(--timeline-accent); }
.timeline-visual { padding: 10px 6px 0; }
.timeline-zoom { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; }
.timeline-zoom .action-button { display: inline-flex; align-items: center; justify-content: center; min-height: 32px; font-size: 11px; padding: 6px 9px; }
.timeline-zoom > span { min-width: 28px; text-align: center; color: #526873; font-size: 12px; font-variant-numeric: tabular-nums; }
.timeline-zoom button:disabled { opacity: .4; cursor: default; }
.timeline-scroll { overflow-x: auto; overscroll-behavior-x: contain; scrollbar-color: #899faa #edf3f5; padding: 4px 0 8px; }
.timeline-scroll:focus-visible { outline: 2px solid #126f80; outline-offset: 4px; }
.timeline-canvas { box-sizing: border-box; padding: 0 18px; }
.timeline-rail { position: relative; }
.timeline-action-pin { position: absolute; width: 28px; transform: translateX(-50%); z-index: 4; display: flex; align-items: center; flex-direction: column; }
.timeline-action-pin button { background: #2168ad; color: #fff; border: 2px solid #fff; border-radius: 6px; width: 28px; height: 28px; padding: 0; font-size: 11px; font-weight: 700; cursor: pointer; box-shadow: 0 0 0 1px #2168ad; }
.timeline-action-pin button:is(:hover, .selected) { background: #143f73; box-shadow: 0 0 0 2px #2168ad; }
.timeline-action-pin button:focus-visible { outline: 2px solid #213640; outline-offset: 3px; }
.timeline-action-pin > i { width: 1px; background: #2168ad; pointer-events: none; opacity: .6; }
.timeline-ticks { position: relative; height: 38px; margin-top: 6px; }
.timeline-ticks > span { position: absolute; display: grid; justify-items: center; transform: translateX(-50%); }
.timeline-ticks i { height: 5px; width: 1px; background: #899faa; }
.timeline-ticks small { font-size: 10px; margin-top: 4px; color: #526873; white-space: nowrap; }
.timeline-action-detail { border: 1px solid #c7daed; border-radius: 8px; background: #f4f8fd; padding: 14px; margin: 16px 0; font-size: 12px; }
.timeline-action-detail > div { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.timeline-action-detail article { display: grid; gap: 4px; margin: 12px 0; overflow-wrap: anywhere; }
.timeline-action-detail article span { color: #526873; }
.timeline-action-detail .action-button { font-size: 11px; }
.timeline-planned-actions { display: grid; gap: 8px; padding: 0; margin: 16px 0; list-style: none; }
.timeline-planned-actions button { display: flex; align-items: baseline; gap: 10px; text-align: left; background: #fff; border: 1px solid #d8e3eb; border-radius: 6px; padding: 8px; width: 100%; font-size: 12px; line-height: 1.5; color: #233e48; cursor: pointer; }
.timeline-planned-actions button:is(:hover, [aria-expanded="true"]) { background: #f4f8fd; border-color: #2168ad; }
.timeline-planned-actions b { flex: 0 0 auto; display: grid; place-items: center; min-width: 20px; height: 20px; border-radius: 4px; background: #2168ad; color: #fff; font-size: 10px; }
.timeline-planned-actions time { flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.timeline-planned-actions span { min-width: 0; overflow-wrap: anywhere; }
.timeline-track { position: relative; height: 14px; border-radius: 7px; background: #63ae88; isolation: isolate; }
.timeline-no-signal .timeline-track { background: #d5dfe3; }
.timeline-progress { position: absolute; top: 0; left: 0; bottom: 0; border-radius: 7px; background: #213640; opacity: .13; }
.timeline-current-marker { position: absolute; top: -10px; bottom: -6px; width: 3px; transform: translateX(-50%); background: #213640; border: 1px solid #fff; z-index: 3; }
.timeline-current-marker::before { content: ''; position: absolute; top: -5px; left: -4px; border-top: 6px solid #213640; border-left: 4px solid transparent; border-right: 4px solid transparent; }
.timeline-deadline-marker { position: absolute; top: 1px; width: 12px; height: 12px; transform: translateX(-50%) rotate(45deg); background: #b42332; border: 2px solid #fff; z-index: 2; }
.timeline-signal-marker { position: absolute; top: -7px; width: 10px; height: 10px; transform: translateX(-50%); background: #a85608; border: 2px solid #fff; border-radius: 50%; z-index: 2; }
.timeline-start-marker { position: absolute; top: -2px; bottom: -2px; width: 2px; background: #526873; z-index: 1; }
.timeline-axis { display: flex; justify-content: space-between; gap: 12px; margin-top: 12px; color: #526873; font-size: 11px; }
.timeline-legend { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 20px; color: #526873; font-size: 11px; }
.timeline-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.timeline-legend i { display: inline-block; width: 10px; height: 10px; flex: 0 0 auto; }
.timeline-legend .legend-current { width: 3px; background: #213640; margin: 0 3px; }
.timeline-legend .legend-deadline { background: #b42332; transform: rotate(45deg); width: 8px; height: 8px; }
.timeline-legend .legend-signal { background: #a85608; border-radius: 50%; width: 8px; height: 8px; }
.timeline-legend .legend-action { background: #2168ad; border-radius: 2px; }
.timeline-legend .legend-notice { background: #d75562; border-radius: 2px; }
.timeline-signals { display: grid; gap: 8px; margin: 18px 0 0; padding: 0; list-style: none; }
.timeline-signals li { display: flex; align-items: baseline; gap: 12px; font-size: 12px; line-height: 1.5; }
.timeline-signals time { color: #9b4e08; font-weight: 650; flex: 0 0 auto; }
.timeline-signals li > span { color: #526873; overflow-wrap: anywhere; }
.contract-timeline .timeline-colors, .contract-timeline .timeline-note { font-size: 11px; color: #526873; line-height: 1.6; margin: 14px 0 0; }
.timeline-simulation { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 14px 0 0; }
.timeline-simulation label { width: 220px; max-width: 100%; font-size: 12px; color: #233e48; }
.timeline-simulation label > span { display: block; margin-bottom: 6px; font-weight: 600; }
.timeline-simulation > p { flex: 1 1 180px; margin: 0; font-size: 12px; color: #526873; line-height: 1.6; }
@media (max-width: 520px) {
  .contract-timeline { padding: 16px; }
  .timeline-dates { grid-template-columns: 1fr; gap: 12px; }
  .timeline-dates > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
  .timeline-dates dt { margin-bottom: 0; }
  .timeline-dates dd { text-align: right; }
  .timeline-summary strong { font-size: 15px; }
}
.contract-appointments { margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid #d7e3e3; }
.contract-appointments h3 { display: flex; align-items: center; gap: 8px; }
.contract-appointments > p { font-size: 12px; color: #526873; line-height: 1.6; }
.appointment-preview { padding: 12px; background: #eef8f2; border-radius: 8px; font-size: 12px; line-height: 1.6; margin: 12px 0; }
.appointment-preview p { margin: 6px 0 0; color: #526873; }
.appointment-series { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 14px 0; border-top: 1px solid #e6edef; font-size: 12px; }
.appointment-series > div:first-child { flex: 1 1 220px; min-width: 0; }
.appointment-series :is(span,small) { display: block; color: #526873; margin-top: 6px; line-height: 1.5; }
.appointment-series p { white-space: pre-wrap; overflow-wrap: anywhere; margin: 8px 0 0; }
.appointment-stop { width: 100%; padding: 10px 12px; background: #fff5e7; border-radius: 8px; }
.appointment-stop p { margin: 0 0 10px; }
.appointment-stop button { margin-right: 8px; }
.timeline-all-actions { margin: 18px 0; font-size: 12px; color: #526873; }
.timeline-all-actions summary { cursor: pointer; }
@media(prefers-reduced-motion:reduce) {
 .license-usage-fill,.timeline-summary { transition:none; }
}
.overdue-signals-button { margin: 12px 16px 16px; font-size: 12px; }
.dashboard-overdue-signals { margin: 0 16px 16px; border-top: 1px solid #d7e3e3; padding-top: 14px; }
.dashboard-overdue-signals h3 { margin: 0 0 6px; font-size: 14px; color: #b42332; }
.dashboard-overdue-signals > p { font-size: 12px; color: #526873; line-height: 1.5; }

.sla-recovery-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.sla-recovery-row > .sla-section { min-width:0; border-bottom:0; padding-bottom:0; }
.unsaved-confirm { z-index:200; color:#213f4a; background:white; }
.unsaved-confirm .actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
.unsaved-confirm ul { margin:0; padding-left:20px; font-size:14px; }
@media(max-width:650px) { .sla-recovery-row { grid-template-columns:1fr; } }

.shell .agreement-card .agreement-frequency,
.shell .agreement-card .agreement-effective-date { display:flex; flex-direction:column; align-self:start; gap:6px; font-size:12px; line-height:18px; }
.shell .agreement-card .agreement-effective-date > span,
.shell .agreement-card .agreement-effective-date .date-trigger > span { display:block; padding:0; border:0; font:inherit; }
.shell .agreement-card .agreement-frequency > input,
.shell .agreement-card .agreement-effective-date > .date-field { margin-top:0; font-size:12px; }
.shell .agreement-card .agreement-frequency > input,
.shell .agreement-card .agreement-effective-date .date-trigger { height:40px; min-height:40px; }
.invoice-modal .invoice-net-field,
.invoice-modal .invoice-vat-field { display:flex; flex-direction:column; align-items:stretch; gap:6px; }
.invoice-modal :is(.invoice-net-field,.invoice-vat-field) .money-input input { margin-top:0; }
.invoice-modal .invoice-vat-field > small { margin-top:0; }
.invoice-modal .invoice-vat-field > button { align-self:flex-start; font-weight:500; }
.contract-end-date-editor { display: flex; align-items: center; gap: 8px; }
.contract-end-date-editor > .date-field { flex: 1; min-width: 0; }
.license-clickable-row { cursor:pointer; }
.license-clickable-row:hover { background:#f2f8fb; }
.license-clickable-row:focus-within { background:#edf5fa; }
.license-row-link { font:inherit; font-weight:600; color:#155d78; text-align:left; background:none; border:0; padding:3px 0; cursor:pointer; }
.license-row-link:hover { text-decoration:underline; }
.license-row-link:focus-visible { outline:2px solid #2168ad; outline-offset:4px; border-radius:2px; }
.functional-profile-settings .functional-profile-override { display:flex; gap:9px; align-items:center; margin:18px 0; max-width:none; }
.functional-profile-override input { width:auto; }
.functional-profile-settings .branch-module-choices label { display:flex; align-items:center; flex-wrap:wrap; margin:0; max-width:none; }
.functional-profile-settings .branch-module-choices small { color:#657984; font-size:11px; }
.contract-evidence-checklist { margin:20px 0; padding:18px; border:1px solid #d8e3eb; border-radius:8px; background:#f8fafc; }
.contract-evidence-checklist h4 { display:flex; align-items:center; gap:8px; margin:0 0 12px; }
.contract-evidence-checklist ul { display:grid; gap:9px; margin:0 0 12px; padding:0; list-style:none; }
.contract-evidence-checklist li { display:flex; align-items:center; gap:8px; overflow-wrap:anywhere; }
.contract-evidence-checklist li svg { flex-shrink:0; }
.contract-evidence-checklist p { font-size:13px; line-height:1.6; }
.customer-dashboard{container:dashboard / inline-size}
.customer-dashboard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 22px}
.dashboard-back{display:inline-flex;align-items:center;gap:7px;margin:0 0 18px}
.dashboard-back svg{width:16px;height:16px;flex-shrink:0}
.customer-dashboard-toolbar .eyebrow{margin:0 0 6px;color:#16828a}
.customer-dashboard-toolbar p{margin:0;color:#526873;font-size:13px;line-height:1.5}
.customer-dashboard-toolbar>button{display:flex;gap:9px;align-items:center;flex-shrink:0;padding:11px 14px;font-weight:600}
.customer-dashboard-toolbar>button svg{width:17px;height:17px}
.customer-dashboard-toolbar>button span{font-size:11px;background:#e7f2f2;color:#126a72;border-radius:5px;padding:3px 6px}
.customer-widget-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2cqi,24px);align-items:stretch}
.customer-widget{container:dashboard-widget / inline-size;min-width:0;width:100%;overflow:hidden;min-height:clamp(280px,32cqi,360px);display:flex;flex-direction:column;--widget-padding:clamp(16px,4cqi,26px);--widget-chart-size:clamp(112px,30cqi,176px)}
.customer-widget:only-child{grid-column:1 / -1}
.customer-widget>header{min-height:65px;padding:clamp(14px,3.5cqi,20px) var(--widget-padding);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}
.customer-widget>header h2{margin:0;font-size:clamp(14px,3.3cqi,18px);line-height:1.4;font-weight:600;overflow-wrap:anywhere}
.customer-widget>header h2{flex:1}
.customer-widget-drag{border:0;background:transparent;color:#789197;padding:5px 0;cursor:grab;touch-action:none;user-select:none;flex-shrink:0;border-radius:5px}
.customer-widget-drag svg{display:block;width:18px;height:20px}
.customer-widget-drag:active{cursor:grabbing}
.customer-widget-drag:disabled{cursor:default;opacity:.35}
.customer-widget.is-dragging{opacity:.55}
.customer-widget.is-drop-target{outline:2px solid #16828a;outline-offset:3px}
.customer-widget-drag-preview{position:fixed;z-index:100;pointer-events:none;display:flex;align-items:center;gap:9px;width:240px;max-width:calc(100vw - 24px);padding:13px 14px;border:1px solid #16828a;border-radius:9px;box-shadow:0 8px 24px #15374730;background:#fff;color:#126a72;font-size:13px;font-weight:600;line-height:1.5}
.customer-widget-drag-preview svg{flex-shrink:0;width:17px;height:20px}
.customer-widget-link{border:0;background:#f2f7f7;color:#286973;border-radius:7px;padding:6px;cursor:pointer;flex-shrink:0}
.customer-widget-link svg{width:17px;height:17px;display:block}
.customer-widget button:focus-visible,.customer-widget-options input:focus-visible{outline:2px solid #16828a;outline-offset:3px}
.customer-widget-empty{padding:24px;margin:0;min-height:180px;display:flex;gap:9px;align-items:center;justify-content:center;color:#526873;font-size:13px;line-height:1.7;text-align:center}
.customer-widget-empty svg{width:20px;flex-shrink:0;color:#16828a}
.customer-widget-footnote{margin:0;padding:0 var(--widget-padding) 18px;color:#6d8088;font-size:11px;line-height:1.6}
.customer-distribution{display:flex;align-items:center;flex-wrap:wrap;gap:clamp(16px,4cqi,28px);padding:var(--widget-padding);flex:1}
.customer-distribution .donut{flex:0 0 var(--widget-chart-size);width:var(--widget-chart-size);height:var(--widget-chart-size)}
.customer-distribution .donut:after{inset:clamp(12px,3cqi,18px)}
.customer-distribution .donut span{font-family:inherit;font-size:clamp(12px,3.3cqi,20px);font-weight:650}
.customer-distribution .donut small{font-size:11px;font-weight:400;margin-top:4px;color:#6d8088}
.customer-distribution ul{list-style:none;min-width:min(100%,160px);flex:1;margin:0;padding:0;max-height:clamp(200px,45cqi,300px);overflow:auto}
.customer-distribution li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #edf2f3;font-size:12px}
.customer-distribution li:last-child{border:0}
.customer-distribution li>span{display:flex;align-items:center;gap:8px;min-width:0;overflow-wrap:anywhere;line-height:1.5}
.customer-distribution li i{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.customer-distribution li strong{display:flex;flex-direction:column;align-items:flex-end;gap:3px;white-space:nowrap;font-weight:600}
.customer-distribution li small{font-weight:400;font-size:10px;color:#6d8088}
.customer-utilization{padding:var(--widget-padding);flex:1}
.customer-widget-kpi{font-size:clamp(36px,9cqi,60px);line-height:1.1;color:#126a72;letter-spacing:-.04em;font-weight:600;overflow-wrap:anywhere}
.customer-widget-kpi small{font-size:.56em;margin-left:3px;letter-spacing:0}
.customer-utilization>p{color:#6d8088;font-size:12px;margin:8px 0 22px}
.customer-utilization .utilization-bar{margin:0 0 24px}
.customer-utilization dl{margin:0;display:grid;gap:11px}
.customer-utilization dl>div{display:flex;justify-content:space-between;flex-wrap:wrap;gap:5px 12px;font-size:12px}
.customer-utilization dt{color:#526873}.customer-utilization dd{margin:0 0 0 auto;font-weight:600;overflow-wrap:anywhere;min-width:0;text-align:right}
.customer-utilization .over-budget{color:#b42332}
.customer-utilization .customer-widget-footnote{padding:16px 0 0;margin:0;font-size:11px}
.customer-completeness{padding:var(--widget-padding);display:flex;align-items:center;gap:clamp(16px,4cqi,28px);min-height:230px;flex-wrap:wrap;flex:1}
.customer-completeness-ring{width:var(--widget-chart-size);height:var(--widget-chart-size);border-radius:50%;flex-shrink:0;display:grid;place-items:center;position:relative}
.customer-completeness-ring:before{content:'';position:absolute;inset:clamp(11px,3cqi,17px);border-radius:50%;background:#fff}
.customer-completeness-ring>span{position:relative;font-size:clamp(24px,6cqi,36px);font-weight:600;color:#126a72}
.customer-completeness>div:last-child{flex:1;min-width:min(100%,160px)}
.customer-completeness strong{font-size:14px;line-height:1.5}.customer-completeness p,.customer-completeness small{font-size:12px;line-height:1.7;color:#526873}
.dashboard-licenses{height:230px;min-height:230px;flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.dashboard-license-summary{display:flex;align-items:center;gap:10px;padding:12px var(--widget-padding) 9px;flex-shrink:0}.dashboard-license-summary>strong{color:#126a72;font-size:27px;line-height:1;font-weight:600}.dashboard-license-summary>span{font-size:12px;color:#385963}.dashboard-license-summary small{font-size:11px;color:#6d8088;margin-left:5px}
.dashboard-license-list{list-style:none;padding:0;margin:0 var(--widget-padding);flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}.dashboard-license-list li+li{border-top:1px solid #edf2f3}.dashboard-license-list button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:transparent;border-radius:6px;padding:9px 3px;color:#25434b;cursor:pointer}.dashboard-license-list button:hover{background:#f1f8f8}
.dashboard-license-name{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.dashboard-license-name>b{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-license-name>small{font-size:10px;color:#6d8088;line-height:1.4;overflow-wrap:anywhere}.dashboard-license-track{display:block;height:4px;border-radius:4px;overflow:hidden;background:#e8eeee}.dashboard-license-track i{display:block;height:100%;border-radius:4px}
.dashboard-license-amount{display:flex;flex-direction:column;gap:5px;align-items:flex-end;flex-shrink:0}.dashboard-license-amount b{font-size:10px;font-weight:600;color:#526873}.dashboard-license-amount small{font-size:11px;color:#385963}.dashboard-license-amount.priority-1 b{color:#9a5a08}.dashboard-license-amount.priority-2 b{color:#a41f35}.dashboard-license-list svg{width:14px;height:14px;flex-shrink:0;color:#64848b}
.dashboard-license-footnote{font-size:10px;color:#6d8088;line-height:1.5;margin:0;padding:10px var(--widget-padding) 12px;flex-shrink:0}.dashboard-license-error{padding:15px var(--widget-padding);font-size:12px;color:#a41f35}.dashboard-license-error p{margin:0 0 10px}
@container dashboard-widget (max-width:360px){.dashboard-license-list button{flex-wrap:wrap}.dashboard-license-name{flex-basis:calc(100% - 24px)}.dashboard-license-amount{flex-direction:row;justify-content:space-between;width:100%;order:2}.dashboard-license-list svg{margin-left:auto}.dashboard-license-summary small{display:block;margin:3px 0 0}}
.customer-widget-summary{display:flex;align-items:center;gap:16px;padding:20px var(--widget-padding) 14px}
.customer-widget-summary strong{font-size:clamp(28px,7cqi,42px);line-height:1;color:#126a72;font-weight:600}
.customer-widget-summary>span{font-size:12px;line-height:1.6;color:#526873;max-width:280px}
.customer-widget-list{list-style:none;padding:0;margin:0 var(--widget-padding) var(--widget-padding);max-height:clamp(260px,65cqi,420px);overflow:auto}
.customer-widget-list li+li{border-top:1px solid #edf2f3}
.customer-widget-list button{display:flex;width:100%;align-items:center;text-align:left;gap:12px;border:0;background:transparent;padding:13px 6px;cursor:pointer;color:#25434b;border-radius:6px}
.customer-widget-list button:hover{background:#f1f8f8}
.customer-widget-list svg{width:17px;height:17px;flex-shrink:0;color:#64848b}
.customer-widget-list svg:last-child{width:15px;margin-left:auto}
.customer-widget-list span{display:flex;flex-direction:column;gap:5px;min-width:0}
.customer-widget-list b{font-size:12px;line-height:1.5;font-weight:600;overflow-wrap:anywhere}
.customer-widget-list small{font-size:11px;color:#6d8088;line-height:1.5;overflow-wrap:anywhere}
.customer-signal-summary{display:flex;flex-wrap:wrap;gap:12px;padding:20px var(--widget-padding) 10px;font-size:12px;color:#526873}
.customer-signal-summary>span{background:#f0f6f6;border-radius:6px;padding:6px 10px}.customer-signal-summary .is-overdue{color:#b42332;background:#fff0ed}
.customer-signal-summary b{font-size:16px;margin-right:3px}
.customer-overdue-toggle{display:block;margin:0 var(--widget-padding) 20px;border:0;background:transparent;padding:0;color:#a53832;cursor:pointer;font-size:12px;text-align:left;text-decoration:underline;text-underline-offset:3px;line-height:1.6}
.customer-overdue-list{border-top:1px solid #f0dcd7;padding-top:5px}
.customer-widgets-loading{padding:48px 20px;text-align:center;color:#526873}
.customer-dashboard-saved{display:flex;align-items:center;gap:6px;color:#126a72;font-size:12px;margin:0 0 16px}.customer-dashboard-saved svg{width:16px;height:16px}
.customer-widget-dialog{grid-template-columns:minmax(0,1fr);max-width:880px!important;width:calc(100vw - 32px)!important;max-height:calc(100dvh - 40px);overflow:auto;background:#fff;color:var(--ink)}
.customer-widget-dialog>[data-slot="dialog-header"]{text-align:left;padding-right:28px}
.customer-widget-dialog>form{min-width:0;width:100%}
.customer-widget-counter{font-size:12px;font-weight:600;color:#126a72;margin:0 0 12px}
.personal-dashboard-tenant{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#526873;margin:0 0 18px}
.personal-dashboard-tenant select{width:100%;padding:9px 11px;border:1px solid #d9e3e5;border-radius:7px;background:#fff;color:#25434b}
.personal-dashboard-heading{font-size:14px;font-weight:600;margin:0 0 12px}
.customer-widget-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.customer-widget-options label{display:flex;align-items:center;gap:12px;min-width:0;padding:15px 14px;border:1px solid #d9e3e5;border-radius:9px;background:#fff;cursor:pointer;overflow-wrap:anywhere}
.customer-widget-options label.is-selected{border-color:#16828a;background:#f0f8f8}
.customer-widget-options input{width:17px;height:17px;margin:0;accent-color:#16828a;flex-shrink:0}
.customer-widget-options span{display:flex;flex-direction:column;gap:4px;min-width:0}
.customer-widget-options b{font-size:13px;font-weight:600;line-height:1.5}.customer-widget-options small{font-size:11px;color:#526873;line-height:1.5}
.customer-widget-options svg{width:17px;height:17px;margin-left:auto;color:#16828a;flex-shrink:0}
.customer-widget-dialog footer{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}
.document-completeness{padding:16px 18px;margin:16px 0 20px;background:#f6f9f9;border:1px solid #dce6e7;border-radius:9px}
.document-completeness.is-complete{background:#edf8f4;border-color:#b5ded0}
.document-completeness label{display:flex;align-items:flex-start;gap:11px}
.document-completeness input{width:18px;height:18px;margin:1px 0 0;accent-color:#16828a;flex-shrink:0}
.document-completeness b{display:block;font-size:14px;margin:0 0 5px}
.document-completeness small,.document-completeness p{display:block;font-size:12px;line-height:1.7;color:#526873}
.document-completeness p{margin:10px 0 0 29px}
@container dashboard (max-width:760px){.customer-widget-grid{grid-template-columns:minmax(0,1fr)}}
@container dashboard (max-width:540px){.customer-dashboard-toolbar{align-items:flex-start;flex-direction:column;gap:14px}}
@container dashboard-widget (max-width:360px){.customer-distribution,.customer-completeness{flex-direction:column;align-items:stretch}.customer-distribution .donut,.customer-completeness-ring{align-self:center}.customer-distribution ul,.customer-completeness>div:last-child{width:100%;flex:auto}.customer-widget-summary{align-items:flex-start}}
@media(max-width:600px){.customer-widget-options{grid-template-columns:minmax(0,1fr)}.customer-widget-dialog{padding:20px}.customer-widget-dialog footer{flex-wrap:wrap}}

.budget-overview { padding:clamp(18px,2.2vw,30px); min-width:0; margin-bottom:24px; }
.budget-heading h2 { display:flex; align-items:center; gap:10px; margin:4px 0 8px; font-size:24px; color:#173d45; }
.budget-heading h2 svg { width:25px; height:25px; color:#16828a; }
.budget-heading p { color:#65737a; margin:5px 0; }
.budget-controls { display:flex; flex-wrap:wrap; gap:14px; align-items:end; padding:20px 0 8px; }
.budget-controls label,.budget-date,.budget-editor-fields>label,.budget-editor-fields>div { display:flex; flex-direction:column; gap:7px; color:#3a5158; font-size:13px; font-weight:600; }
.budget-controls select,.budget-controls input,.budget-editor-fields input,.budget-editor-fields select,.budget-default-index input { background:#fff; color:#243b43; border:1px solid #d4dfe0; border-radius:8px; min-height:41px; padding:9px 11px; font:inherit; }
.budget-controls>label:first-child { min-width:230px; }
.budget-controls input[type=number] { width:110px; }
.budget-controls .primary { display:flex; gap:8px; align-items:center; min-height:41px; }
.budget-controls .primary svg { width:15px; height:15px; }
.budget-help { color:#6b797e; font-size:12px; line-height:1.65; margin:8px 0; }
.budget-context { display:flex; flex-wrap:wrap; gap:8px 20px; color:#607277; font-size:12px; border-top:1px solid #edf1f2; padding:17px 0; margin-top:15px; }
.budget-warning { padding:14px 17px; border:1px solid #e9d5a9; background:#fff9eb; border-radius:9px; color:#7b5924; margin-bottom:18px; font-size:13px; }
.budget-warning p { margin:5px 0 0; }
.budget-message { color:#16696e; font-size:13px; }
.budget-table-scroll { overflow-x:auto; max-width:100%; border:1px solid #e3ebec; border-radius:10px; }
.budget-table { border-collapse:collapse; width:100%; font-size:13px; }
.budget-table caption { text-align:left; padding:13px 15px; font-weight:650; color:#284951; background:#f6faf9; }
.budget-table th,.budget-table td { padding:13px 15px; border-bottom:1px solid #e7edee; text-align:left; vertical-align:top; }
.budget-table thead { color:#496369; background:#f2f6f6; font-size:12px; }
.budget-table th:first-child,.budget-table td:first-child { min-width:240px; max-width:370px; }
.budget-table td:nth-child(2) { color:#6b7b81; min-width:130px; }
.budget-table .budget-number { text-align:right; min-width:150px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.budget-table small { display:block; color:#78878b; font-size:11px; font-weight:400; margin-top:5px; }
.budget-table .finance-contract-link { display:inline-flex; align-items:center; text-align:left; gap:6px; white-space:normal; }
.budget-table .finance-contract-link svg { width:13px; height:13px; flex:none; }
.budget-table tfoot { background:#f2f8f7; color:#204b53; font-weight:650; }
.budget-table tfoot tr:last-child td,.budget-table tfoot tr:last-child th { border-bottom:0; }
.budget-amount { display:block; font-variant-numeric:tabular-nums; }
.budget-amount small { display:block; color:#7b8589; font-weight:400; }
.budget-incomplete { color:#88601f; font-size:12px; }
.budget-explanations { margin-top:27px; }
.budget-explanations h3 { color:#2b4a52; margin:0 0 13px; font-size:15px; }
.budget-contract { border:1px solid #e2eaeb; border-radius:10px; margin:10px 0; background:#fff; }
.budget-contract>summary { padding:15px 17px; display:flex; justify-content:space-between; align-items:center; gap:20px; cursor:pointer; color:#3c5c63; font-size:13px; }
.budget-contract>summary>span:last-child { font-size:11px; color:#16828a; flex:none; }
.budget-contract summary small { display:block; font-size:11px; color:#7c8a8f; margin-top:4px; }
.budget-contract-body { border-top:1px solid #e9eeef; padding:17px; }
.budget-source { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; font-size:13px; }
.budget-source p { color:#6b7e83; font-size:12px; line-height:1.6; margin:6px 0; }
.budget-source button { flex:none; }
.budget-line { background:#f6f9f9; border:1px solid #e5eced; border-radius:9px; padding:15px; margin:15px 0; }
.budget-line header { display:flex; justify-content:space-between; align-items:flex-start; gap:15px; color:#304d54; font-size:13px; }
.budget-line header small { display:block; color:#70858a; font-size:11px; margin-top:5px; }
.budget-line-excluded { background:#fafbfb; color:#657980; }
.budget-line-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; font-size:12px; margin:18px 0; }
.budget-line-facts dt { font-size:11px; color:#718287; margin-bottom:4px; }
.budget-line-facts dd { margin:0; color:#37535b; line-height:1.5; }
.budget-line-facts small { display:block; color:#7c8c91; font-size:11px; }
.budget-line-years { display:flex; gap:12px; overflow-x:auto; padding:8px 0; }
.budget-line-years>div { min-width:125px; border-left:2px solid #c9dcdb; padding-left:10px; font-size:12px; }
.budget-line-years>div>span:first-child { display:block; color:#789096; font-size:11px; margin-bottom:4px; }
.budget-line-notes { padding-left:18px; color:#6e8086; font-size:11px; line-height:1.7; margin:10px 0 0; }
.budget-method { color:#5d747b; font-size:12px; padding-top:23px; line-height:1.7; }
.budget-method summary { font-weight:600; color:#2e626c; cursor:pointer; }
.budget-dialog { display:flex!important; flex-direction:column; gap:18px; width:min(640px,calc(100vw - 32px))!important; max-width:640px!important; max-height:calc(100dvh - 36px); overflow-y:auto; background:#fff!important; color:#304d54; }
.budget-dialog [data-slot=dialog-header] { display:block; text-align:left; }
.budget-dialog [data-slot=dialog-description] { margin-top:8px; color:#7c8c91; overflow-wrap:anywhere; }
.budget-dialog form,.budget-dialog fieldset { display:block; min-width:0; border:0; padding:0; }
.budget-editor-fields { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; }
.budget-editor-fields small { color:#7c8c91; font-size:11px; font-weight:400; line-height:1.6; }
.budget-editor-fields p { font-weight:400; color:#6c8086; font-size:12px; line-height:1.7; }
.budget-dialog .actions { margin-top:22px; display:flex; flex-wrap:wrap; gap:10px; }
.budget-default-index { display:flex; flex-direction:column; align-items:flex-start; gap:8px; margin:18px 0; font-size:13px; }
.budget-default-index input { width:190px; }
@media(max-width:680px) {
  .budget-controls { display:grid; grid-template-columns:minmax(0,1fr); gap:13px; }
  .budget-controls>label:first-child,.budget-controls select,.budget-controls .primary { min-width:0; width:100%; }
  .budget-controls .primary { justify-content:center; }
  .budget-contract>summary { align-items:flex-start; gap:10px; }
  .budget-contract>summary>span:last-child { max-width:95px; text-align:right; }
  .budget-source,.budget-line header { flex-direction:column; }
  .budget-line-facts { grid-template-columns:minmax(0,1fr); }
  .budget-table th:first-child,.budget-table td:first-child { min-width:200px; }
}

.organization-page{min-width:0}.organization-page .module-top{flex-wrap:wrap}.organization-page .module-top .primary{margin-left:auto}.organization-toolbar{display:flex;gap:16px;align-items:end;margin:20px 0}.organization-toolbar label,.organization-contract-filter label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:650;color:#315361}.organization-toolbar label{min-width:180px;max-width:400px;flex:1}.organization-toolbar input,.organization-toolbar select,.organization-contract-filter select,.organization-link-form select,.organization-access-fields select{border:1px solid #cadbdd;border-radius:8px;padding:10px 12px;background:#fff;color:#173b4b;font:inherit;width:100%;min-width:0}.organization-layout{display:grid;grid-template-columns:minmax(240px,0.85fr) minmax(0,1.7fr);gap:20px;align-items:start}.organization-tree,.organization-detail{min-width:0;overflow:hidden;background:#fff;border:1px solid #d9e5e7;border-radius:12px}.organization-panel-heading{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 14px;border-bottom:1px solid #e4ecee}.organization-panel-heading h3{font-size:14px;margin:0}.organization-panel-heading span{font-size:12px;border-radius:20px;padding:4px 9px;background:#eef5f5;color:#42646d}.organization-tree-list{list-style:none;margin:0;padding:0}.organization-tree-list .organization-tree-list{padding:0}.organization-tree-row{display:flex;align-items:center;padding-right:10px;min-height:66px;border-bottom:1px solid #eff3f4}.organization-tree-row.selected{background:#eaf7f6;box-shadow:inset 3px 0 #168e95}.organization-tree-name{display:flex;align-items:center;gap:10px;background:none;border:0;min-width:0;flex:1;cursor:pointer;text-align:left;padding:12px 4px;color:#234956}.organization-tree-name>svg{width:18px;height:18px;color:#258c91;flex-shrink:0}.organization-tree-name span{display:flex;flex-direction:column;min-width:0;gap:3px;overflow-wrap:anywhere}.organization-tree-name b{font-size:13px;font-weight:650}.organization-tree-name small{font-size:11px;color:#6c858b}.organization-tree-name em{margin-left:auto;font-size:11px;color:#44626e;background:#f4f8f8;border:1px solid #dde9e9;border-radius:7px;padding:3px 6px;font-style:normal}.organization-tree-toggle,.organization-tree-spacer{width:22px;flex-shrink:0}.organization-tree-toggle{background:none;border:0;padding:4px 0;color:#69848d;cursor:pointer}.organization-tree-toggle svg{width:16px;height:16px}.organization-detail{padding:22px}.organization-detail-heading{display:flex;justify-content:space-between;align-items:start;gap:15px;flex-wrap:wrap}.organization-detail-heading h3{margin:5px 0 7px;font-size:22px;letter-spacing:-.02em}.organization-detail-heading p:not(.eyebrow){color:#6c858b;font-size:12px;margin:0 0 15px;overflow-wrap:anywhere}.organization-icon-actions{display:flex;gap:6px}.organization-icon-actions .action-button{padding:8px}.organization-icon-actions svg{width:15px;height:15px}.organization-detail-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid #dfe9ea;margin:12px 0 22px}.organization-detail-tabs button{display:flex;align-items:center;gap:6px;border:0;border-bottom:2px solid transparent;background:none;color:#6b8088;padding:10px 12px;font-size:13px;cursor:pointer}.organization-detail-tabs button.selected{border-bottom-color:#168e95;color:#117d83;font-weight:700}.organization-detail-tabs svg{width:15px;height:15px}.organization-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:0 0 24px}.organization-facts dt{font-size:11px;color:#71858d;margin-bottom:5px}.organization-facts dd{font-size:13px;margin:0;color:#214957;overflow-wrap:anywhere}.organization-description{font-size:13px;line-height:1.7;white-space:pre-wrap}.organization-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}.organization-metrics button{display:grid;grid-template-columns:24px 1fr;gap:6px 10px;padding:17px;text-align:left;align-items:center;border:1px solid #dae8e8;border-radius:10px;background:#f8fbfb;color:#214b58;cursor:pointer}.organization-metrics svg{width:21px;height:21px;color:#199297}.organization-metrics b{font-size:25px;font-weight:650}.organization-metrics span{grid-column:1/-1;font-size:11px;line-height:1.5;color:#67828b}.organization-access-note{background:#f1f7f8;border:1px solid #dfebec;border-radius:9px;padding:17px;font-size:12px;line-height:1.7}.organization-access-note b{font-size:13px}.organization-access-note p{margin:7px 0 12px;color:#607c86}.organization-empty{padding:42px 22px;text-align:center;color:#68828b;line-height:1.7}.organization-empty>svg{width:38px;height:38px;margin:0 auto 12px;color:#36a0a3}.organization-empty h3{font-size:16px;color:#244a58;margin:10px 0}.organization-empty p{font-size:13px;max-width:380px;margin:10px auto 20px}.organization-empty .action-button{margin:auto}.organization-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.organization-form label{min-width:0}.organization-form .organization-full-width{grid-column:1/-1}.organization-checkbox{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;font-size:12px!important;font-weight:500!important;line-height:1.5}.organization-checkbox input[type=checkbox],.organization-unit-checks input[type=checkbox]{width:16px!important;height:16px!important;accent-color:#13888e;flex-shrink:0;padding:0!important}.organization-include{margin-bottom:18px}.organization-link-form{display:flex;gap:12px;align-items:end;margin-bottom:18px;flex-wrap:wrap}.organization-link-form label{display:flex;flex-direction:column;gap:8px;flex:1;min-width:160px;font-size:12px;font-weight:600}.organization-record-list>div{display:flex;align-items:center;gap:10px;border-top:1px solid #e7eeee;padding:8px 0;min-width:0}.organization-record-list>div>button:first-child{display:flex;align-items:center;gap:12px;text-align:left;background:none;border:0;color:#244d5b;padding:8px 0;flex:1;min-width:0;cursor:pointer}.organization-record-list span{display:flex;flex-direction:column;gap:5px;min-width:0;overflow-wrap:anywhere}.organization-record-list b{font-size:13px;font-weight:600}.organization-record-list small{font-size:11px;color:#7b8e96}.organization-record-list svg{width:17px;height:17px;flex-shrink:0}.organization-record-list>div>button:first-child>svg:last-child{margin-left:auto}.organization-record-list .action-button{padding:8px}.organization-empty-text,.organization-help{font-size:12px;line-height:1.7;color:#70868e}.organization-delete-confirm{background:#fff5f0;border:1px solid #f3d9ca;border-radius:8px;padding:15px;margin:12px 0;font-size:13px;line-height:1.6}.organization-access-fields{grid-column:1/-1;min-width:0;border:1px solid #d5e5e6;border-radius:9px;padding:14px;margin:10px 0;background:#f8fbfb}.organization-access-fields legend{font-size:13px;font-weight:650;padding:0 5px;color:#2a5561}.organization-access-fields p{font-size:12px;line-height:1.6;color:#63808a;margin:0 0 12px}.organization-unit-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:240px;overflow:auto;margin-bottom:15px;padding:2px}.organization-unit-checks label{display:flex!important;flex-direction:row!important;align-items:center;gap:7px;background:#fff;padding:9px;border:1px solid #e0eaea;border-radius:7px;font-size:12px!important;line-height:1.5!important;overflow-wrap:anywhere}.organization-access-fields small{display:block;margin-top:10px;font-size:11px;color:#976343}.organization-contract-filter{max-width:440px;margin:15px 0}.organization-contract-filter small{font-size:11px;font-weight:400;line-height:1.6;color:#6d858d}.organization-success{display:flex;gap:7px;align-items:center;color:#147a67;font-size:13px}.organization-success svg{width:17px;height:17px}.organization-user-memberships{margin:16px 0;padding:16px;background:#f4f9f9;border:1px solid #dce9e9;border-radius:9px}.organization-user-memberships h3{font-size:13px;margin:0 0 10px}.organization-user-memberships>span{display:block;font-size:12px;margin:7px 0;color:#355d68}.organization-user-memberships p{font-size:12px;color:#6c838c}.organization-page button:focus-visible,.organization-access-fields input:focus-visible{outline:2px solid #168e95;outline-offset:3px}.organization-tree-row:has(button:hover){background:#f1f8f8}.organization-tree-row.selected:has(button:hover){background:#e3f3f2}
@media(min-width:1600px){.organization-layout{grid-template-columns:minmax(300px,0.7fr) minmax(0,1.7fr)}}
@media(max-width:1000px){.organization-layout{grid-template-columns:minmax(200px,.85fr) minmax(0,1.4fr);gap:14px}.organization-detail{padding:17px}.organization-metrics{grid-template-columns:1fr}.organization-unit-checks{grid-template-columns:1fr}}
@media(max-width:760px){.organization-layout{grid-template-columns:1fr}.organization-tree{max-height:360px;overflow-y:auto}.organization-toolbar{flex-wrap:wrap}.organization-toolbar label{min-width:150px;max-width:none}.organization-toolbar .action-button{margin-left:auto}.organization-detail{padding:18px}.organization-detail-tabs button{padding:10px 8px}.organization-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.organization-form{grid-template-columns:1fr}.organization-page .module-top .primary{margin-left:0}.organization-detail-heading h3{font-size:20px}}
