:root {
  color-scheme: light;
  --crivi-ink: #201345;
  --crivi-text: #2d2257;
  --crivi-muted: #766d8f;
  --crivi-purple: #4b2184;
  --crivi-purple-2: #7a32c4;
  --crivi-purple-3: #9b52df;
  --crivi-lavender: #f5effb;
  --crivi-lavender-2: #fbf8ff;
  --crivi-gold: #f4b43f;
  --crivi-green: #43a63d;
  --crivi-orange: #f49313;
  --crivi-red: #ed3f43;
  --crivi-blue: #3478d6;
  --crivi-line: rgba(58, 37, 96, 0.12);
  --crivi-card: #fffefd;
  --crivi-bg: #fbf8f7;
  --crivi-shadow: 0 14px 36px rgba(42, 20, 82, 0.07);
  --crivi-shadow-soft: 0 8px 22px rgba(42, 20, 82, 0.055);
  --radius-card: 22px;
  --radius-control: 14px;
  --sidebar-width: 276px;
  --page-gap: 26px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: linear-gradient(115deg, #fffbf8 0%, #fbf7fb 52%, #f7efff 100%);
  color: var(--crivi-ink);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { min-width: 320px; min-height: 100vh; margin: 0; background: var(--crivi-bg); }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button { cursor: pointer; }
[hidden], .compatibility-markers { display: none !important; }

.login-screen {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  display: grid;
  align-items: center;
  justify-items: stretch;
  padding: clamp(26px, 5vh, 58px) clamp(28px, 6vw, 96px);
  background-image: url("/static/assets/crivi-official/login-scene-background-wide.png");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  background-color: #fbf8ff;
}
.login-screen::before,
.login-screen::after {
  content: none;
}
.login-shell {
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: min(760px, calc(100vh - 72px));
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 470px);
  gap: clamp(36px, 6vw, 92px);
  align-items: center;
}
.login-story {
  min-width: 0;
  min-height: 1px;
}
.login-story > * {
  display: none !important;
}
.login-panel {
  display: grid;
  gap: 17px;
  width: min(100%, 430px);
  min-height: min(620px, calc(100vh - 128px));
  justify-self: end;
  align-content: center;
  padding: clamp(30px, 4.6vh, 46px) 36px;
  border: 1px solid rgba(75, 33, 132, 0.08);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 28px 74px rgba(42, 20, 82, 0.11);
  backdrop-filter: blur(12px);
  transform: translateX(-140px);
}
.login-lock {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  justify-self: center;
  border-radius: 50%;
  background: var(--crivi-lavender);
  color: var(--crivi-purple-2);
}
.login-lock::before {
  content: "";
  width: 18px;
  height: 15px;
  border: 3px solid currentColor;
  border-radius: 5px;
  box-shadow: 0 -11px 0 -7px currentColor;
}
.login-panel h1 {
  margin: 4px 0 0;
  color: var(--crivi-ink);
  text-align: center;
  font-size: clamp(24px, 2.2vw, 30px);
  line-height: 1.1;
}
.login-panel > p {
  margin: 0 0 18px;
  color: var(--crivi-text);
  text-align: center;
  font-size: 15px;
}
.environment-choice {
  display: grid;
  grid-template-columns: 1fr 1fr;
  justify-self: center;
  width: 174px;
  gap: 6px;
  margin: -12px 0 2px;
  padding: 4px;
  border: 1px solid rgba(75, 33, 132, 0.10);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
}
.environment-choice legend {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.environment-choice label {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  border-radius: 999px;
  color: var(--crivi-purple);
  font-size: 12px;
  font-weight: 850;
  cursor: pointer;
}
.environment-choice label:has(input:checked) {
  color: white;
  background: linear-gradient(135deg, var(--crivi-purple-2), var(--crivi-purple));
}
.environment-choice input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.login-field {
  display: grid;
  gap: 9px;
  color: var(--crivi-text);
  font-size: 13px;
  font-weight: 850;
}
.field-control {
  min-height: 56px;
  display: grid;
  grid-template-columns: 32px 1fr auto;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(75, 33, 132, 0.15);
  border-radius: 12px;
  background: white;
  padding: 0 14px;
}
.field-icon {
  width: 24px;
  height: 24px;
  color: var(--crivi-purple);
  position: relative;
}
.user-icon::before { content: ""; position: absolute; display: block; width: 9px; height: 9px; border: 2px solid currentColor; border-radius: 50%; left: 6px; top: 2px; }
.user-icon::after { content: ""; position: absolute; display: block; width: 18px; height: 10px; border: 2px solid currentColor; border-bottom: 0; border-radius: 12px 12px 0 0; left: 2px; top: 14px; }
.lock-icon::before { content: ""; position: absolute; display: block; width: 17px; height: 14px; border: 2px solid currentColor; border-radius: 4px; left: 3px; top: 9px; }
.lock-icon::after { content: ""; position: absolute; display: block; width: 11px; height: 10px; border: 2px solid currentColor; border-bottom: 0; border-radius: 10px 10px 0 0; left: 6px; top: 1px; }
.field-control select,
.field-control input {
  width: 100%;
  min-width: 0;
  height: 52px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--crivi-ink);
  font-size: 15px;
}
.password-toggle {
  position: relative;
  width: 38px;
  height: 30px;
  min-height: 30px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--crivi-purple);
  padding: 0;
  box-shadow: none;
  font-size: 0;
  font-weight: 850;
}
.password-toggle::before {
  content: "";
  position: absolute;
  left: 9px;
  top: 10px;
  width: 19px;
  height: 11px;
  border: 2px solid currentColor;
  border-radius: 50%;
}
.password-toggle::after {
  content: "";
  position: absolute;
  left: 17px;
  top: 14px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
}
.login-options {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.login-options label {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--crivi-text);
  font-size: 14px;
  font-weight: 650;
}
.login-options input {
  width: 18px;
  height: 18px;
  accent-color: var(--crivi-purple);
}
.link-button {
  border: 0;
  background: transparent;
  color: var(--crivi-purple-2);
  padding: 0;
  box-shadow: none;
  font-size: 14px;
  font-weight: 850;
}
.login-panel .primary-action {
  width: 100%;
  min-height: 56px;
  margin-top: 4px;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--crivi-purple-2), var(--crivi-purple));
  color: white;
  font-size: 19px;
  font-weight: 850;
}
.login-help {
  position: relative;
  margin: 18px 0 0;
  color: var(--crivi-muted);
  text-align: center;
  font-size: 13px;
  line-height: 1.4;
}
.login-help::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 18px;
  margin: 0 8px -4px 0;
  border: 2px solid currentColor;
  border-radius: 8px 8px 10px 10px;
  opacity: 0.8;
}
.login-environment-switch { display: none; }
@media (max-width: 1180px) {
  .login-screen {
    align-items: start;
    padding: 26px;
    overflow: auto;
    background-position: center center;
    background-size: cover;
  }
  .login-shell {
    min-height: calc(100vh - 52px);
    grid-template-columns: 1fr;
  }
  .login-panel {
    justify-self: center;
    width: min(100%, 430px);
    min-height: auto;
    transform: none;
  }
}
@media (max-width: 720px) {
  .login-screen {
    padding: 18px;
    background-position: 33% center;
    background-size: cover;
  }
  .login-shell {
    min-height: calc(100vh - 36px);
  }
  .login-panel {
    width: 100%;
    align-self: end;
    padding: 24px;
    border-radius: 20px;
    gap: 13px;
    transform: none;
  }
  .login-lock {
    width: 54px;
    height: 54px;
  }
  .login-panel h1 { font-size: 24px; }
  .login-panel > p { font-size: 14px; margin-bottom: 6px; }
  .field-control { min-height: 52px; }
  .field-control select,
  .field-control input { height: 48px; font-size: 14px; }
}
.app-shell { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); background: linear-gradient(115deg, #fffbf8, #fbf7fb 54%, #f7efff); }
.crivi-sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  min-height: 0;
  max-height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 28px 18px;
  background: linear-gradient(180deg, #32166e 0%, #2b135f 58%, #241052 100%);
  color: white;
  overflow: hidden;
}
.crivi-logo { display: grid; gap: 7px; margin-bottom: 28px; justify-items: center; text-align: center; }
.crivi-logo strong { font-family: Georgia, serif; font-style: italic; font-size: 62px; line-height: 0.9; }
.crivi-logo small { text-transform: uppercase; letter-spacing: 0.17em; font-size: 12px; }
.crivi-logo::after { content: ""; width: 60px; height: 2px; margin-top: 8px; background: var(--crivi-gold); }
.crivi-sidebar nav {
  display: grid;
  flex: 1 1 auto;
  min-height: 0;
  align-content: start;
  gap: 8px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding-right: 4px;
}
.crivi-sidebar nav::-webkit-scrollbar { width: 7px; }
.crivi-sidebar nav::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.08); border-radius: 999px; }
.crivi-sidebar nav::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.34); border-radius: 999px; }
.crivi-sidebar nav { scrollbar-color: rgba(255, 255, 255, 0.34) rgba(255, 255, 255, 0.08); scrollbar-width: thin; }
.crivi-sidebar a {
  min-height: 48px;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 8px 10px;
  border-radius: 14px;
  color: white;
  font-size: 16px;
  font-weight: 850;
}
.crivi-sidebar a:hover, .crivi-sidebar a.active { background: linear-gradient(135deg, rgba(151, 72, 219, 0.86), rgba(103, 43, 176, 0.86)); }
.crivi-sidebar a b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crivi-sidebar em { padding: 3px 9px; border: 1px solid var(--crivi-gold); border-radius: 999px; color: var(--crivi-gold); font-size: 11px; font-style: normal; }
.sidebar-module-group { display: contents; }
.sidebar-module-group[hidden] { display: none; }
.sidebar-group-toggle { display: none; }
.sidebar-group-items { display: contents; }
#sidebar-nav.is-grouped .sidebar-module-group { display: grid; gap: 5px; }
#sidebar-nav.is-grouped .sidebar-module-group[hidden] { display: none; }
#sidebar-nav.is-grouped .sidebar-group-toggle {
  width: 100%;
  min-height: 48px;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.035);
  box-shadow: none;
  color: white;
  font: inherit;
  font-size: 16px;
  font-weight: 850;
  text-align: left;
  cursor: pointer;
}
#sidebar-nav.is-grouped .sidebar-group-toggle:hover { background: rgba(255, 255, 255, 0.075); border-color: rgba(255, 255, 255, 0.18); }
#sidebar-nav.is-grouped .sidebar-module-group.has-active-view .sidebar-group-toggle { border-color: rgba(244, 193, 67, 0.62); background: rgba(255, 255, 255, 0.095); }
#sidebar-nav.is-grouped .sidebar-group-items { display: grid; gap: 4px; padding-left: 12px; }
#sidebar-nav.is-grouped .sidebar-group-toggle[aria-expanded="false"] + .sidebar-group-items { display: none; }
#sidebar-nav.is-grouped .sidebar-group-items a { min-height: 42px; font-size: 14px; }
.sidebar-group-chevron { font-size: 18px; transition: transform 160ms ease; }
.sidebar-group-toggle[aria-expanded="true"] .sidebar-group-chevron { transform: rotate(180deg); }
.crivi-sidebar .is-sidebar-sortable { cursor: grab; }
.crivi-sidebar .is-sidebar-sortable:active { cursor: grabbing; }
.crivi-sidebar .is-sidebar-sortable.is-dragging { opacity: 0.42; }
.crivi-sidebar .is-sidebar-sortable.is-drag-over { outline: 2px solid rgba(244, 193, 67, 0.82); outline-offset: 2px; }
.ui-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px; background: rgba(255, 255, 255, 0.08); color: #fff6d1; font-size: 17px; }
.official-main { min-width: 0; padding: 32px 40px 26px; }
.official-topbar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(280px, 500px) auto auto auto;
  gap: 16px;
  align-items: center;
  margin-bottom: 28px;
}
.topbar-copy h1 { margin: 0; font-size: 36px; line-height: 1; letter-spacing: 0; }
.topbar-copy p { margin: 10px 0 0; color: var(--crivi-muted); font-size: 17px; }
.global-search { display: grid; gap: 5px; color: var(--crivi-muted); font-size: 12px; font-weight: 850; }
.global-search input {
  width: 100%;
  min-width: 0;
  height: 54px;
  border: 1px solid var(--crivi-line);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.88);
  color: var(--crivi-ink);
  padding: 0 16px;
  outline: 0;
  box-shadow: var(--crivi-shadow-soft);
}
.global-search input::placeholder { color: var(--crivi-muted); opacity: 0.86; }
.command-button { min-width: 158px; height: 54px; white-space: nowrap; }
kbd { margin-left: 8px; padding: 3px 8px; border-radius: 8px; background: #f1eef5; color: var(--crivi-muted); font-size: 12px; }
.notification-button {
  min-width: 92px;
  height: 54px;
  padding: 0 16px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--crivi-purple);
  font-weight: 900;
  white-space: nowrap;
}
.notification-button strong { font-size: 14px; }
.notification-button span { position: absolute; top: -7px; right: -4px; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: var(--crivi-red); color: white; font-size: 12px; }
.profile-chip { display: flex; align-items: center; gap: 12px; }
.profile-avatar { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(135deg, var(--crivi-purple-2), var(--crivi-purple)); color: white; font-weight: 950; border: 3px solid white; box-shadow: var(--crivi-shadow-soft); }
.profile-chip strong, .profile-chip span { display: block; white-space: nowrap; }
.profile-chip span { color: var(--crivi-muted); }
.profile-chip button { width: 42px; min-height: 42px; padding: 0; box-shadow: none; }
.workspace-area { position: relative; }
.view { display: none; }
.view.is-active { display: block; }
.dashboard-crivi-banner {
  position: relative;
  min-height: 254px;
  margin: 0 0 18px;
  padding: 26px 82px 22px 34px;
  display: grid;
  grid-template-columns: minmax(210px, 28%) minmax(0, 1fr);
  gap: 32px;
  align-items: center;
  overflow: hidden;
  border: 1px solid #e5d8f4;
  border-radius: var(--radius-card);
  background: #f7f2ff;
  box-shadow: var(--crivi-shadow-soft);
}
.dashboard-crivi-figure { height: 204px; display: grid; place-items: end center; align-self: end; }
.dashboard-crivi-figure img { width: min(100%, 220px); height: 204px; display: block; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 18px 22px rgba(66, 30, 111, .18)); }
.dashboard-crivi-copy { min-width: 0; display: grid; justify-items: start; align-content: center; }
.dashboard-crivi-copy > span { color: var(--crivi-purple-2); font-size: 12px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.dashboard-crivi-copy h2 { margin: 7px 0 8px; color: var(--crivi-purple); font-size: 30px; line-height: 1.08; letter-spacing: 0; }
.dashboard-crivi-copy p { margin: 0; color: var(--crivi-muted); font-size: 15px; line-height: 1.5; }
.dashboard-crivi-copy strong { margin-top: 3px; color: var(--crivi-ink); font-size: 18px; line-height: 1.4; }
.dashboard-crivi-cta { min-height: 42px; margin-top: 16px; padding: 0 18px; border-radius: 10px; box-shadow: 0 10px 20px rgba(92, 39, 158, .16); }
.dashboard-crivi-next { position: absolute; top: 50%; right: 24px; width: 46px; min-height: 46px; padding: 0; display: grid; place-items: center; transform: translateY(-50%); border-radius: 50%; background: #fff; color: var(--crivi-purple); font-size: 29px; line-height: 1; box-shadow: var(--crivi-shadow-soft); }
.dashboard-crivi-dots { position: absolute; left: calc(28% + 66px); bottom: 14px; display: flex; align-items: center; gap: 7px; }
.dashboard-crivi-dot { width: 8px; min-width: 8px; height: 8px; min-height: 8px; padding: 0; border: 0; border-radius: 50%; background: #d5cae2; box-shadow: none; }
.dashboard-crivi-dot.is-active { background: var(--crivi-purple-2); }
.dashboard-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 26px;
}
.card, .metric-card, .empty-state, .module-page, .settings-card {
  border: 1px solid var(--crivi-line);
  border-radius: var(--radius-card);
  background: var(--crivi-card);
  box-shadow: var(--crivi-shadow);
}
.metric-card {
  grid-column: span 3;
  min-height: 178px;
  display: grid;
  grid-template-columns: 1fr 92px;
  align-items: center;
  padding: 30px 34px;
}
.metric-card span { display: block; color: var(--crivi-muted); text-transform: uppercase; font-size: 14px; font-weight: 900; letter-spacing: 0.04em; }
.metric-card strong { display: block; margin: 12px 0 8px; font-size: 46px; line-height: 0.92; }
.metric-card small { color: var(--crivi-muted); font-size: 15px; }
.metric-card i { width: 92px; height: 92px; display: grid; place-items: center; border-radius: 20px; font-size: 42px; font-style: normal; }
.managerial-counts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 12px 0 10px; }
.managerial-counts strong { display: grid; gap: 3px; margin: 0; min-width: 0; }
.managerial-counts b { color: currentColor; font-size: 25px; line-height: 1; }
.managerial-counts span { color: var(--crivi-muted); font-size: 9px; letter-spacing: .04em; }
.metric-card.purple strong { color: var(--crivi-purple-2); } .metric-card.purple i { background: #f1e6fa; color: var(--crivi-purple-2); }
.metric-card.green strong { color: var(--crivi-green); } .metric-card.green i { background: #eaf7e8; color: var(--crivi-green); }
.metric-card.orange strong { color: var(--crivi-orange); } .metric-card.orange i { background: #fff0dc; color: var(--crivi-orange); }
.metric-card.red strong { color: var(--crivi-red); } .metric-card.red i { background: #ffe5e8; color: var(--crivi-red); }
.card { min-height: 300px; padding: 30px; }
.card h2, .module-page h2 { margin: 0 0 24px; font-size: 22px; letter-spacing: 0; }
.progress-card { grid-column: span 4; }
.progress-content { display: grid; grid-template-columns: 220px 1fr; gap: 32px; align-items: center; }
.donut {
  width: 204px;
  height: 204px;
  border-radius: 50%;
  position: relative;
  display: grid;
  place-items: center;
  background: conic-gradient(var(--crivi-purple-2) 0 25%, var(--crivi-orange) 25% 39%, var(--crivi-red) 39% 45%, var(--crivi-green) 45% 100%);
}
.donut::before { content: ""; position: absolute; inset: 24px; border-radius: 50%; background: var(--crivi-card); }
.donut-center { position: relative; z-index: 1; width: 128px; height: 128px; display: grid; place-items: center; align-content: center; text-align: center; }
.donut-center strong { font-size: 44px; line-height: 1; }
.donut-center span { margin-top: 10px; color: var(--crivi-muted); font-size: 15px; }
.legend { display: grid; gap: 18px; padding: 0; margin: 0; list-style: none; }
.legend li { display: grid; grid-template-columns: 14px 1fr auto; gap: 12px; align-items: center; color: var(--crivi-text); }
.legend i { width: 14px; height: 14px; border-radius: 50%; }
.ok { background: var(--crivi-green); } .warn { background: var(--crivi-orange); } .bad { background: var(--crivi-red); }
.responsible-card { grid-column: span 3; display: grid; align-content: start; gap: 24px; }
.responsible-card label { display: grid; gap: 8px; color: var(--crivi-text); }
.responsible-card strong { font-size: 22px; }
.responsible-card span { height: 14px; border-radius: 999px; overflow: hidden; background: #ede7ef; }
.responsible-card i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--crivi-purple-2), var(--crivi-purple-3)); }
.crivi-recommendation { grid-column: span 5; position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) 150px; gap: 22px; align-items: center; background: linear-gradient(135deg, #fbf7ff, #f3e8ff); }
.crivi-card-mascot { width: 128px; height: 128px; object-fit: cover; object-position: center; border-radius: 50%; filter: drop-shadow(0 14px 22px rgba(75, 33, 132, 0.18)); background: #f5e9ff; }
.crivi-card-mascot-placeholder { width: 128px; height: 128px; display: block; }
.crivi-recommendation p { margin: 0 0 20px; color: var(--crivi-text); font-size: 19px; line-height: 1.5; }
.crivi-recommendation strong { color: var(--crivi-purple); }
.obligations-card { grid-column: span 4; max-height: 330px; overflow: auto; }
.list-row { display: grid; grid-template-columns: 58px 1fr auto; gap: 18px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--crivi-line); }
.list-row i { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 14px; background: var(--crivi-lavender); color: var(--crivi-purple-2); font-style: normal; }
.list-row b, .list-row small { display: block; }
.list-row small { margin-top: 5px; color: var(--crivi-muted); }
.list-row em { padding: 8px 16px; border-radius: 999px; background: var(--crivi-lavender); color: var(--crivi-purple); font-style: normal; font-weight: 850; }
.crivi-workspace { grid-column: span 3; }
.crivi-workspace button { width: 100%; justify-content: space-between; display: flex; align-items: center; margin-bottom: 12px; border-radius: 12px; box-shadow: none; }
.crivi-workspace button::after { content: "›"; font-size: 24px; }
.crivi-workspace a { display: block; margin-top: 20px; color: var(--crivi-purple-2); font-weight: 850; }
.calendar-card { grid-column: span 2; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; text-align: center; }
.calendar-grid span { color: var(--crivi-muted); font-size: 12px; font-weight: 900; }
.calendar-grid b { min-height: 24px; display: grid; place-items: center; border-radius: 50%; font-size: 13px; }
.calendar-grid .selected { background: var(--crivi-purple-2); color: white; }
.goals-card { grid-column: span 3; }
.goals-card label { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; color: var(--crivi-muted); }
.goals-card input { accent-color: var(--crivi-green); }
.real-empty-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px; }
.operational-dashboard-grid { margin-top: 0; }
.operational-dashboard-empty { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dashboard-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.dashboard-card-heading h2 { margin-bottom: 0; }
.dashboard-card-heading > span, .dashboard-data-source { color: var(--crivi-muted); font-size: 12px; font-weight: 800; }
.dashboard-card-heading button { min-height: 34px; padding: 0 11px; border-radius: 10px; box-shadow: none; font-size: 12px; }
.dashboard-intelligence-progress { min-height: 270px; }
.dashboard-intelligence-owners { min-height: 270px; }
.dashboard-intelligence-owners label small { color: var(--crivi-muted); font-size: 12px; }
.dashboard-crivi-insight { min-height: 270px; }
.dashboard-crivi-insight small { display: block; margin-top: 16px; color: var(--crivi-muted); font-size: 12px; line-height: 1.4; }
.dashboard-priority-card { min-height: 270px; }
.dashboard-priority-card .list-row { grid-template-columns: 42px minmax(0, 1fr) auto; gap: 12px; }
.dashboard-priority-card .list-row i { width: 36px; height: 36px; border-radius: 11px; }
.dashboard-priority-card .list-row > div { display: grid; justify-items: end; gap: 5px; }
.dashboard-priority-card .routine-status-badge { white-space: nowrap; }
.dashboard-priority-card .routine-status-badge.status-danger { --routine-status-color: #b42318; --routine-status-bg: #fff1f0; --routine-status-text: #8d1c13; }
.dashboard-no-priority { display: grid; gap: 7px; margin: 18px 0; color: var(--crivi-muted); line-height: 1.45; }
.dashboard-no-priority strong { color: var(--crivi-ink); }
.dashboard-data-source { display: block; padding-top: 14px; text-align: right; }
.dashboard-intelligence-owners label { gap: 6px; }
.dashboard-intelligence-owners label > small { margin-top: 4px; font-size: 9px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.dashboard-intelligence-owners .managerial-counts { margin: 0 0 3px; }
.dashboard-intelligence-owners .managerial-counts b { font-size: 17px; }
.managerial-legend { gap: 10px; }
.managerial-legend li { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 5px 8px; }
.managerial-legend li > span { font-weight: 850; }
.managerial-legend .managerial-counts { grid-column: 1 / -1; margin: 0; padding-left: 18px; }
.managerial-legend .managerial-counts b { font-size: 16px; }
.dashboard-quick-notes { margin-top: 0; padding: 24px; border: 1px solid #eadfba; border-radius: var(--radius-card); background: #fffdf5; box-shadow: var(--crivi-shadow-soft); }
.dashboard-quick-notes-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.dashboard-quick-notes-heading span { color: #96600a; font-size: 12px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.dashboard-quick-notes-heading h2 { margin: 4px 0 6px; }
.dashboard-quick-notes-heading p { margin: 0; color: var(--crivi-muted); line-height: 1.45; }
.dashboard-quick-notes-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.dashboard-quick-notes-actions button { min-height: 38px; padding: 0 13px; border-radius: 10px; box-shadow: none; font-size: 12px; }
.dashboard-quick-note-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin: 22px 0; }
.dashboard-quick-note-metrics > div { display: grid; gap: 4px; min-height: 86px; padding: 14px; border: 1px solid #eadfba; border-radius: 12px; background: #fff9d8; }
.dashboard-quick-note-metrics strong { color: #6f5112; font-size: 25px; line-height: 1; }
.dashboard-quick-note-metrics span { color: #725d24; font-size: 12px; font-weight: 800; line-height: 1.25; }
.dashboard-quick-note-metrics .is-danger { border-color: #f2c5c1; background: #fff3f1; }
.dashboard-quick-note-metrics .is-danger strong, .dashboard-quick-note-metrics .is-danger span { color: #a32921; }
.dashboard-quick-note-metrics .is-warning { border-color: #f0d39a; background: #fff8e9; }
.dashboard-quick-note-metrics .is-warning strong, .dashboard-quick-note-metrics .is-warning span { color: #8a5b00; }
.dashboard-quick-note-metrics .is-success { border-color: #bce3c9; background: #f0fbf3; }
.dashboard-quick-note-metrics .is-success strong, .dashboard-quick-note-metrics .is-success span { color: #22743d; }
.dashboard-quick-note-list { display: grid; gap: 8px; }
.dashboard-quick-note-list-heading, .dashboard-quick-note-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.dashboard-quick-note-list-heading { padding: 0 2px 7px; color: var(--crivi-ink); }
.dashboard-quick-note-list-heading small { color: var(--crivi-muted); font-weight: 800; }
.dashboard-quick-note-row { padding: 12px 14px; border: 1px solid #eee3bf; border-radius: 10px; background: #fffef8; }
.dashboard-quick-note-row > span { display: grid; gap: 4px; min-width: 0; }
.dashboard-quick-note-row b { overflow: hidden; color: var(--crivi-ink); text-overflow: ellipsis; white-space: nowrap; }
.dashboard-quick-note-row small { color: var(--crivi-muted); }
.dashboard-quick-note-row > div { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.dashboard-quick-note-row button { min-height: 32px; padding: 0 10px; border-radius: 8px; box-shadow: none; font-size: 12px; }
.dashboard-quick-note-empty { display: grid; gap: 5px; padding: 16px; border: 1px dashed #dec66d; border-radius: 10px; background: rgba(255, 249, 214, .6); color: #5b4711; }
.dashboard-quick-note-empty span { color: #776535; font-size: 13px; line-height: 1.4; }
.empty-state { min-height: 300px; padding: 32px; display: grid; align-content: center; gap: 12px; }
.empty-state span { color: var(--crivi-purple-2); font-weight: 900; text-transform: uppercase; font-size: 12px; letter-spacing: 0.1em; }
.empty-state h2 { margin: 0; font-size: 24px; }
.empty-state p { margin: 0; color: var(--crivi-muted); line-height: 1.5; }
.empty-state button { width: max-content; margin-top: 10px; }
.module-page { padding: 30px; min-height: 680px; }
.module-header { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 24px; }
.module-header p { margin: 8px 0 0; color: var(--crivi-muted); }
.table-toolbar { display: flex; gap: 12px; flex-wrap: wrap; }
.table-toolbar input, .table-toolbar select { height: 42px; border: 1px solid var(--crivi-line); border-radius: 12px; padding: 0 12px; }
.work-queue-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 20px; }
.work-queue-summary .metric-card { min-height: 138px; grid-column: auto; padding: 20px; grid-template-columns: minmax(0, 1fr) 56px; }
.work-queue-summary .metric-card strong { margin: 8px 0 5px; font-size: 34px; }
.work-queue-summary .metric-card i { width: 52px; height: 52px; border-radius: 14px; font-size: 24px; }
.work-queue-unassigned { margin: 0 0 20px; padding: 13px 16px; border: 1px solid rgba(202, 138, 4, 0.22); border-radius: 12px; background: #fff9e8; color: #875b00; line-height: 1.45; }
.work-queue-owner-load { display: grid; gap: 14px; margin: 0 0 20px; padding: 18px; border: 1px solid var(--crivi-line); border-radius: 14px; background: #fff; }
.work-queue-owner-load .planning-section-heading { margin: 0; }
.work-queue-owner-load .planning-section-heading p { max-width: 620px; margin: 5px 0 0; color: var(--crivi-muted); font-size: 13px; line-height: 1.45; }
.work-queue-load-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.work-queue-load-card { display: grid; grid-template-columns: 1fr auto; gap: 7px 10px; min-height: 132px; padding: 15px; border: 1px solid #e9e2f1; border-radius: 12px; background: #fcfbff; color: var(--crivi-ink); text-align: left; box-shadow: none; }
.work-queue-load-card:hover, .work-queue-load-card.is-active { border-color: rgba(113, 46, 185, .55); background: #f8f2ff; transform: none; }
.work-queue-load-card span { font-size: 15px; font-weight: 900; }
.work-queue-load-card small { align-self: center; color: var(--crivi-muted); font-size: 11px; font-weight: 700; text-align: right; }
.work-queue-load-card em { grid-column: 1 / -1; margin-top: 5px; color: var(--crivi-muted); font-size: 10px; font-style: normal; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.work-queue-load-card .managerial-counts { grid-column: 1 / -1; width: 100%; margin: 0; padding-bottom: 6px; border-bottom: 1px solid #eee8f3; }
.work-queue-load-card .managerial-counts strong { margin: 0; }
.work-queue-load-card .managerial-counts b { color: var(--crivi-purple); font-size: 19px; }
.work-queue-load-card .managerial-counts span { font-size: 8px; }
.work-queue-load-card b, .work-queue-load-card i { grid-column: 1 / -1; color: var(--crivi-muted); font-size: 11px; font-style: normal; font-weight: 750; }
.work-queue-load-card b { color: #9a3d10; }
.work-queue-load-card.is-unassigned { background: #fff9ec; }
.work-queue-table { overflow-x: auto; }
#view-my-work .work-queue-table { max-height: none !important; overflow-x: auto !important; overflow-y: hidden !important; scrollbar-gutter: auto !important; }
.work-queue-table .data-table { min-width: 880px; }
.work-queue-owner-control { display: grid; gap: 6px; min-width: 210px; color: var(--crivi-muted); font-size: 11px; font-weight: 800; }
.work-queue-owner-control select { width: 100%; min-height: 38px; border: 1px solid var(--crivi-line); border-radius: 9px; background: #fff; color: var(--crivi-ink); font: inherit; font-size: 12px; }
.planning-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 20px; }
.planning-summary .metric-card { min-height: 132px; grid-column: auto; padding: 20px; grid-template-columns: minmax(0, 1fr) 52px; }
.planning-summary .metric-card strong { margin: 8px 0 5px; font-size: 32px; }
.planning-summary .metric-card i { width: 50px; height: 50px; border-radius: 14px; font-size: 22px; }
.planning-mode-toggle { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid var(--crivi-line); border-radius: 14px; background: #fff; }
.planning-mode-toggle button { min-height: 34px; padding: 0 12px; border: 0; border-radius: 10px; box-shadow: none; background: transparent; color: var(--crivi-muted); font-size: 12px; }
.planning-mode-toggle button.is-active { background: var(--crivi-purple-2); color: #fff; }
.planning-surface, .planning-selected-day, .planning-unplanned { margin-bottom: 20px; padding: 22px; border: 1px solid var(--crivi-line); border-radius: var(--radius-card); background: var(--crivi-card); box-shadow: var(--crivi-shadow-soft); }
.calendar-control-surface { display: grid; grid-template-columns: auto repeat(4, minmax(148px, 1fr)) auto; align-items: end; gap: 14px; margin-bottom: 18px; padding: 18px; border: 1px solid var(--crivi-line); border-radius: var(--radius-card); background: var(--crivi-card); box-shadow: var(--crivi-shadow-soft); }
.calendar-control-surface .routine-competence-control { min-height: 48px; padding: 0; border: 0; background: transparent; }
.calendar-filter { display: grid; gap: 5px; min-width: 0; color: var(--crivi-muted); font-size: 10px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.calendar-filter select { width: 100%; min-height: 46px; border: 1px solid var(--crivi-line); border-radius: 10px; background: #fff; color: var(--crivi-ink); font-size: 13px; font-weight: 700; text-transform: none; }
.calendar-clear-filters { min-height: 46px; padding-inline: 14px; border-radius: 10px; box-shadow: none; font-size: 12px; white-space: nowrap; }
.calendar-timeline-surface { padding-bottom: 12px; }
.planning-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.planning-section-heading span { display: block; color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.planning-section-heading h2 { margin: 5px 0 0; font-size: 22px; }
.planning-section-heading small { max-width: 350px; color: var(--crivi-muted); font-size: 12px; line-height: 1.45; text-align: right; }
.planning-section-heading > strong { display: grid; min-height: 34px; padding: 0 12px; place-items: center; border-radius: 999px; background: var(--crivi-lavender); color: var(--crivi-purple); font-size: 12px; }
.planning-deadline-legend { display: flex; flex-wrap: wrap; gap: 8px; margin: -4px 0 16px; }
.planning-deadline-legend span { padding: 6px 9px; border-radius: 999px; font-size: 11px; font-weight: 850; }
.planning-deadline-legend .operational { background: #fff3d9; color: #9a5a00; }
.planning-deadline-legend .official, .planning-deadline-legend .critical { background: #fff0ef; color: #a1241b; }
.planning-deadline-legend .completed { background: #edf9ed; color: #257331; }
.planning-deadline-legend .progress { background: #f0f5ff; color: #2855ac; }
.planning-deadline-legend .pending { background: #fff8ea; color: #9a5a00; }
.planning-horizontal-scroll { overflow-x: auto; overscroll-behavior-inline: contain; padding: 0 0 10px; }
.planning-competence-grid { display: flex; align-items: stretch; min-width: max-content; border: 1px solid var(--crivi-line); border-radius: 14px; overflow: hidden; }
.planning-competence-day { flex: 0 0 94px; min-height: 240px; max-height: 240px; display: grid; grid-template-rows: auto minmax(0, 1fr); border: 0; border-right: 1px solid var(--crivi-line); border-radius: 0; background: #fff; overflow: hidden; }
.planning-competence-day:last-child { border-right: 0; }
.planning-competence-day.is-empty { flex-basis: 76px; min-height: 240px; max-height: 240px; background: #fdfcff; }
.planning-competence-day.is-selected { position: relative; background: #fcfaff; box-shadow: inset 0 0 0 2px var(--crivi-purple-2); z-index: 1; }
.planning-competence-heading { width: 100%; min-height: 74px; display: grid; grid-template-columns: 1fr auto; grid-template-areas: "day count" "weekday weekday"; align-items: center; gap: 3px 6px; padding: 10px 9px; border: 0; border-bottom: 1px solid var(--crivi-line); border-radius: 0; background: transparent; box-shadow: none; color: var(--crivi-ink); text-align: left; }
.planning-competence-heading strong { grid-area: day; font-size: 19px; line-height: 1; }
.planning-competence-heading span { grid-area: weekday; color: var(--crivi-muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.planning-competence-heading small { grid-area: count; display: grid; width: 20px; height: 20px; place-items: center; border-radius: 999px; background: var(--crivi-lavender); color: var(--crivi-purple); font-size: 10px; font-weight: 900; }
.planning-competence-day.is-empty .planning-competence-heading small { background: #f5f2f7; color: var(--crivi-muted); }
.calendar-day-chip-list { min-height: 0; display: grid; align-content: start; gap: 5px; overflow-y: auto; padding: 8px 6px; }
.calendar-day-chip, .calendar-more-chip { width: 100%; min-height: 22px; display: flex; align-items: center; gap: 4px; padding: 3px 5px; border: 1px solid var(--crivi-line); border-radius: 5px; background: #fff; box-shadow: none; color: var(--crivi-ink); font-size: 9px; line-height: 1.1; text-align: left; }
.calendar-day-chip:hover { border-color: rgba(122, 45, 199, .45); background: #faf7ff; }
.calendar-day-chip i { width: 6px; height: 6px; flex: 0 0 6px; border-radius: 999px; background: #d68a00; }
.calendar-day-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-group-chip { align-items: flex-start; min-height: 35px; }
.calendar-group-chip span { min-width: 0; display: grid; gap: 2px; }
.calendar-group-chip strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
.calendar-group-chip small { overflow: hidden; color: var(--crivi-muted); font-size: 8px; font-weight: 800; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.calendar-day-chip.official i, .calendar-day-chip.critical i { background: #d92d20; }
.calendar-day-chip.completed i { background: #3d8d47; }
.calendar-day-chip.progress i { background: #2f70d8; }
.calendar-day-chip.not-started i { background: #8690a0; }
.calendar-more-chip { justify-content: center; border-style: dashed; color: var(--crivi-purple); font-weight: 850; text-align: center; }
.calendar-day-empty { align-self: center; padding: 0 6px; color: var(--crivi-muted); font-size: 9px; line-height: 1.35; text-align: center; }
.planning-record-operational { border-left: 4px solid #dc8b00 !important; }
.planning-record-official { border-left: 4px solid #bd3329 !important; background: #fff6f5 !important; }
.planning-record-official.is-resolved { border-left-color: #3d8d47 !important; background: #f4fbf1 !important; }
.planning-record-official span { color: #a1241b; }
.planning-record-official.is-resolved span { color: #257331; }
.planning-deadline-tag { display: block; margin-top: 7px; font-size: 10px; font-weight: 800; line-height: 1.35; }
.planning-deadline-tag.official { color: #a1241b; }
.calendar-selected-day { padding: 0; overflow: hidden; }
.calendar-selected-day .planning-section-heading { align-items: center; margin: 0; padding: 18px 22px; border-bottom: 1px solid var(--crivi-line); }
.calendar-selected-day .planning-section-heading span { display: inline-flex; padding: 5px 8px; border-radius: 999px; background: var(--crivi-lavender); color: var(--crivi-purple); font-size: 10px; }
.calendar-selected-day .planning-section-heading h2 { font-size: 21px; }
.calendar-selected-table { overflow-x: auto; }
.calendar-selected-table .data-table { min-width: 950px; }
.calendar-selected-table .data-table th { background: #fbfaff; }
.calendar-deadline-type { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 800; white-space: nowrap; }
.calendar-deadline-type i { width: 9px; height: 9px; border-radius: 999px; background: #dc8b00; }
.calendar-deadline-type.calendar-type-official { color: #a1241b; }
.calendar-deadline-type.calendar-type-official i { background: #d92d20; }
.calendar-official-date { display: inline-block; color: #a1241b; font-weight: 850; }
.calendar-official-alert { color: #a1241b; font-weight: 850; }
.calendar-operational-date { display: inline-block; color: #855000; font-weight: 850; }
.calendar-group-detail { margin: 0; padding: 20px 22px 22px; border-top: 1px solid var(--crivi-line); background: #fcfaff; }
.calendar-group-detail-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.calendar-group-detail-heading span { display: block; color: var(--crivi-purple-2); font-size: 10px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.calendar-group-detail-heading h3 { margin: 5px 0; font-size: 18px; }
.calendar-group-detail-heading p { margin: 0; color: var(--crivi-muted); font-size: 12px; line-height: 1.45; }
.calendar-group-detail-heading > div:last-child { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.calendar-group-detail-heading button { min-height: 32px; padding: 0 10px; border-radius: 9px; box-shadow: none; font-size: 11px; }
.calendar-group-detail-summary { display: inline-flex; margin: 16px 0; padding: 7px 10px; border-radius: 999px; background: var(--crivi-lavender); color: var(--crivi-purple); font-size: 12px; font-weight: 850; }
.calendar-group-detail-table { overflow-x: auto; }
.calendar-group-detail-table .data-table { min-width: 780px; }
.operational-calendar-weekdays, .operational-calendar-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.operational-calendar-weekdays { margin-bottom: 8px; text-align: center; }
.operational-calendar-weekdays span { color: var(--crivi-muted); font-size: 11px; font-weight: 950; }
.operational-calendar-empty { min-height: 78px; border-radius: 14px; background: #fbf9fc; }
.operational-calendar-day { min-height: 78px; display: grid; align-content: center; justify-items: center; gap: 4px; padding: 8px 4px; border: 1px solid var(--crivi-line); border-radius: 14px; background: #fff; box-shadow: none; color: var(--crivi-ink); }
.operational-calendar-day:hover, .operational-calendar-day.is-selected { border-color: rgba(122, 45, 199, .52); background: #faf5ff; }
.operational-calendar-day b { font-size: 16px; }
.operational-calendar-day small { color: var(--crivi-muted); font-size: 10px; font-weight: 850; }
.operational-calendar-day.status-danger { border-color: rgba(190, 56, 44, .42); background: #fff5f4; color: #9c1c1c; }
.operational-calendar-day.status-warning { border-color: rgba(209, 126, 0, .42); background: #fff8ea; color: #9a5a00; }
.operational-calendar-day.status-success { border-color: rgba(61, 141, 71, .38); background: #f4fbf1; color: #257331; }
.operational-calendar-day.status-progress { border-color: rgba(64, 106, 194, .36); background: #f4f7ff; color: #2855ac; }
.planning-week-grid { display: grid; grid-template-columns: repeat(7, minmax(210px, 1fr)); gap: 12px; overflow-x: auto; padding-bottom: 4px; }
.planning-week-day { min-height: 250px; padding: 12px; border: 1px solid var(--crivi-line); border-radius: 16px; background: #fff; }
.planning-week-day.is-selected { border-color: rgba(122, 45, 199, .48); box-shadow: 0 10px 24px rgba(75, 33, 132, .1); }
.planning-week-heading { width: 100%; display: flex; align-items: center; justify-content: space-between; min-height: 36px; padding: 0 2px 10px; border: 0; border-bottom: 1px solid var(--crivi-line); border-radius: 0; background: transparent; box-shadow: none; color: var(--crivi-ink); }
.planning-week-heading span { color: var(--crivi-muted); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.planning-week-heading strong { font-size: 18px; }
.planning-week-day > div { display: grid; gap: 10px; margin-top: 10px; }
.planning-record-list { display: grid; gap: 12px; }
.planning-record { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--crivi-line); }
.planning-record:last-child { border-bottom: 0; }
.planning-record span { color: var(--crivi-muted); font-size: 10px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.planning-record h3 { margin: 5px 0; font-size: 15px; letter-spacing: 0; }
.planning-record p { margin: 0; color: var(--crivi-muted); font-size: 12px; line-height: 1.35; }
.planning-record p strong { color: var(--crivi-ink); }
.planning-record-meta { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.planning-record-meta button { min-height: 30px; padding: 0 9px; border-radius: 9px; box-shadow: none; font-size: 11px; }
.planning-week-day .planning-record { display: grid; gap: 8px; padding: 0 0 10px; }
.planning-week-day .planning-record h3 { font-size: 13px; }
.planning-week-day .planning-record-meta { justify-content: flex-start; }
.planning-week-empty { margin: 14px 0 0; color: var(--crivi-muted); font-size: 12px; line-height: 1.45; }
.planning-unplanned { display: flex; gap: 10px; align-items: baseline; border-color: rgba(209, 126, 0, .28); background: #fffbf2; color: #855000; }
.planning-unplanned span { color: var(--crivi-muted); font-size: 13px; }
.competence-closure-review { margin-bottom: 22px; padding: 22px; border: 1px solid rgba(75, 33, 132, .2); border-radius: var(--radius-card); background: linear-gradient(135deg, #fff, #fbf7ff); box-shadow: var(--crivi-shadow-soft); }
.competence-closure-heading { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 18px; }
.competence-closure-heading span { display: block; color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.competence-closure-heading h2 { margin: 5px 0; font-size: 23px; }
.competence-closure-heading p { margin: 0; color: var(--crivi-muted); font-size: 13px; }
.competence-closure-heading button { min-height: 34px; padding: 0 11px; border-radius: 10px; box-shadow: none; font-size: 12px; }
.competence-closure-status { display: grid; gap: 4px; margin-bottom: 16px; padding: 14px 16px; border: 1px solid; border-radius: 14px; }
.competence-closure-status strong { font-size: 15px; }
.competence-closure-status span { font-size: 13px; line-height: 1.45; }
.competence-closure-status.is-ready { border-color: rgba(61, 141, 71, .32); background: #f4fbf1; color: #21652b; }
.competence-closure-status.is-pending { border-color: rgba(209, 126, 0, .3); background: #fffbf2; color: #855000; }
.competence-closure-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.competence-closure-metrics .metric-card { min-height: 118px; grid-column: auto; padding: 17px; grid-template-columns: minmax(0, 1fr) 44px; }
.competence-closure-metrics .metric-card strong { margin: 7px 0 4px; font-size: 29px; }
.competence-closure-metrics .metric-card i { width: 42px; height: 42px; border-radius: 12px; font-size: 19px; }
.competence-closure-note { margin: 0 0 14px; padding: 12px 14px; border-radius: 12px; background: #fff5f4; color: #9c1c1c; font-size: 13px; line-height: 1.45; }
.competence-closure-table { overflow-x: auto; }
.competence-closure-table .data-table { min-width: 900px; }
.competence-closure-registration, .competence-closure-registration-form { display: grid; gap: 13px; margin: 0 0 16px; padding: 16px; border: 1px solid rgba(122, 45, 199, .22); border-radius: 14px; background: #fff; }
.competence-closure-registration { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.competence-closure-registration span, .competence-closure-registration-form span { display: block; color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.competence-closure-registration strong, .competence-closure-registration-form strong { display: block; margin-top: 5px; color: var(--crivi-ink); font-size: 15px; }
.competence-closure-registration p, .competence-closure-registration small, .competence-closure-registration-form p { margin: 5px 0 0; color: var(--crivi-muted); font-size: 12px; line-height: 1.45; }
.competence-closure-registration button { min-height: 36px; border-radius: 10px; box-shadow: none; white-space: nowrap; }
.competence-closure-registration.is-reviewed { border-color: rgba(61, 141, 71, .28); background: #f7fff5; }
.competence-closure-registration.is-stale { border-color: rgba(209, 126, 0, .34); background: #fffaf1; }
.competence-closure-registration-note { margin: 0 0 16px; padding: 12px 14px; border: 1px dashed var(--crivi-line); border-radius: 12px; color: var(--crivi-muted); font-size: 13px; line-height: 1.45; }
.competence-closure-registration-form label { display: grid; gap: 6px; color: var(--crivi-muted); font-size: 12px; font-weight: 850; }
.competence-closure-registration-form textarea { width: 100%; min-height: 70px; padding: 10px; border: 1px solid var(--crivi-line); border-radius: 10px; resize: vertical; font: inherit; color: var(--crivi-ink); }
.competence-closure-confirmation { display: flex !important; align-items: flex-start; gap: 9px; color: var(--crivi-ink) !important; }
.competence-closure-confirmation input { width: 18px; min-height: 18px; margin: 0; accent-color: var(--crivi-purple-2); }
.competence-report-intro { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 16px; padding: 20px 22px; border: 1px solid rgba(75, 33, 132, .16); border-radius: var(--radius-card); background: linear-gradient(135deg, #fff, #f8f3ff); box-shadow: var(--crivi-shadow-soft); }
.competence-report-intro span { display: block; color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.competence-report-intro h2 { margin: 5px 0; color: var(--crivi-ink); font-size: 24px; }
.competence-report-intro p { max-width: 720px; margin: 0; color: var(--crivi-muted); font-size: 13px; line-height: 1.5; }
.competence-report-intro > strong { flex: 0 0 auto; padding: 11px 14px; border-radius: 13px; background: var(--crivi-purple); color: #fff; font-size: 17px; }
.competence-report-review { display: grid; gap: 4px; margin-bottom: 16px; padding: 14px 16px; border: 1px solid; border-radius: 14px; }
.competence-report-review strong { font-size: 15px; }
.competence-report-review span { font-size: 13px; line-height: 1.45; }
.competence-report-review.is-reviewed { border-color: rgba(61, 141, 71, .32); background: #f4fbf1; color: #21652b; }
.competence-report-review.is-pending { border-color: rgba(209, 126, 0, .3); background: #fffbf2; color: #855000; }
.competence-report-review.is-attention { border-color: rgba(190, 56, 44, .3); background: #fff5f4; color: #9c1c1c; }
.competence-report-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.competence-report-metrics .metric-card { min-height: 118px; grid-column: auto; padding: 17px; grid-template-columns: minmax(0, 1fr) 44px; }
.competence-report-metrics .metric-card strong { margin: 7px 0 4px; font-size: 29px; }
.competence-report-metrics .metric-card i { width: 42px; height: 42px; border-radius: 12px; font-size: 17px; }
.competence-report-note { margin: 0 0 12px; padding: 12px 14px; border: 1px solid rgba(75, 33, 132, .16); border-radius: 12px; background: #faf7ff; color: var(--crivi-ink); font-size: 13px; line-height: 1.45; }
.competence-report-note.is-warning { border-color: rgba(209, 126, 0, .3); background: #fffbf2; color: #855000; }
.competence-report-table { margin-bottom: 16px; padding: 18px; overflow-x: auto; border: 1px solid rgba(75, 33, 132, .12); border-radius: var(--radius-card); background: #fff; box-shadow: var(--crivi-shadow-soft); }
.competence-report-table .planning-section-heading { min-width: 760px; margin-bottom: 12px; }
.competence-report-table .data-table { min-width: 760px; }
.competence-history-description { min-width: 760px; margin: 0 0 14px; color: var(--crivi-muted); font-size: 12px; line-height: 1.45; }
.competence-history-empty { overflow: visible; }
.routine-competence-control {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 6px 8px;
  border: 1px solid rgba(122, 45, 199, 0.24);
  border-radius: 18px;
  background: linear-gradient(135deg, #fff, #f5ebff);
  box-shadow: 0 10px 24px rgba(75, 33, 132, 0.09);
}
.routine-competence-control label {
  display: grid;
  gap: 3px;
  min-width: 188px;
  color: var(--crivi-purple);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.routine-competence-control input {
  height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--crivi-ink);
  font-weight: 900;
  font-size: 18px;
}
.routine-competence-control button {
  min-height: 38px;
  padding: 0 13px;
  border-radius: 13px;
  box-shadow: var(--crivi-shadow-soft);
  font-size: 14px;
  font-weight: 950;
}
.data-table { width: 100%; border-collapse: collapse; overflow: hidden; border-radius: 16px; }
.data-table th, .data-table td { padding: 16px; border-bottom: 1px solid var(--crivi-line); text-align: left; }
.data-table th { color: var(--crivi-muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; }
.data-table td strong, .data-table td small { display: block; }
.data-table td small { margin-top: 4px; color: var(--crivi-muted); font-size: 12px; line-height: 1.35; }
.company-list-table .data-table { table-layout: fixed; }
.company-list-table .data-table th,
.company-list-table .data-table td { padding: 12px 14px; vertical-align: middle; }
.company-list-table .data-table th:nth-child(1),
.company-list-table .data-table td:nth-child(1) { width: 58%; }
.company-list-table .data-table th:nth-child(2),
.company-list-table .data-table td:nth-child(2) { width: 24%; }
.company-list-table .data-table th:nth-child(3),
.company-list-table .data-table td:nth-child(3) { width: 18%; text-align: right; }
.company-list-name {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  line-height: 1.25;
}
.company-list-document {
  display: inline-block;
  white-space: nowrap;
  color: var(--crivi-ink);
  font-size: 13px;
  font-weight: 800;
}
.company-list-table .row-actions {
  justify-content: flex-end;
  flex-wrap: nowrap;
  gap: 6px;
}
.company-list-table .row-actions button {
  min-height: 30px;
  padding: 0 9px;
  font-size: 11px;
}
.company-operation-overview {
  display: grid;
  gap: 18px;
  margin-bottom: 22px;
  padding: 22px;
  border: 1px solid rgba(75, 33, 132, 0.16);
  border-radius: 20px;
  background: linear-gradient(135deg, #fffefd, #f8f4ff);
  box-shadow: var(--crivi-shadow-soft);
}
.company-operation-header,
.company-operation-section > div:first-child {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.company-operation-header span,
.company-operation-section span {
  display: block;
  margin-bottom: 5px;
  color: var(--crivi-purple-2);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.company-operation-header h3,
.company-operation-section h4 {
  margin: 0;
  color: var(--crivi-ink);
}
.company-operation-header p,
.company-operation-header small,
.company-operation-section p {
  display: block;
  margin: 7px 0 0;
  color: var(--crivi-muted);
  line-height: 1.45;
}
.company-operation-header small { max-width: 720px; font-size: 12px; }
.company-operation-header button { flex: 0 0 auto; }
.company-operation-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.company-operation-metric {
  min-height: 112px;
  padding: 16px;
  border: 1px solid rgba(75, 33, 132, 0.1);
  border-radius: 14px;
  background: #fff;
}
.company-operation-metric span,
.company-operation-metric small { display: block; color: var(--crivi-muted); }
.company-operation-metric span { font-size: 12px; font-weight: 850; }
.company-operation-metric strong { display: block; margin: 8px 0 4px; color: var(--crivi-ink); font-size: 28px; line-height: 1; }
.company-operation-metric small { font-size: 11px; line-height: 1.35; }
.company-operation-metric.is-open { border-top: 3px solid #f59e0b; }
.company-operation-metric.is-critical { border-top: 3px solid #dc2626; }
.company-operation-metric.is-completed { border-top: 3px solid #22a06b; }
.company-operation-metric.is-unassigned { border-top: 3px solid var(--crivi-purple-2); }
.company-operation-section {
  padding-top: 18px;
  border-top: 1px solid var(--crivi-line);
}
.company-operation-section h4 { font-size: 17px; }
.company-operation-section p { font-size: 13px; }
.company-operation-table,
.company-operation-history-table { margin-top: 14px; overflow-x: auto; }
.company-operation-table .data-table,
.company-operation-history-table .data-table { min-width: 760px; }
.company-operation-empty {
  display: grid;
  gap: 5px;
  margin-top: 14px;
  padding: 15px;
  border: 1px dashed rgba(75, 33, 132, 0.22);
  border-radius: 12px;
  color: var(--crivi-muted);
  background: rgba(255, 255, 255, 0.72);
  font-size: 13px;
}
.company-operation-empty strong { color: var(--crivi-ink); }
.badge { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border-radius: 999px; background: var(--crivi-lavender); color: var(--crivi-purple); font-weight: 850; font-size: 12px; }
.row-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.row-actions button { min-height: 32px; padding: 0 10px; border-radius: 999px; box-shadow: none; font-size: 12px; font-weight: 850; }
.row-actions .danger { border-color: rgba(190, 56, 44, 0.28); background: #fff8f7; color: #b42318; }
.routine-blocks,
.routine-block-detail {
  margin-bottom: 24px;
  padding: 22px;
  border: 1px solid rgba(75, 33, 132, 0.12);
  border-radius: 20px;
  background: linear-gradient(135deg, #fffefd, #fbf7ff);
  box-shadow: var(--crivi-shadow-soft);
}
.routine-blocks-header,
.routine-block-detail-header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  margin-bottom: 18px;
}
.routine-blocks-header span,
.routine-block-detail-header span,
.routine-block-card span {
  color: var(--crivi-purple-2);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.routine-blocks h3,
.routine-block-detail h3,
.routine-block-card h4 {
  margin: 6px 0;
  letter-spacing: 0;
}
.routine-blocks p,
.routine-block-detail p,
.routine-block-card p,
.routine-block-meta small {
  margin: 0;
  color: var(--crivi-muted);
  line-height: 1.4;
}
.routine-block-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.routine-block-card {
  display: grid;
  gap: 16px;
  min-height: 190px;
  padding: 18px;
  border: 1px solid var(--crivi-line);
  border-left: 7px solid var(--routine-status-color, var(--crivi-line));
  border-radius: 16px;
  background: white;
}
.routine-status-card,
.routine-status-detail {
  --routine-status-color: #d7d1df;
  --routine-status-bg: #f6f3fa;
  --routine-status-text: #4e4564;
}
.routine-status-card.status-success,
.routine-status-detail.status-success,
.routine-status-badge.status-success,
.routine-status-select.status-success,
.routine-progress-bar.status-success {
  --routine-status-color: #53a83e;
  --routine-status-bg: #eef9ec;
  --routine-status-text: #276b1f;
}
.routine-status-card.status-progress,
.routine-status-detail.status-progress,
.routine-status-badge.status-progress,
.routine-status-select.status-progress,
.routine-progress-bar.status-progress {
  --routine-status-color: #2f7bdc;
  --routine-status-bg: #eef5ff;
  --routine-status-text: #174d94;
}
.routine-status-card.status-partial,
.routine-status-detail.status-partial,
.routine-status-badge.status-partial,
.routine-status-select.status-partial,
.routine-progress-bar.status-partial {
  --routine-status-color: #f59e0b;
  --routine-status-bg: #fff7df;
  --routine-status-text: #8a5600;
}
.routine-status-card.status-warning,
.routine-status-detail.status-warning,
.routine-status-badge.status-warning,
.routine-status-select.status-warning,
.routine-progress-bar.status-warning,
.routine-status-card.status-waiting,
.routine-status-detail.status-waiting,
.routine-status-badge.status-waiting,
.routine-status-select.status-waiting,
.routine-progress-bar.status-waiting {
  --routine-status-color: #e6b31e;
  --routine-status-bg: #fff8dc;
  --routine-status-text: #74520d;
}
.routine-status-card.status-danger,
.routine-status-detail.status-danger,
.routine-status-badge.status-danger,
.routine-status-select.status-danger,
.routine-progress-bar.status-danger {
  --routine-status-color: #df3d32;
  --routine-status-bg: #fff0ef;
  --routine-status-text: #9a1f19;
}
.routine-status-card.status-neutral,
.routine-status-detail.status-neutral,
.routine-status-badge.status-neutral,
.routine-status-select.status-neutral,
.routine-progress-bar.status-neutral,
.routine-status-card.status-not-started,
.routine-status-detail.status-not-started,
.routine-status-badge.status-not-started,
.routine-status-select.status-not-started,
.routine-progress-bar.status-not-started {
  --routine-status-color: #9a91aa;
  --routine-status-bg: #f5f2f8;
  --routine-status-text: #514860;
}
.routine-status-card {
  box-shadow: 0 16px 32px rgba(35, 20, 70, 0.08);
}
.routine-status-detail {
  border-left: 7px solid var(--routine-status-color);
}
.routine-block-title {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}
.routine-status-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid color-mix(in srgb, var(--routine-status-color) 42%, transparent);
  border-radius: 999px;
  background: var(--routine-status-bg);
  color: var(--routine-status-text);
  font-size: 12px;
  font-weight: 950;
  white-space: nowrap;
}
.routine-company-status {
  width: max-content;
}
.payroll-obligation-tag {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid rgba(111, 45, 189, 0.24);
  border-radius: 999px;
  background: rgba(111, 45, 189, 0.1);
  color: var(--crivi-purple);
  font-size: 11px;
  font-weight: 900;
}
.payroll-obligation-employees {
  border-color: rgba(24, 32, 42, 0.18);
  background: rgba(24, 32, 42, 0.06);
  color: var(--crivi-ink);
}
.payroll-obligation-employees-and-prolabore {
  border-color: rgba(111, 45, 189, 0.34);
  background: linear-gradient(90deg, rgba(111, 45, 189, 0.12), rgba(219, 180, 82, 0.18));
  color: var(--crivi-purple);
}
.prefeitura-routine-tag {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid rgba(74, 88, 118, 0.2);
  border-radius: 999px;
  background: rgba(74, 88, 118, 0.07);
  color: #36425d;
  font-size: 11px;
  font-weight: 900;
}
.prefeitura-routine-tag-servicos-prestados {
  border-color: rgba(40, 101, 182, 0.25);
  background: rgba(40, 101, 182, 0.1);
  color: #24558e;
}
.prefeitura-routine-tag-servicos-tomados {
  border-color: rgba(111, 45, 189, 0.24);
  background: rgba(111, 45, 189, 0.1);
  color: var(--crivi-purple);
}
.prefeitura-routine-tag-prestados-tomados {
  border-color: rgba(219, 180, 82, 0.34);
  background: linear-gradient(90deg, rgba(40, 101, 182, 0.09), rgba(111, 45, 189, 0.1), rgba(219, 180, 82, 0.14));
  color: var(--crivi-purple);
}
.union-routine-tag {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid rgba(219, 180, 82, 0.34);
  border-radius: 999px;
  background: rgba(219, 180, 82, 0.12);
  color: #5f4510;
  font-size: 11px;
  font-weight: 900;
}
.union-routine-tag-pendente-anterior {
  border-color: rgba(209, 99, 41, 0.32);
  background: rgba(209, 99, 41, 0.1);
  color: #9a4216;
}
.union-routine-tag-competencia-atual {
  border-color: rgba(111, 45, 189, 0.24);
  background: rgba(111, 45, 189, 0.09);
  color: var(--crivi-purple);
}
.regularity-routine-tag {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid rgba(40, 101, 182, 0.25);
  border-radius: 999px;
  background: rgba(40, 101, 182, 0.09);
  color: #24558e;
  font-size: 11px;
  font-weight: 900;
}
.regularity-routine-tag-vencido,
.regularity-routine-tag-vencida {
  border-color: rgba(223, 61, 50, 0.32);
  background: #fff0ef;
  color: #9a1f19;
}
.regularity-routine-tag-vence-este-mes {
  border-color: rgba(230, 179, 30, 0.4);
  background: #fff8dc;
  color: #765305;
}
.regularity-routine-tag-pendencia-cadastral {
  border-color: rgba(154, 145, 170, 0.25);
  background: #f7f4fa;
  color: #514860;
}
.routine-inline-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.routine-unit-tag,
.routine-due-badge {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
}
.routine-unit-tag {
  border: 1px solid rgba(43, 78, 122, 0.18);
  background: rgba(43, 78, 122, 0.07);
  color: #27476f;
}
.routine-due-badge {
  flex-wrap: wrap;
  gap: 6px;
  border: 1px solid rgba(154, 145, 170, 0.25);
  background: #f7f4fa;
  color: #514860;
}
.routine-due-badge small {
  color: inherit;
  font-size: 10px;
  font-weight: 800;
  opacity: 0.82;
}
.routine-due-badge.due-danger {
  border-color: rgba(223, 61, 50, 0.32);
  background: #fff0ef;
  color: #9a1f19;
}
.routine-due-badge.due-warning {
  border-color: rgba(230, 179, 30, 0.38);
  background: #fff8dc;
  color: #74520d;
}
.routine-due-badge.due-success {
  border-color: rgba(83, 168, 62, 0.32);
  background: #eef9ec;
  color: #276b1f;
}
.routine-progress-bar {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: color-mix(in srgb, var(--routine-status-color) 16%, white);
}
.routine-progress-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--routine-status-color);
}
.routine-status-counters {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.routine-status-counters span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 26px;
  padding: 0 8px;
  border-radius: 999px;
  background: #faf7ff;
  color: var(--crivi-muted);
  font-size: 11px;
  font-weight: 850;
}
.routine-status-counters strong {
  color: var(--crivi-ink);
}
.routine-company-filters {
  display: grid;
  gap: 12px;
  margin: 20px 0 14px;
  padding: 14px 16px;
  border: 1px solid rgba(122, 45, 199, 0.14);
  border-radius: 14px;
  background: rgba(250, 247, 255, 0.74);
}
.routine-block-filters {
  display: grid;
  gap: 12px;
  margin: 0 0 18px;
  padding: 14px 16px;
  border: 1px solid rgba(122, 45, 199, 0.14);
  border-radius: 14px;
  background: rgba(250, 247, 255, 0.74);
}
.routine-company-filters > div:first-child { display: grid; gap: 3px; }
.routine-block-filters > div:first-child { display: grid; gap: 3px; }
.routine-company-filters span { color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: 0.07em; text-transform: uppercase; }
.routine-block-filters span { color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: 0.07em; text-transform: uppercase; }
.routine-company-filters strong { color: var(--crivi-ink); font-size: 15px; }
.routine-block-filters strong { color: var(--crivi-ink); font-size: 15px; }
.routine-company-filters small { color: var(--crivi-muted); font-size: 12px; line-height: 1.35; }
.routine-block-filters small { color: var(--crivi-muted); font-size: 12px; line-height: 1.35; }
.routine-company-filter-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.routine-company-search { display: grid; gap: 5px; width: min(100%, 560px); }
.routine-company-search span { color: var(--crivi-muted); font-size: 11px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.routine-company-search input { min-height: 42px; padding: 9px 12px; border: 1px solid var(--crivi-line); border-radius: 10px; background: #fff; color: var(--crivi-ink); }
.routine-company-filter-select { display: grid; gap: 4px; min-width: 155px; color: var(--crivi-muted); font-size: 10px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.routine-company-filter-select select { min-height: 34px; padding: 0 9px; border: 1px solid var(--crivi-line); border-radius: 9px; background: #fff; color: var(--crivi-ink); font: inherit; font-size: 12px; letter-spacing: 0; text-transform: none; }
.routine-company-filter-list { display: flex; flex: 1; flex-wrap: wrap; gap: 8px; }
.routine-company-filter {
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid rgba(122, 45, 199, 0.18);
  border-radius: 999px;
  background: #fff;
  color: var(--crivi-muted);
  box-shadow: none;
  font-size: 12px;
  font-weight: 850;
}
.routine-company-filter strong { margin-left: 3px; color: inherit; font-size: inherit; }
.routine-company-filter:hover { border-color: rgba(122, 45, 199, 0.42); color: var(--crivi-purple); background: #faf6ff; }
.routine-company-filter.is-active { border-color: var(--crivi-purple); background: var(--crivi-purple); color: #fff; }
.routine-company-refresh { min-height: 34px; padding: 0 13px; border-radius: 999px; box-shadow: none; white-space: nowrap; font-size: 12px; font-weight: 850; }
.routine-filter-empty { display: grid; gap: 6px; padding: 24px; border: 1px dashed rgba(122, 45, 199, 0.2); border-radius: 14px; background: #fff; color: var(--crivi-muted); text-align: center; }
.routine-filter-empty strong { color: var(--crivi-ink); }
.honorarium-report { display: grid; gap: 18px; }
.honorarium-report-filters { display: grid; grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(145px, .75fr)) minmax(190px, 1fr) auto auto; gap: 12px; align-items: end; }
.honorarium-report-filters > div, .honorarium-report-filters label { display: grid; gap: 5px; }
.honorarium-report-filters span, .honorarium-report-filters label { color: var(--crivi-muted); font-size: 11px; font-weight: 900; }
.honorarium-report-filters strong { color: var(--crivi-ink); font-size: 17px; }
.honorarium-report-filters input, .honorarium-report-filters select { min-height: 40px; padding: 8px 10px; border: 1px solid var(--crivi-line); border-radius: 9px; background: #fff; color: var(--crivi-ink); }
.honorarium-report-totals { display: grid; grid-template-columns: repeat(3, minmax(160px, 1fr)); gap: 12px; }
.honorarium-report-totals article { display: grid; gap: 5px; padding: 15px; border: 1px solid var(--crivi-line); border-radius: 12px; background: var(--crivi-soft); }
.honorarium-report-totals span { color: var(--crivi-muted); font-size: 12px; }
.honorarium-report-totals strong { color: var(--crivi-ink); font-size: 20px; }
.routine-detail-status {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 8px 0;
}
.routine-detail-status strong {
  color: var(--routine-status-text);
  font-size: 18px;
}
.routine-company-line {
  display: grid;
  gap: 6px;
}
.routine-status-select {
  border-color: color-mix(in srgb, var(--routine-status-color) 52%, white) !important;
  background: var(--routine-status-bg) !important;
  color: var(--routine-status-text) !important;
  font-weight: 850;
}
.routine-area-card {
  min-height: 210px;
  border-color: rgba(122, 45, 199, 0.16);
  background: linear-gradient(145deg, #fff, #fbf6ff);
}
.routine-area-card.status-success {
  border-color: rgba(83, 168, 62, .32);
  border-left-color: #53a83e;
  background: linear-gradient(145deg, #fff, #f1faef);
}
.routine-area-card.status-progress {
  border-color: rgba(47, 123, 220, .32);
  border-left-color: #2f7bdc;
  background: linear-gradient(145deg, #fff, #eff6ff);
}
.routine-area-card.status-warning {
  border-color: rgba(230, 179, 30, .38);
  border-left-color: #e6b31e;
  background: linear-gradient(145deg, #fff, #fff9e9);
}
.routine-area-card.status-danger {
  border-color: rgba(223, 61, 50, .34);
  border-left-color: #df3d32;
  background: linear-gradient(145deg, #fff, #fff2f1);
}
.routine-area-card.status-neutral {
  border-left-color: #9a91aa;
}
.routine-area-card.is-inactive { opacity: .72; border-style: dashed; }
.routine-area-actions { margin-top: -8px; }
.tenant-template-panel { display: grid; gap: 14px; margin: 0 0 18px; padding: 18px; border: 1px solid rgba(122, 45, 199, .2); border-radius: 14px; background: linear-gradient(135deg, #fbf8ff, #fff); }
.tenant-template-panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.tenant-template-panel-header > div { display: grid; gap: 5px; }
.tenant-template-panel-header span { color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.tenant-template-panel-header h3, .tenant-template-panel-header p { margin: 0; }
.tenant-template-panel-header p, .tenant-template-note, .tenant-template-row p, .tenant-template-empty span { color: var(--crivi-muted); line-height: 1.45; }
.tenant-template-panel-header button { min-height: 36px; border-radius: 10px; white-space: nowrap; box-shadow: none; }
.tenant-template-list { display: grid; gap: 8px; }
.tenant-template-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 13px 14px; border: 1px solid rgba(42, 29, 80, .1); border-radius: 11px; background: #fff; }
.tenant-template-row > div:first-child { display: grid; gap: 3px; min-width: 0; }
.tenant-template-row strong { color: var(--crivi-ink); }
.tenant-template-row small { color: var(--crivi-purple); font-weight: 800; }
.tenant-template-row p { margin: 0; font-size: 12px; }
.tenant-template-row.is-inactive { opacity: .7; border-style: dashed; }
.tenant-template-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; flex-shrink: 0; }
.tenant-template-actions button { min-height: 34px; padding: 0 12px; border-radius: 9px; box-shadow: none; font-size: 12px; }
.tenant-template-application { display: grid; grid-column: 1 / -1; gap: 13px; width: 100%; padding: 14px; border: 1px solid rgba(122, 45, 199, .23); border-radius: 11px; background: #fbf8ff; }
.tenant-template-application > div:first-child { display: grid; gap: 4px; }
.tenant-template-application h4, .tenant-template-application p { margin: 0; }
.tenant-template-application > div:first-child > span { color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.tenant-template-application p { color: var(--crivi-muted); line-height: 1.45; }
.tenant-template-application-summary { display: grid; gap: 3px; padding: 11px; border-radius: 9px; background: #fff; color: var(--crivi-muted); font-size: 12px; }
.tenant-template-application-summary strong { color: var(--crivi-ink); }
.tenant-template-application fieldset { margin: 0; border: 0; padding: 0; }
.tenant-template-application legend { margin-bottom: 8px; color: var(--crivi-ink); font-size: 12px; font-weight: 900; }
.tenant-template-company-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-height: 220px; overflow-y: auto; padding: 3px; }
.tenant-template-company-choice { display: flex; align-items: center; gap: 8px; min-height: 36px; padding: 8px 10px; border: 1px solid rgba(42, 29, 80, .12); border-radius: 9px; background: #fff; color: var(--crivi-ink); font-size: 12px; font-weight: 800; }
.tenant-template-company-choice input { width: auto; min-height: auto; }
.tenant-template-company-choice span { display: grid; gap: 2px; }
.tenant-template-company-choice small { color: var(--crivi-muted); font-size: 11px; font-weight: 600; line-height: 1.35; }
.tenant-template-empty { display: grid; gap: 5px; padding: 15px; border: 1px dashed rgba(122, 45, 199, .25); border-radius: 11px; background: rgba(255, 255, 255, .72); }
.tenant-template-note { margin: 0; font-size: 12px; }
.tenant-template-evolution .company-form-grid { margin: 0; }
.tenant-template-comparison { display: grid; grid-column: 1 / -1; gap: 13px; width: 100%; padding: 14px; border: 1px solid rgba(61, 103, 181, .24); border-radius: 11px; background: #f8fbff; }
.tenant-template-comparison > div:first-child { display: grid; gap: 4px; }
.tenant-template-comparison h4, .tenant-template-comparison p { margin: 0; }
.tenant-template-comparison > div:first-child > span { color: #3569b8; font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.tenant-template-comparison p { color: var(--crivi-muted); line-height: 1.45; }
.tenant-template-comparison-table { overflow-x: auto; border: 1px solid rgba(42, 29, 80, .1); border-radius: 9px; background: #fff; }
.tenant-template-comparison-table table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: 12px; }
.tenant-template-comparison-table th, .tenant-template-comparison-table td { padding: 9px 10px; border-bottom: 1px solid rgba(42, 29, 80, .08); text-align: left; vertical-align: top; line-height: 1.4; }
.tenant-template-comparison-table thead th { color: var(--crivi-muted); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.tenant-template-comparison-table tbody th { color: var(--crivi-ink); }
.tenant-template-comparison-table tbody tr.is-changed { background: #fff9ed; }
.tenant-template-comparison-table tbody tr.is-changed .badge { color: #9a5c00; background: #fff1cb; }
.routine-area-removal-choice { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin: 18px 0; padding: 16px 18px; border: 1px solid rgba(196, 79, 54, .26); border-radius: 12px; background: #fff8f6; }
.routine-area-removal-choice > div:first-child { display: grid; gap: 5px; }
.routine-area-removal-choice span { color: #a53d27; font-size: 11px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.routine-area-removal-choice h4, .routine-area-removal-choice p { margin: 0; }
.routine-area-removal-choice p { color: var(--crivi-muted); line-height: 1.45; }
.routine-eventual-tag { border-color: rgba(122, 45, 199, .28); background: rgba(122, 45, 199, .1); color: var(--crivi-purple); }
.routine-eventual-company-form,
.routine-company-link-form {
  display: grid;
  gap: 16px;
  margin: 16px 0;
  padding: 18px;
  border: 1px solid rgba(122, 45, 199, .22);
  border-radius: 16px;
  background: #fbf8ff;
}
.routine-eventual-company-form > div:first-child,
.routine-company-link-form > div:first-child { display: grid; gap: 5px; }
.routine-eventual-company-form > div:first-child span,
.routine-company-link-form > div:first-child span { color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.routine-eventual-company-form h4,
.routine-company-link-form h4 { margin: 0; color: var(--crivi-ink); }
.routine-eventual-company-form p,
.routine-company-link-form p { margin: 0; }
.routine-eventual-company-form textarea,
.routine-company-link-form textarea { width: 100%; min-height: 82px; padding: 10px; border: 1px solid var(--crivi-line); border-radius: 10px; color: var(--crivi-ink); font: inherit; resize: vertical; }
.routine-link-current-company { display: grid !important; gap: 4px; padding: 13px; border: 1px solid rgba(122, 45, 199, .18); border-radius: 12px; background: #fff; }
.routine-link-current-company strong { color: var(--crivi-ink); font-size: 13px; }
.routine-link-current-company span { color: var(--crivi-purple) !important; font-size: 15px !important; letter-spacing: 0 !important; text-transform: none !important; }
.routine-link-current-company small { color: var(--crivi-muted); font-size: 12px; }
.routine-company-link-actions { margin-top: 4px; }
.irpf-installment-config {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 15px;
  border: 1px solid rgba(122, 45, 199, .2);
  border-radius: 13px;
  background: #fff;
}
.irpf-installment-config legend {
  padding: 0 7px;
  color: var(--crivi-ink);
  font-size: 13px;
  font-weight: 900;
}
.irpf-installment-config > p { grid-column: 1 / -1; color: var(--crivi-muted); font-size: 12px; line-height: 1.45; }
.irpf-installment-config label { display: grid; gap: 7px; color: var(--crivi-text); font-size: 12px; font-weight: 850; }
.irpf-installment-config input,
.irpf-installment-config select,
.irpf-installment-config textarea { width: 100%; min-width: 0; border: 1px solid var(--crivi-line); border-radius: 10px; background: #fff; color: var(--crivi-ink); font: inherit; }
.irpf-installment-config input,
.irpf-installment-config select { min-height: 42px; padding: 0 11px; }
.irpf-installment-config textarea { min-height: 68px; padding: 10px 11px; resize: vertical; }
.irpf-installment-control { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 3px; }
.irpf-installment-control > small { color: var(--crivi-muted); line-height: 1.35; }
.irpf-installment-control > .irpf-installment-previous-pending { padding: 4px 8px; border-radius: 6px; background: rgba(230, 154, 26, .11); color: #8a5a0a; font-weight: 800; }
.irpf-installment-control button { min-height: 30px; padding: 0 10px; border-radius: 999px; box-shadow: none; font-size: 11px; font-weight: 850; }
.irpf-installment-tag { display: inline-flex; align-items: center; min-height: 25px; padding: 0 10px; border: 1px solid rgba(122, 45, 199, .24); border-radius: 999px; background: rgba(122, 45, 199, .09); color: var(--crivi-purple); font-size: 11px; font-weight: 950; }
.routine-list-table { overflow-x: auto; }
.routine-list-table .data-table { min-width: 980px; }
.routine-area-grid .routine-block-card h4 {
  font-size: 21px;
}
.routine-block-card button {
  justify-self: start;
  min-height: 38px;
  border-radius: 999px;
  box-shadow: none;
}
.routine-block-meta {
  display: grid;
  gap: 4px;
}
.routine-block-meta strong {
  color: var(--crivi-ink);
}
.routine-block-detail select,
.routine-block-detail input {
  width: 100%;
  min-height: 38px;
  border: 1px solid var(--crivi-line);
  border-radius: 12px;
  background: white;
  color: var(--crivi-ink);
  padding: 0 10px;
}

.difal-value-control,
.destda-difal-reference {
  display: grid;
  gap: 6px;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid #dfd1f4;
  border-radius: 10px;
  background: #faf7ff;
}

.difal-value-control label { display: flex; align-items: center; gap: 8px; font-weight: 800; }
.difal-value-control label[data-difal-amount-field] { align-items: flex-start; flex-direction: column; }
.difal-value-control input[type="checkbox"] { width: auto; }
.difal-value-control input[data-difal-amount] { max-width: 180px; }
.destda-difal-reference span, .destda-difal-reference small { color: var(--crivi-muted); }
.destda-difal-reference strong { color: var(--crivi-purple-2); font-size: 18px; }

.routine-company-document {
  display: block;
  margin-top: 3px;
  color: var(--crivi-muted);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 0.01em;
}

.routine-checklist-company-identity h4 { margin-bottom: 0; }
.routine-step-list {
  display: grid;
  gap: 12px;
  margin-bottom: 18px;
  padding: 16px;
  border: 1px solid rgba(122, 45, 199, 0.14);
  border-radius: 16px;
  background: rgba(250, 247, 255, 0.78);
}
.routine-step-list strong {
  color: var(--crivi-ink);
}
.routine-step-list div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.routine-step-list span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--crivi-line);
  color: var(--crivi-muted);
  font-size: 12px;
  font-weight: 800;
}
.routine-company-step-progress { display: grid; gap: 4px; min-width: 142px; }
.routine-company-step-progress strong { color: var(--crivi-ink); font-size: 13px; }
.routine-company-step-progress small { color: var(--crivi-muted); font-size: 11px; }
.routine-company-step-progress button { width: max-content; min-height: 31px; padding: 0 10px; border-radius: 9px; box-shadow: none; font-size: 11px; }
.routine-company-table { overflow-x: auto; }
.routine-company-table .data-table { min-width: 900px; }
.routine-company-observation-row td { padding: 0 12px 12px !important; border-top: 0; background: #fcfbff; }
.routine-company-observation { display: grid; gap: 9px; padding: 13px 14px; border: 1px solid rgba(122, 45, 199, .18); border-radius: 11px; background: #fff; }
.routine-company-observation header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.routine-company-observation header > div { display: grid; gap: 3px; }
.routine-company-observation span, .routine-company-step-observation span { color: var(--crivi-purple-2); font-size: 10px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.routine-company-observation strong { color: var(--crivi-ink); font-size: 13px; }
.routine-company-observation p { margin: 0; color: var(--crivi-ink); font-size: 13px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.routine-company-observation small { color: var(--crivi-muted); font-size: 11px; }
.routine-company-observation button, .routine-company-observation-editor button { min-height: 32px; padding: 0 10px; border-radius: 9px; box-shadow: none; font-size: 11px; white-space: nowrap; }
.routine-company-observation-empty { color: var(--crivi-muted) !important; }
.routine-company-observation-editor { display: grid; gap: 10px; padding: 13px 14px; border: 1px solid rgba(122, 45, 199, .28); border-radius: 11px; background: #fff; }
.routine-company-observation-editor label, .routine-company-step-observation-editor label { display: grid; gap: 6px; color: var(--crivi-muted); font-size: 12px; font-weight: 850; }
.routine-company-observation-editor textarea, .routine-company-step-observation-editor textarea { width: 100%; min-height: 92px; padding: 10px; border: 1px solid var(--crivi-line); border-radius: 10px; resize: vertical; color: var(--crivi-ink); font: inherit; line-height: 1.45; }
.routine-company-observation-editor p { margin: 0; color: var(--crivi-muted); font-size: 12px; line-height: 1.4; }
.routine-company-observation-editor footer, .routine-company-step-observation-editor footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.routine-batch-owner-form { display: grid; gap: 16px; margin: 18px 0; padding: 20px; border: 1px solid rgba(122, 45, 199, 0.22); border-radius: 14px; background: #fbf8ff; }
.routine-batch-owner-form header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.routine-batch-owner-form header > div { display: grid; gap: 5px; }
.routine-batch-owner-form header span { color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.routine-batch-owner-form h4, .routine-batch-owner-form p { margin: 0; }
.routine-batch-owner-form p, .routine-batch-owner-note { color: var(--crivi-muted); line-height: 1.4; }
.routine-batch-owner-form header button, .routine-batch-owner-form footer button { min-height: 36px; padding: 0 12px; border-radius: 9px; box-shadow: none; }
.routine-batch-owner-controls { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(280px, 1.2fr); gap: 14px; }
.routine-batch-owner-controls > label { display: grid; gap: 5px; color: var(--crivi-muted); font-size: 11px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.routine-batch-owner-controls select { min-height: 38px; padding: 0 10px; border: 1px solid var(--crivi-line); border-radius: 9px; background: #fff; color: var(--crivi-ink); font: inherit; font-size: 13px; letter-spacing: 0; text-transform: none; }
.routine-batch-owner-controls fieldset { display: flex; flex-wrap: wrap; gap: 10px 16px; margin: 0; padding: 10px 12px; border: 1px solid var(--crivi-line); border-radius: 10px; background: #fff; }
.routine-batch-owner-controls legend { padding: 0 4px; color: var(--crivi-muted); font-size: 11px; font-weight: 900; }
.routine-batch-owner-controls fieldset label, .routine-batch-owner-select-all { display: flex; align-items: center; gap: 8px; color: var(--crivi-ink); font-size: 13px; font-weight: 750; }
.routine-batch-owner-select-all { width: max-content; }
.routine-batch-owner-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; max-height: 280px; overflow-y: auto; padding: 3px; }
.routine-batch-owner-company { display: flex; align-items: flex-start; gap: 9px; min-width: 0; padding: 11px; border: 1px solid #e6def0; border-radius: 10px; background: #fff; cursor: pointer; }
.routine-batch-owner-company:hover { border-color: rgba(122, 45, 199, .45); background: #fdfaff; }
.routine-batch-owner-company span { display: grid; gap: 3px; min-width: 0; }
.routine-batch-owner-company strong { overflow: hidden; color: var(--crivi-ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.routine-batch-owner-company small { color: var(--crivi-muted); font-size: 11px; line-height: 1.35; }
.routine-batch-owner-form footer { display: flex; justify-content: flex-end; gap: 10px; }
.routine-batch-checklist-form { display: grid; gap: 16px; margin: 18px 0; padding: 20px; border: 1px solid rgba(122, 45, 199, 0.22); border-radius: 14px; background: #fbf8ff; }
.routine-batch-checklist-form header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.routine-batch-checklist-form header > div { display: grid; gap: 5px; }
.routine-batch-checklist-form header span { color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.routine-batch-checklist-form h4, .routine-batch-checklist-form p { margin: 0; }
.routine-batch-checklist-form p, .routine-batch-checklist-note { color: var(--crivi-muted); line-height: 1.4; }
.routine-batch-checklist-form header button, .routine-batch-checklist-form footer button { min-height: 36px; padding: 0 12px; border-radius: 9px; box-shadow: none; }
.routine-batch-checklist-controls { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(280px, 1.2fr); gap: 14px; }
.routine-batch-checklist-controls > label { display: grid; gap: 5px; color: var(--crivi-muted); font-size: 11px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.routine-batch-checklist-controls select { min-height: 38px; padding: 0 10px; border: 1px solid var(--crivi-line); border-radius: 9px; background: #fff; color: var(--crivi-ink); font: inherit; font-size: 13px; letter-spacing: 0; text-transform: none; }
.routine-batch-checklist-controls > label small { color: var(--crivi-muted); font-size: 11px; font-weight: 650; letter-spacing: 0; text-transform: none; }
.routine-batch-checklist-controls fieldset { display: flex; flex-wrap: wrap; gap: 10px 16px; margin: 0; padding: 10px 12px; border: 1px solid var(--crivi-line); border-radius: 10px; background: #fff; }
.routine-batch-checklist-controls legend { padding: 0 4px; color: var(--crivi-muted); font-size: 11px; font-weight: 900; }
.routine-batch-checklist-controls fieldset label, .routine-batch-checklist-select-all { display: flex; align-items: center; gap: 8px; color: var(--crivi-ink); font-size: 13px; font-weight: 750; }
.routine-batch-checklist-select-all { width: max-content; }
.routine-batch-checklist-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; max-height: 280px; overflow-y: auto; padding: 3px; }
.routine-batch-checklist-company { display: flex; align-items: flex-start; gap: 9px; min-width: 0; padding: 11px; border: 1px solid #e6def0; border-radius: 10px; background: #fff; cursor: pointer; }
.routine-batch-checklist-company:hover { border-color: rgba(122, 45, 199, .45); background: #fdfaff; }
.routine-batch-checklist-company span { display: grid; gap: 3px; min-width: 0; }
.routine-batch-checklist-company strong { overflow: hidden; color: var(--crivi-ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.routine-batch-checklist-company small { color: var(--crivi-muted); font-size: 11px; line-height: 1.35; }
.routine-batch-checklist-form footer { display: flex; justify-content: flex-end; gap: 10px; }
.routine-company-checklist-row td { padding: 0 !important; background: #fdfbff; }
.routine-company-checklist { display: grid; gap: 16px; margin: 0; padding: 18px; border: 0; border-left: 3px solid var(--crivi-purple-2); background: #fbf9ff; }
.routine-company-checklist-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.routine-company-checklist-header span { display: block; color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.routine-company-checklist-header h4 { margin: 5px 0; color: var(--crivi-ink); font-size: 18px; }
.routine-company-checklist-header p { max-width: 640px; margin: 0; color: var(--crivi-muted); font-size: 13px; line-height: 1.45; }
.routine-company-checklist-header button { min-height: 34px; border-radius: 10px; box-shadow: none; white-space: nowrap; }
.routine-company-checklist-list { display: grid; gap: 10px; }
.routine-company-checklist-item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, 240px) auto; gap: 14px; align-items: center; padding: 12px; border: 1px solid var(--crivi-line); border-radius: 12px; background: #fff; }
.routine-company-checklist-toggle { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: flex-start; cursor: pointer; }
.routine-company-checklist-toggle input { width: 18px; min-height: 18px; margin: 2px 0 0; accent-color: var(--crivi-purple-2); }
.routine-company-checklist-toggle span { display: grid; gap: 4px; }
.routine-company-checklist-item strong { color: var(--crivi-ink); font-size: 13px; }
.routine-company-checklist-item small { color: var(--crivi-muted); font-size: 12px; }
.routine-company-checklist-item.is-completed { border-color: rgba(46, 125, 50, 0.3); background: #f5fff6; }
.routine-company-checklist-item.is-completed strong { color: #23712d; }
.routine-company-step-owner { display: grid; gap: 5px; color: var(--crivi-muted); font-size: 10px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.routine-company-step-owner select { width: 100%; min-height: 36px; border: 1px solid var(--crivi-line); border-radius: 9px; background: #fff; color: var(--crivi-ink); font: inherit; font-size: 12px; letter-spacing: 0; text-transform: none; }
.routine-company-step-owner-readonly { display: block; padding: 8px 10px; border-radius: 9px; background: #f5f1fb; color: var(--crivi-muted); line-height: 1.35; }
.routine-company-step-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.routine-company-step-actions button { min-height: 30px; padding: 0 9px; border-radius: 8px; box-shadow: none; font-size: 11px; }
.routine-company-step-actions button:disabled { opacity: .4; cursor: not-allowed; }
.routine-company-step-observation { grid-column: 1 / -1; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 10px 12px; border-top: 1px dashed rgba(122, 45, 199, .22); }
.routine-company-step-observation > div { display: grid; gap: 4px; min-width: 0; }
.routine-company-step-observation p { margin: 0; color: var(--crivi-ink); font-size: 12px; line-height: 1.48; white-space: pre-wrap; overflow-wrap: anywhere; }
.routine-company-step-observation small { color: #7a5200; font-size: 11px; }
.routine-company-step-observation button, .routine-company-step-observation-editor button { min-height: 30px; padding: 0 9px; border-radius: 8px; box-shadow: none; font-size: 11px; white-space: nowrap; }
.routine-company-step-observation-empty { color: var(--crivi-muted) !important; }
.routine-company-step-observation-editor { grid-column: 1 / -1; display: grid; gap: 9px; padding: 11px 12px; border: 1px dashed rgba(122, 45, 199, .32); border-radius: 10px; background: #fbf9ff; }
.routine-company-step-observation-editor textarea { min-height: 74px; background: #fff; }
.routine-company-checklist-item.is-inactive { opacity: .7; background: #f5f5f5; }
.routine-company-inactive-steps { display: grid; gap: 10px; padding: 12px; border: 1px dashed var(--crivi-line); border-radius: 12px; background: rgba(255,255,255,.7); }
.routine-company-inactive-steps summary { color: var(--crivi-muted); font-size: 12px; font-weight: 900; cursor: pointer; }
.routine-company-inactive-steps > div { display: grid; gap: 10px; margin-top: 10px; }
.routine-company-evidence { display: grid; gap: 12px; padding: 14px; border: 1px solid rgba(98, 55, 161, 0.2); border-radius: 12px; background: rgba(255,255,255,.72); }
.routine-company-evidence-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.routine-company-evidence-header span, .routine-company-evidence-form > div > span { display: block; color: var(--crivi-purple-2); font-size: 10px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.routine-company-evidence-header h5, .routine-company-evidence-form h5 { margin: 4px 0; color: var(--crivi-ink); font-size: 14px; }
.routine-company-evidence-header p, .routine-company-evidence-form p { margin: 0; color: var(--crivi-muted); font-size: 12px; line-height: 1.45; }
.routine-company-evidence-header button { min-height: 34px; border-radius: 10px; box-shadow: none; white-space: nowrap; }
.routine-company-evidence-list { display: grid; gap: 8px; }
.routine-company-evidence-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 10px 12px; border: 1px solid var(--crivi-line); border-radius: 10px; background: #fff; }
.routine-company-evidence-item > div { display: grid; gap: 3px; min-width: 0; }
.routine-company-evidence-item strong { color: var(--crivi-ink); font-size: 13px; }
.routine-company-evidence-item span, .routine-company-evidence-item small, .routine-company-evidence-item p { margin: 0; color: var(--crivi-muted); font-size: 11px; line-height: 1.4; }
.routine-company-evidence-item button { min-height: 30px; padding: 0 9px; border-radius: 8px; box-shadow: none; font-size: 11px; }
.routine-company-evidence-empty { margin: 0; padding: 10px 0; color: var(--crivi-muted); font-size: 12px; }
.routine-company-evidence-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 14px; border: 1px dashed rgba(98, 55, 161, 0.32); border-radius: 10px; background: #fff; }
.routine-company-evidence-form > div, .routine-company-evidence-form footer, .routine-company-evidence-note { grid-column: 1 / -1; }
.routine-company-evidence-form label { display: grid; gap: 5px; color: var(--crivi-muted); font-size: 11px; font-weight: 900; }
.routine-company-evidence-form input, .routine-company-evidence-form select, .routine-company-evidence-form textarea { width: 100%; min-height: 38px; border: 1px solid var(--crivi-line); border-radius: 9px; background: #fff; color: var(--crivi-ink); font: inherit; font-size: 12px; }
.routine-company-evidence-form textarea { min-height: 58px; padding: 10px; resize: vertical; }
.routine-company-evidence-form footer { display: flex; justify-content: flex-end; gap: 10px; }
.routine-checklist-empty { margin: 0; padding: 14px; border: 1px dashed var(--crivi-line); border-radius: 12px; color: var(--crivi-muted); font-size: 13px; }
.routine-checklist-step-editor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 14px; border: 1px solid rgba(122, 45, 199, .22); border-radius: 12px; background: #fff; }
.routine-checklist-step-editor label { display: grid; gap: 6px; color: var(--crivi-muted); font-size: 12px; font-weight: 850; }
.routine-checklist-step-editor textarea { width: 100%; min-height: 74px; padding: 10px; border: 1px solid var(--crivi-line); border-radius: 10px; resize: vertical; font: inherit; color: var(--crivi-ink); }
.routine-checklist-step-editor label:nth-of-type(2), .routine-checklist-step-editor label:nth-of-type(3), .routine-checklist-step-editor .routine-checklist-step-required, .routine-checklist-step-editor [data-checklist-step-form-status], .routine-checklist-step-editor .row-actions { grid-column: 1 / -1; }
.routine-checklist-step-required { display: flex !important; align-items: center; gap: 8px; color: var(--crivi-ink) !important; }
.routine-checklist-step-required input, .company-checklist-requirement input { width: 18px !important; min-height: 18px !important; margin: 0; padding: 0 !important; }
.routine-checklist-step-editor [data-checklist-step-form-status] { min-height: 18px; margin: 0; color: #b42318; font-size: 12px; }
.company-checklist-requirement { display: flex !important; align-items: center; gap: 9px; color: var(--crivi-ink) !important; font-weight: 850; }
.routine-recurring-checklist { display: grid; gap: 14px; margin: 18px 0; padding: 16px; border: 1px solid rgba(122, 45, 199, .18); border-radius: 16px; background: linear-gradient(135deg, #fbf8ff, #fff); }
.routine-recurring-checklist-header { display: grid; gap: 5px; }
.routine-recurring-checklist-header span { color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.routine-recurring-checklist-header h4 { margin: 0; color: var(--crivi-ink); font-size: 17px; }
.routine-recurring-checklist-header p, .routine-recurring-checklist-empty { max-width: 780px; margin: 0; color: var(--crivi-muted); font-size: 13px; line-height: 1.5; }
.routine-recurring-checklist-list { display: grid; gap: 10px; }
.routine-recurring-checklist-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 13px; border: 1px solid var(--crivi-line); border-radius: 12px; background: #fff; }
.routine-recurring-checklist-item strong { color: var(--crivi-ink); font-size: 14px; }
.routine-recurring-checklist-item p { margin: 4px 0 8px; color: var(--crivi-muted); font-size: 12px; }
.routine-recurring-checklist-item ul { display: grid; gap: 4px; margin: 0; padding-left: 17px; color: var(--crivi-ink); font-size: 12px; }
.routine-recurring-checklist-item small { display: block; margin-top: 7px; color: var(--crivi-muted); font-size: 11px; }
.routine-recurring-checklist-item button { flex: 0 0 auto; min-height: 34px; border-radius: 10px; box-shadow: none; white-space: nowrap; }
.routine-recurring-checklist-disclosure {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  padding: 15px 16px;
  border: 1px solid rgba(122, 45, 199, .16);
  border-radius: 16px;
  background: #fff;
}
.routine-recurring-checklist-disclosure-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.routine-recurring-checklist-disclosure-header > div { display: grid; gap: 4px; }
.routine-recurring-checklist-disclosure-header span { color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.routine-recurring-checklist-disclosure-header strong { color: var(--crivi-ink); font-size: 14px; }
.routine-recurring-checklist-disclosure-header small { color: var(--crivi-muted); font-size: 12px; line-height: 1.35; }
.routine-recurring-checklist-disclosure-header button { flex: 0 0 auto; min-height: 36px; padding: 0 13px; border-radius: 999px; box-shadow: none; font-size: 12px; font-weight: 850; }
.routine-recurring-checklist-disclosure .routine-recurring-checklist { margin: 0; }
.routine-history-panel {
  display: grid;
  gap: 14px;
  margin-top: 18px;
  padding: 16px;
  border: 1px solid rgba(75, 33, 132, 0.12);
  border-radius: 16px;
  background: #fff;
}
.routine-history-disclosure {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  padding: 15px 16px;
  border: 1px solid rgba(75, 33, 132, 0.12);
  border-radius: 16px;
  background: #fff;
}
.routine-history-disclosure-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.routine-history-disclosure-header > div { display: grid; gap: 4px; }
.routine-history-disclosure-header span { color: var(--crivi-purple-2); font-size: 11px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.routine-history-disclosure-header strong { color: var(--crivi-ink); font-size: 14px; }
.routine-history-disclosure-header small { color: var(--crivi-muted); font-size: 12px; line-height: 1.35; }
.routine-history-disclosure-header button { flex: 0 0 auto; min-height: 36px; padding: 0 13px; border-radius: 999px; box-shadow: none; font-size: 12px; font-weight: 850; }
.routine-history-disclosure .routine-history-panel { margin-top: 0; }
.routine-history-panel span {
  color: var(--crivi-purple-2);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.routine-history-panel h4 {
  margin: 5px 0;
  letter-spacing: 0;
}
.routine-history-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(75, 33, 132, 0.1);
  border-radius: 13px;
  background: #fbf9ff;
}
.routine-history-filters label {
  display: grid;
  gap: 4px;
  min-width: 160px;
  color: var(--crivi-muted);
  font-size: 11px;
  font-weight: 850;
}
.routine-history-filters select {
  min-height: 36px;
  padding: 0 10px;
  border: 1px solid var(--crivi-line);
  border-radius: 9px;
  background: #fff;
  color: var(--crivi-ink);
}
.routine-history-filters button {
  min-height: 36px;
  padding: 0 12px;
  border-radius: 9px;
  box-shadow: none;
  font-size: 12px;
  font-weight: 850;
}
.routine-history-list {
  display: grid;
  gap: 10px;
}
.routine-history-list article {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid var(--crivi-line);
  border-radius: 13px;
  background: #fbf7ff;
}
.routine-history-list p,
.routine-history-list small {
  margin: 0;
  color: var(--crivi-muted);
  line-height: 1.35;
}
.module-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.settings-card { padding: 24px; }
.settings-card p, .module-card p { color: var(--crivi-muted); }
.settings-card-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; align-items: flex-start; }
.settings-card-heading h2, .settings-card-heading p { margin: 0; }
.continuity-status-copy { display: grid; gap: 8px; margin-top: 16px; }
.continuity-status-copy p, .continuity-status-copy small { margin: 0; }
.continuity-status-badge { width: fit-content; border-radius: 999px; padding: 5px 10px; font-size: 12px; font-weight: 700; }
.continuity-status-badge.is-success { background: #e8f8e9; color: #267a37; }
.continuity-status-badge.is-attention { background: #fff0e8; color: #b6541f; }
.continuity-status-badge.is-pending { background: #edf2ff; color: #365dbc; }
.official-obligation-center-card { grid-column: 1 / -1; }
.settings-card-eyebrow { display: block; margin-bottom: 4px; color: var(--crivi-purple); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.official-configuration-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 18px 0; }
.official-configuration-summary article { display: grid; gap: 5px; padding: 14px; border: 1px solid var(--crivi-line); border-radius: 8px; background: #fbf9ff; }
.official-configuration-summary span { color: var(--crivi-muted); font-size: 12px; }
.official-configuration-summary strong { color: var(--crivi-ink); font-size: 24px; }
.official-configuration-guidance { display: grid; gap: 4px; margin-bottom: 14px; padding: 13px 15px; border-left: 4px solid var(--crivi-purple); background: #f8f4ff; }
.official-configuration-guidance p { margin: 0; color: var(--crivi-muted); line-height: 1.45; }
.official-source-integrity { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px; padding: 14px 16px; border: 1px solid var(--crivi-line); border-left-width: 4px; border-radius: 8px; background: #faf9fc; }
.official-source-integrity > div { display: grid; gap: 4px; }
.official-source-integrity p { margin: 0; color: var(--crivi-muted); line-height: 1.45; }
.official-source-integrity button { flex: 0 0 auto; }
.official-source-integrity.is-verified { border-color: #8fd0aa; background: #f2fbf6; }
.official-source-integrity.is-review-required { border-color: #e27a7a; background: #fff4f4; }
.official-source-integrity.is-unavailable { border-color: #e3b75d; background: #fff9ed; }
.official-source-integrity.is-pending { border-color: #bfa7e4; background: #f8f4ff; }
.official-source-integrity-list { display: grid; gap: 12px; }
.official-source-integrity-item { display: grid; gap: 10px; }
.official-source-integrity > div > small { display: block; margin-bottom: 4px; color: var(--crivi-muted); font-weight: 800; }
.official-source-review { display: grid; gap: 14px; margin-top: 10px; padding: 16px; border: 1px solid #e5a0a0; border-radius: 8px; background: #fffafa; }
.official-source-review-diff { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.official-source-review-diff span { display: grid; gap: 3px; padding: 10px 12px; border: 1px solid var(--crivi-line); border-radius: 6px; background: #fff; }
.official-source-review-diff small, .official-source-review > small { color: var(--crivi-muted); }
.official-source-review ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 0; padding: 0; list-style: none; }
.official-source-review li { display: flex; align-items: center; gap: 7px; color: var(--crivi-muted); }
.official-source-review li span { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; font-weight: 900; }
.official-source-review li.is-valid span { background: #e8f8e9; color: #267a37; }
.official-source-review li.is-invalid span { background: #ffe9e9; color: #a82c2c; }
.official-source-review > label { display: grid; gap: 7px; color: var(--crivi-ink); font-size: 12px; font-weight: 800; }
.official-source-review textarea { width: 100%; border: 1px solid var(--crivi-line); border-radius: 8px; background: #fff; color: var(--crivi-ink); padding: 10px 12px; font: inherit; resize: vertical; }
.official-source-review .official-source-review-confirmation { display: flex; align-items: flex-start; gap: 9px; font-weight: 600; }
.official-source-review-confirmation input { margin-top: 2px; }
.official-configuration-company { margin-top: 10px; border: 1px solid var(--crivi-line); border-radius: 8px; background: #fff; }
.official-configuration-company > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; cursor: pointer; list-style: none; }
.official-configuration-company > summary::-webkit-details-marker { display: none; }
.official-configuration-company > summary > span:first-child { display: grid; gap: 3px; }
.official-configuration-company > summary small { color: var(--crivi-muted); }
.official-configuration-company > summary > span:last-child { display: grid; min-width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #eee7fa; color: var(--crivi-purple); font-weight: 900; }
.official-configuration-company > div { display: grid; gap: 0; border-top: 1px solid var(--crivi-line); }
.official-configuration-suggestion { display: grid; gap: 10px; padding: 16px; }
.official-configuration-suggestion + .official-configuration-suggestion { border-top: 1px solid var(--crivi-line); }
.official-configuration-suggestion-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.official-configuration-suggestion-heading > div { display: grid; gap: 3px; }
.official-configuration-suggestion-heading small, .official-configuration-suggestion > small { color: var(--crivi-muted); }
.official-configuration-suggestion p { margin: 0; color: var(--crivi-text); }
.official-configuration-suggestion ul { margin: 0; padding-left: 18px; color: var(--crivi-muted); }
.official-configuration-source { display: flex; flex-wrap: wrap; gap: 6px 12px; padding: 10px 12px; border-radius: 6px; background: #fff9ed; color: #6e4b08; font-size: 12px; }
.official-configuration-source.is-homologated { border: 1px solid #bfe4cf; background: #f2fbf6; color: #246c45; }
.official-configuration-source.is-review-required { border: 1px solid #e5a0a0; background: #fff2f2; color: #9c2828; }
.official-configuration-source.is-unavailable { border: 1px solid #e3c77f; background: #fff9ed; color: #805b0c; }
.official-configuration-source a { margin-left: auto; color: inherit; font-weight: 800; text-decoration: underline; text-underline-offset: 2px; }
.official-configuration-suggestion .company-form-actions { justify-content: flex-start; }
.official-configuration-empty { padding: 18px; border: 1px dashed var(--crivi-line); border-radius: 8px; background: #faf9fc; }
.official-configuration-empty p { margin: 6px 0 0; color: var(--crivi-muted); }
.official-configuration-profile-review { margin-top: 14px; padding: 12px 14px; border: 1px solid var(--crivi-line); border-radius: 8px; }
.official-configuration-profile-review summary { cursor: pointer; font-weight: 800; }
.official-configuration-profile-review ul { display: grid; gap: 7px; margin: 12px 0 0; padding: 0; list-style: none; }
.official-configuration-profile-review li { display: flex; justify-content: space-between; gap: 12px; padding-top: 7px; border-top: 1px solid var(--crivi-line); }
.official-configuration-profile-review li span { color: var(--crivi-muted); }
.official-competence-planning { display: grid; gap: 14px; margin-bottom: 20px; padding: 18px; border: 1px solid #d9c9ef; border-left: 4px solid var(--crivi-purple); border-radius: 8px; background: #fcfaff; }
.official-competence-planning-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.official-competence-planning-heading > div:first-child { display: grid; gap: 4px; }
.official-competence-planning-heading span:first-child { color: var(--crivi-purple); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.official-competence-planning-heading h3, .official-competence-planning-heading p, .official-competence-planning-notice p { margin: 0; }
.official-competence-planning-heading p, .official-competence-planning-item small, .official-competence-planning-item details { color: var(--crivi-muted); }
.official-competence-planning-controls { display: flex; align-items: flex-end; gap: 10px; }
.official-competence-planning-controls label { display: grid; gap: 5px; color: var(--crivi-ink); font-size: 12px; font-weight: 800; }
.official-competence-planning-controls input { min-height: 40px; border: 1px solid var(--crivi-line); border-radius: 7px; background: #fff; padding: 8px 10px; color: var(--crivi-ink); font: inherit; }
.official-competence-planning-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.official-competence-planning-summary article { display: grid; gap: 4px; padding: 12px; border: 1px solid var(--crivi-line); border-radius: 7px; background: #fff; }
.official-competence-planning-summary span { color: var(--crivi-muted); font-size: 12px; }
.official-competence-planning-summary strong { color: var(--crivi-ink); font-size: 22px; }
.official-competence-planning-notice { display: grid; gap: 4px; padding: 12px; border-radius: 7px; background: #f2ecfb; }
.official-competence-planning-company { border: 1px solid var(--crivi-line); border-radius: 7px; background: #fff; }
.official-competence-planning-company > summary { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; cursor: pointer; }
.official-competence-planning-company > summary span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: #eee7fa; color: var(--crivi-purple); font-weight: 900; }
.official-competence-planning-company > div { border-top: 1px solid var(--crivi-line); }
.official-competence-planning-item { display: grid; grid-template-columns: minmax(180px, 1.3fr) minmax(160px, .8fr) auto; gap: 12px; align-items: center; padding: 13px 14px; }
.official-competence-planning-item + .official-competence-planning-item { border-top: 1px solid var(--crivi-line); }
.official-competence-planning-item > div { display: grid; gap: 3px; }
.official-competence-planning-item > div span { color: var(--crivi-muted); font-size: 11px; }
.official-competence-planning-item details { grid-column: 1 / -1; }
.official-competence-planning-item details p { margin: 7px 0; }
.official-competence-planning-badge { padding: 6px 9px; border-radius: 6px; background: #fff2d8; color: #7b5400; font-size: 11px; font-weight: 900; }
.official-competence-planning-badge.is-ready { background: #e4f5e9; color: #236c3d; }
.official-competence-planning-badge.is-neutral { background: #eeeeef; color: #62606a; }
.official-competence-confirmation { display: grid; gap: 12px; padding: 16px; border: 1px solid #d8c8ef; border-left: 4px solid var(--crivi-purple); border-radius: 7px; background: #fbf9ff; }
.official-competence-confirmation > div:first-child { display: grid; gap: 4px; }
.official-competence-confirmation > div:first-child > span { color: var(--crivi-purple); font-size: 11px; font-weight: 900; }
.official-competence-confirmation h4, .official-competence-confirmation p { margin: 0; }
.official-competence-confirmation label:not(.official-competence-confirmation-check) { display: grid; gap: 6px; color: var(--crivi-ink); font-size: 12px; font-weight: 800; }
.official-competence-confirmation textarea { width: 100%; min-height: 82px; resize: vertical; }
.official-competence-confirmation-check { display: flex; gap: 9px; align-items: flex-start; color: var(--crivi-muted); font-size: 12px; line-height: 1.45; }
.official-competence-confirmation-check input { margin-top: 2px; }
.official-competence-confirmation .primary { justify-self: start; }
.official-competence-confirmation.is-confirmed { border-color: #b9dec5; border-left-color: #2f8a4d; background: #f4fbf6; }
.official-competence-confirmation.is-stale { border-color: #e6c783; border-left-color: #c48408; background: #fffaf0; }
.official-competence-confirmation.is-blocked { border-color: #ead6a8; border-left-color: #bb7a00; background: #fffaf2; }
.official-competence-confirmation dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.official-competence-confirmation dl div { display: grid; gap: 3px; }
.official-competence-confirmation dt { color: var(--crivi-muted); font-size: 11px; }
.official-competence-confirmation dd { margin: 0; color: var(--crivi-ink); font-weight: 700; }
.official-competence-confirmation small { color: #236c3d; font-weight: 700; }
.official-obligation-advanced { margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--crivi-line); }
.official-obligation-advanced > summary { cursor: pointer; color: var(--crivi-muted); font-weight: 800; }
.official-obligation-advanced > p { max-width: 760px; color: var(--crivi-muted); }
@media (max-width: 900px) { .official-configuration-summary, .official-competence-planning-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .official-configuration-suggestion-heading, .official-competence-planning-heading { display: grid; } .official-competence-planning-controls { justify-content: start; } .official-competence-planning-item { grid-template-columns: 1fr auto; } }
@media (max-width: 560px) { .official-configuration-summary, .official-competence-planning-summary, .official-source-review-diff, .official-source-review ul, .official-competence-confirmation dl { grid-template-columns: 1fr; } .official-source-integrity { align-items: stretch; display: grid; } .official-configuration-suggestion .company-form-actions, .official-source-review .company-form-actions, .official-competence-planning-controls { display: grid; } .official-competence-planning-item { grid-template-columns: 1fr; } .official-competence-planning-item details { grid-column: auto; } }
.official-obligation-status-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px; }
.official-obligation-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--crivi-line); }
.official-obligation-form label, .official-obligation-confirmation label { display: grid; gap: 7px; color: var(--crivi-ink); font-size: 12px; font-weight: 800; }
.official-obligation-form input, .official-obligation-form select, .official-obligation-form textarea, .official-obligation-confirmation input { width: 100%; min-height: 40px; border: 1px solid var(--crivi-line); border-radius: 8px; background: #fff; color: var(--crivi-ink); padding: 9px 11px; font: inherit; }
.official-obligation-form textarea { resize: vertical; }
.official-obligation-wide { grid-column: 1 / -1; }
.official-obligation-confirmation { display: grid; gap: 12px; margin-top: 16px; padding: 16px; border: 1px solid #d9c2f5; border-radius: 8px; background: #faf7ff; }
.official-obligation-confirmation p, .official-obligation-confirmation small { margin: 0; }
.official-obligation-history { display: grid; gap: 10px; margin-top: 20px; }
.official-obligation-history h3 { margin: 0; }
.official-obligation-history article { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--crivi-line); }
.official-obligation-history article div { display: grid; gap: 3px; }
.official-obligation-history article small { color: var(--crivi-muted); }
.official-obligation-readiness { display: grid; grid-template-columns: minmax(220px, .75fr) minmax(320px, 1.25fr); gap: 16px; margin-top: 16px; padding: 16px; border: 1px solid var(--crivi-line); border-radius: 8px; background: #faf9fc; }
.official-obligation-readiness div { display: grid; align-content: start; gap: 5px; }
.official-obligation-readiness ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.official-obligation-readiness li { display: flex; align-items: center; gap: 8px; color: var(--crivi-ink); font-size: 12px; }
.official-obligation-readiness li span { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #eeeaf2; color: var(--crivi-muted); }
.official-obligation-readiness li.is-ready span { background: #e5f5e9; color: #267b45; }
.official-obligation-readiness p { grid-column: 1 / -1; margin: 0; color: var(--crivi-muted); font-size: 12px; }
.official-obligation-follow-up-checks { display: grid; gap: 8px; margin: 12px 0; padding: 0; list-style: none; }
.official-obligation-follow-up-checks li { display: flex; align-items: flex-start; gap: 8px; color: var(--crivi-ink); font-size: 12px; line-height: 1.4; }
.official-obligation-follow-up-checks li span { display: grid; flex: 0 0 22px; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #fce8e6; color: #b42318; }
.official-obligation-follow-up-checks li.is-ready span { background: #e5f5e9; color: #267b45; }
.official-obligation-human-dossier { display: grid; gap: 14px; margin-top: 16px; padding: 16px; border: 1px solid var(--crivi-line); border-left: 4px solid #2f7d63; border-radius: 8px; background: #fff; }
.official-obligation-human-simulation-form { display: grid; grid-template-columns: minmax(260px, 1.5fr) minmax(170px, .7fr) auto; align-items: end; gap: 12px; padding-top: 12px; border-top: 1px solid var(--crivi-line); }
.official-obligation-human-candidates, .official-obligation-human-history { display: grid; gap: 12px; }
.official-obligation-human-candidates h4, .official-obligation-human-history h4 { margin: 0; }
.official-obligation-human-candidates form { display: grid; grid-template-columns: repeat(2, minmax(180px, 1fr)); gap: 12px; padding: 14px; border: 1px solid var(--crivi-line); border-radius: 8px; background: #fafcfa; }
.official-obligation-human-candidates header { grid-column: 1 / -1; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.official-obligation-human-candidates header > div { display: grid; gap: 3px; }
.official-obligation-human-candidates ul { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.official-obligation-human-candidates li { display: flex; align-items: flex-start; gap: 8px; padding: 8px; border-radius: 6px; background: #fff; font-size: 12px; }
.official-obligation-human-candidates li > span { display: grid; flex: 0 0 20px; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #e5f5e9; color: #267b45; }
.official-obligation-human-candidates li > div { display: grid; gap: 2px; }
.official-obligation-human-history article { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding-top: 10px; border-top: 1px solid var(--crivi-line); }
.official-obligation-human-history article > div { display: grid; gap: 3px; }
.official-obligation-proposal-dossier { display: grid; gap: 14px; margin-top: 16px; padding: 16px; border: 1px solid var(--crivi-line); border-left: 4px solid var(--crivi-purple); border-radius: 8px; background: #fff; }
.official-obligation-proposal-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 18px; }
.official-obligation-proposal-heading > div:first-child { display: grid; gap: 3px; }
.official-obligation-proposal-heading span { color: var(--crivi-purple); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.official-obligation-proposal-heading h3, .official-obligation-proposal-heading p { margin: 0; }
.official-obligation-proposal-heading > div:not(:first-child) { display: grid; min-width: 90px; text-align: center; }
.official-obligation-proposal-heading > div:not(:first-child) strong { font-size: 22px; color: var(--crivi-ink); }
.official-obligation-proposal-form, .official-obligation-proposal-reviews form { display: grid; grid-template-columns: minmax(200px, 1.4fr) repeat(2, minmax(150px, .8fr)) auto; align-items: end; gap: 12px; padding-top: 12px; border-top: 1px solid var(--crivi-line); }
.official-obligation-proposal-reviews { display: grid; gap: 12px; }
.official-obligation-proposal-reviews h4 { margin: 0; }
.official-obligation-proposal-reviews form { grid-template-columns: minmax(220px, 1.3fr) repeat(2, minmax(160px, .8fr)); align-items: start; padding: 12px; border: 1px solid var(--crivi-line); border-radius: 8px; background: #faf9fc; }
.official-obligation-proposal-reviews form > div:first-child { display: grid; gap: 3px; }
.official-obligation-dossier-disclaimer { margin: 0; color: var(--crivi-muted); font-size: 12px; }
.official-obligation-foundation-dossier { display: grid; gap: 16px; margin-top: 16px; padding: 18px; border: 1px solid #d9d0ef; border-radius: 8px; background: #fcfbff; }
.official-obligation-homologation-gate { display: grid; gap: 13px; padding: 15px; border: 1px solid #d9d0ef; border-left: 4px solid #6f38bc; border-radius: 8px; background: #fff; }
.official-obligation-homologation-heading { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; }
.official-obligation-homologation-heading > div { display: grid; gap: 3px; }
.official-obligation-homologation-heading span:first-child { color: #6f38bc; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.official-obligation-homologation-heading h4, .official-obligation-homologation-heading p { margin: 0; }
.official-obligation-homologation-heading p, .official-obligation-homologation-gate details p { color: var(--crivi-muted); }
.official-obligation-homologation-progress { display: grid; gap: 7px; }
.official-obligation-homologation-progress > div { overflow: hidden; height: 8px; border-radius: 4px; background: #ebe7f2; }
.official-obligation-homologation-progress > div span { display: block; height: 100%; border-radius: inherit; background: #6f38bc; }
.official-obligation-homologation-gate ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.official-obligation-homologation-gate li { display: flex; gap: 8px; align-items: center; padding: 9px 10px; border: 1px solid #e5e0ef; border-radius: 6px; }
.official-obligation-homologation-gate li.is-ready span { color: #267b45; font-weight: 800; }
.official-obligation-homologation-gate li.is-pending { background: #fff9ed; color: #75500a; }
.official-obligation-homologation-blocker { margin: 0; padding: 11px; border: 1px solid #efd29c; border-radius: 6px; background: #fff9ed; color: #634710; }
.official-obligation-homologation-gate details { padding-top: 10px; border-top: 1px solid #e8e3f1; }
.official-obligation-homologation-gate summary { cursor: pointer; color: var(--crivi-ink); font-weight: 800; }
.official-obligation-homologation-gate details ol { display: grid; gap: 5px; margin-bottom: 8px; padding-left: 22px; }
.official-obligation-foundation-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.official-obligation-foundation-steps li { display: flex; gap: 10px; align-items: center; min-height: 64px; padding: 11px; border: 1px solid #e5e0ef; border-radius: 8px; background: #fff; }
.official-obligation-foundation-steps li > span { display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #eeeaf4; color: var(--crivi-muted); font-weight: 800; }
.official-obligation-foundation-steps li > div { display: grid; gap: 2px; }
.official-obligation-foundation-steps li small { color: var(--crivi-muted); }
.official-obligation-foundation-steps li.is-ready { border-color: #b9dfc5; background: #f4fbf6; }
.official-obligation-foundation-steps li.is-ready > span { background: #dff2e5; color: #267b45; }
.official-obligation-foundation-stage { display: grid; gap: 12px; padding-top: 15px; border-top: 1px solid #e8e3f1; }
.official-obligation-foundation-stage > h4 { margin: 0; }
.official-obligation-foundation-stage > article { display: flex; gap: 14px; align-items: center; justify-content: space-between; padding: 12px; border: 1px solid #e5e0ef; border-radius: 8px; background: #fff; }
.official-obligation-foundation-stage > article > div { display: grid; gap: 3px; }
.official-obligation-foundation-stage article small { color: var(--crivi-muted); }
.official-obligation-foundation-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.official-obligation-foundation-form label { display: grid; gap: 6px; color: var(--crivi-ink); font-size: 12px; font-weight: 700; }
.official-obligation-foundation-form input, .official-obligation-foundation-form select, .official-obligation-foundation-form textarea { min-width: 0; width: 100%; padding: 10px 11px; border: 1px solid #dcd5e9; border-radius: 6px; background: #fff; color: var(--crivi-ink); font: inherit; }
.official-obligation-foundation-form textarea { resize: vertical; }
.official-obligation-form-heading { grid-column: 1 / -1; display: grid; gap: 3px; }
.official-obligation-form-heading > span { color: #6f38bc; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.official-obligation-form-heading small { color: var(--crivi-muted); }
.official-obligation-foundation-form fieldset { display: grid; align-content: start; gap: 7px; min-width: 0; margin: 0; padding: 10px; border: 1px solid #e5e0ef; border-radius: 8px; background: #fff; }
.official-obligation-foundation-form fieldset legend { padding: 0 4px; color: var(--crivi-ink); font-size: 12px; font-weight: 800; }
.official-obligation-foundation-form fieldset label, .official-obligation-check { display: flex; grid-template-columns: none; align-items: center; gap: 8px; font-weight: 600; }
.official-obligation-foundation-form fieldset input, .official-obligation-check input { flex: 0 0 auto; width: auto; }
.official-obligation-criteria-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.official-obligation-foundation-reviews { display: grid; gap: 10px; }
.official-obligation-foundation-reviews h4 { margin: 0; }
.official-obligation-foundation-reviews form { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(170px, .7fr) minmax(190px, .8fr) auto; gap: 10px; align-items: end; padding: 12px; border: 1px solid #e5e0ef; border-radius: 8px; background: #fff; }
.official-obligation-foundation-reviews form > div { display: grid; gap: 3px; }
.official-obligation-foundation-reviews label { display: grid; gap: 5px; font-size: 12px; font-weight: 700; }
.official-obligation-foundation-reviews select { min-width: 0; width: 100%; padding: 9px; border: 1px solid #dcd5e9; border-radius: 6px; background: #fff; }
.official-normative-evidence-group { display: grid; gap: 11px; padding: 13px; border: 1px solid #ded6eb; border-radius: 8px; background: #fbfaff; }
.official-normative-evidence-group > header { display: flex; gap: 14px; align-items: flex-start; justify-content: space-between; }
.official-normative-evidence-group > header > div { display: grid; gap: 3px; }
.official-normative-evidence-group > header small { color: var(--crivi-muted); font-weight: 500; }
.official-normative-evidence-group > header > span { flex: 0 0 auto; padding: 5px 8px; border-radius: 4px; background: #eee8f8; color: #5c299e; font-size: 11px; font-weight: 800; }
.official-normative-evidence-group > button { justify-self: start; }
.official-normative-evidence-list { display: grid; gap: 10px; }
.official-obligation-foundation-form .official-normative-evidence-row { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 12px; background: #fff; }
.official-normative-evidence-row > legend { color: #5c299e; }
.official-normative-evidence-row .official-normative-row-wide { grid-column: span 2; }
.official-normative-evidence-row > button { align-self: end; justify-self: start; }
.official-normative-empty { margin: 0; padding: 10px; border: 1px dashed #d9d0e8; border-radius: 6px; color: var(--crivi-muted); }
.official-normative-evidence-summary { display: flex; gap: 10px; align-items: center; padding: 11px 12px; border-left: 4px solid #6f38bc; background: #f7f3fc; color: var(--crivi-muted); }
.official-normative-evidence-summary strong { color: var(--crivi-ink); }
.official-normative-preflight-result { display: grid; gap: 5px; margin-top: 12px; padding: 14px; border: 1px solid #b7dfc4; border-left: 4px solid #2f8d57; border-radius: 7px; background: #f3fbf6; color: #285f3e; }
.official-normative-preflight-result strong { color: #185d35; }
.official-normative-preflight-result small { color: var(--crivi-muted); }
.official-applicability-preflight-result { display: grid; gap: 5px; margin-top: 12px; padding: 14px; border: 1px solid #b7dfc4; border-left: 4px solid #2f8d57; border-radius: 7px; background: #f3fbf6; color: #285f3e; }
.official-applicability-preflight-result strong { color: #185d35; }
.official-applicability-preflight-result small { color: var(--crivi-muted); }
.official-professional-company-selection > p { margin: 0 0 8px; color: var(--crivi-muted); font-size: 12px; font-weight: 500; }
.official-professional-company-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; max-height: 260px; overflow-y: auto; padding: 4px; }
.official-professional-company-list label { align-items: flex-start !important; min-width: 0; padding: 9px; border: 1px solid #ebe6f2; border-radius: 6px; background: #faf8fd; }
.official-professional-company-list label span { display: grid; gap: 2px; min-width: 0; }
.official-professional-company-list label strong { overflow-wrap: anywhere; color: var(--crivi-ink); }
.official-professional-company-list label small { color: var(--crivi-muted); font-weight: 500; }
.official-applicability-preflight-result ul { display: grid; gap: 5px; margin: 8px 0; padding: 0; list-style: none; }
.official-applicability-preflight-result li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; padding-top: 5px; border-top: 1px solid #d8eadf; }
.crivi-strategic-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 164px;
  gap: 24px;
  align-items: center;
  margin-bottom: 20px;
  padding: 30px;
  border: 1px solid rgba(122, 45, 199, 0.18);
  border-radius: 18px;
  background: linear-gradient(135deg, #fbf7ff, #fff);
}
.crivi-strategic-hero span,
.crivi-strategic-heading > div > span,
.crivi-strategic-coordination > span,
.crivi-strategic-summary span,
.crivi-strategic-action > span,
.crivi-decision-history > span { color: var(--crivi-purple-2); font-size: 12px; font-weight: 950; letter-spacing: 0.08em; text-transform: uppercase; }
.crivi-strategic-hero h2 { max-width: 720px; margin: 8px 0; color: var(--crivi-ink); font-size: clamp(24px, 3vw, 34px); line-height: 1.12; }
.crivi-strategic-hero p { max-width: 720px; margin: 0; color: var(--crivi-text); font-size: 17px; line-height: 1.5; }
.crivi-strategic-hero small { display: block; max-width: 760px; margin-top: 14px; color: var(--crivi-muted); line-height: 1.45; }
.crivi-strategic-hero img { width: 154px; height: 154px; justify-self: end; object-fit: contain; }
.crivi-strategic-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 20px; }
.crivi-strategic-summary article { display: grid; gap: 6px; min-height: 124px; padding: 20px; border: 1px solid var(--crivi-line); border-radius: 16px; background: #fff; box-shadow: var(--crivi-shadow-soft); }
.crivi-strategic-summary strong { color: var(--crivi-ink); font-size: 30px; line-height: 1; }
.crivi-strategic-summary small { color: var(--crivi-muted); line-height: 1.35; }
.crivi-strategic-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, 0.8fr); gap: 20px; align-items: start; }
.crivi-strategic-actions { display: grid; gap: 14px; }
.crivi-strategic-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.crivi-strategic-heading h2, .crivi-strategic-coordination h2 { margin: 6px 0 0; }
.crivi-strategic-heading button { min-height: 36px; border-radius: 10px; box-shadow: none; }
.crivi-strategic-action { display: grid; gap: 7px; padding: 16px; border: 1px solid var(--crivi-line); border-left: 5px solid var(--crivi-purple); border-radius: 13px; background: #fff; }
.crivi-strategic-action.priority-critical { border-left-color: #d92d20; background: #fff8f7; }
.crivi-strategic-action.priority-attention { border-left-color: #f79009; background: #fffaf0; }
.crivi-strategic-action.priority-progress { border-left-color: #2e90fa; background: #f7fbff; }
.crivi-strategic-action h3, .crivi-strategic-action p { margin: 0; }
.crivi-strategic-action h3 { color: var(--crivi-ink); font-size: 16px; }
.crivi-strategic-action p { color: var(--crivi-text); line-height: 1.4; }
.crivi-strategic-action small { color: var(--crivi-muted); line-height: 1.35; }
.crivi-decision-meta { display: grid; gap: 8px; padding-top: 10px; border-top: 1px solid rgba(122, 45, 199, 0.12); }
.crivi-decision-meta > span { width: fit-content; padding: 5px 8px; border-radius: 999px; background: #f2ecff; color: var(--crivi-purple); font-size: 11px; font-weight: 900; }
.crivi-decision-meta > span.confidence-high { background: #eaf7ee; color: #237b3d; }
.crivi-decision-meta > span.confidence-medium { background: #fff4db; color: #9a5b06; }
.crivi-decision-meta > span.confidence-limited { background: #f2f0f3; color: #625a69; }
.crivi-decision-meta small { font-size: 12px; }
.crivi-strategic-empty { padding: 22px; border: 1px dashed rgba(122, 45, 199, 0.28); border-radius: 14px; background: #fbf8ff; }
.crivi-strategic-empty h3, .crivi-strategic-empty p { margin: 0; }
.crivi-strategic-empty p { margin-top: 8px; color: var(--crivi-muted); line-height: 1.45; }
.crivi-strategic-coordination { display: grid; gap: 12px; min-height: 260px; }
.crivi-strategic-coordination h2, .crivi-strategic-coordination p { margin: 0; }
.crivi-strategic-coordination p { color: var(--crivi-text); line-height: 1.5; }
.crivi-strategic-coordination small { color: var(--crivi-muted); line-height: 1.45; }
.crivi-decision-history { display: grid; gap: 10px; }
.crivi-decision-history h2, .crivi-decision-history p { margin: 0; }
.crivi-decision-history p { line-height: 1.45; }
.crivi-decision-history-list { display: grid; gap: 8px; }
.crivi-decision-history-row { display: grid; gap: 3px; padding: 11px 12px; border-left: 3px solid rgba(122, 45, 199, 0.52); border-radius: 9px; background: #fbf9ff; }
.crivi-decision-history-row strong { color: var(--crivi-ink); font-size: 13px; }
.crivi-decision-history-row span, .crivi-decision-history-row small { color: var(--crivi-muted); line-height: 1.35; }
.crivi-decision-history-row span { font-size: 12px; }
.crivi-decision-history-row small { font-size: 11px; }
.local-data-rescue-card {
  border-color: rgba(219, 180, 82, 0.34);
  background: linear-gradient(145deg, #fff, #fff9ec);
}
.local-data-rescue-card button {
  justify-self: start;
  margin: 8px 0;
  border-radius: 999px;
}
.local-data-rescue-card small {
  display: block;
  color: #7b5a10;
  font-weight: 850;
  line-height: 1.4;
}
.company-form-card {
  display: grid;
  gap: 20px;
  margin-bottom: 24px;
  padding: 24px;
  border: 1px solid rgba(75, 33, 132, 0.12);
  border-radius: 20px;
  background: linear-gradient(135deg, #fffefd, #fbf7ff);
  box-shadow: var(--crivi-shadow-soft);
}
.company-form-header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
}
.company-form-header span {
  color: var(--crivi-purple-2);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.company-form-header h3 {
  margin: 6px 0 6px;
  font-size: 24px;
  letter-spacing: 0;
}
.company-form-header p {
  margin: 0;
  color: var(--crivi-muted);
}
.company-form-header button {
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  box-shadow: none;
}
.company-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.company-form-grid label {
  display: grid;
  gap: 8px;
  min-width: 0;
  color: var(--crivi-text);
  font-size: 13px;
  font-weight: 850;
}
.company-form-grid input,
.company-form-grid select,
.company-form-grid textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--crivi-line);
  border-radius: 13px;
  background: white;
  color: var(--crivi-ink);
  outline: 0;
}
.company-form-grid input,
.company-form-grid select {
  min-height: 46px;
  padding: 0 14px;
}
.company-form-grid textarea {
  resize: vertical;
  min-height: 86px;
  padding: 12px 14px;
}
.routine-target-scope,
.routine-company-picker,
.routine-duplicate-choice,
.routine-form-conditional {
  margin: 16px 0;
  border: 1px solid var(--crivi-line);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.78);
}
.routine-target-scope,
.routine-company-picker { padding: 14px; }
.routine-target-scope legend,
.routine-company-picker legend { padding: 0 6px; color: var(--crivi-ink); font-size: 13px; font-weight: 900; }
.routine-target-scope label,
.routine-duplicate-choice { display: inline-flex; align-items: center; gap: 8px; margin: 6px 16px 6px 0; color: var(--crivi-text); font-size: 13px; font-weight: 800; }
.routine-target-scope small,
.routine-company-picker > p { display: block; margin: 8px 0 0; color: var(--crivi-muted); font-size: 12px; line-height: 1.45; }
.routine-company-picker > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; max-height: 190px; margin-top: 12px; overflow-y: auto; }
.routine-company-picker label { display: flex; align-items: flex-start; gap: 8px; padding: 9px; border: 1px solid rgba(122, 45, 199, 0.12); border-radius: 10px; background: #fff; color: var(--crivi-text); font-size: 12px; font-weight: 800; line-height: 1.35; }
.routine-company-picker label span { display: grid; gap: 3px; }
.routine-company-picker label small { color: var(--crivi-muted); font-size: 11px; font-weight: 650; }
.routine-company-picker input,
.routine-target-scope input,
.routine-duplicate-choice input { width: auto; min-height: auto; accent-color: var(--crivi-purple); }
.routine-form-conditional { padding: 14px; }
.routine-form-conditional[hidden] { display: none; }
.routine-form-conditional.company-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.routine-deadline-config { margin: 16px 0; padding: 16px; border: 1px solid var(--crivi-line); border-radius: 14px; background: #fff; }
.routine-deadline-config legend { padding: 0 6px; color: var(--crivi-ink); font-size: 14px; font-weight: 900; }
.routine-deadline-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.routine-deadline-grid [hidden] { display: none; }
.routine-deadline-help { margin: 12px 0 0; color: var(--crivi-muted); font-size: 12px; line-height: 1.45; }
.routine-deadline-origin { display: inline-flex; margin-top: 10px; padding: 5px 9px; border-radius: 999px; font-size: 11px; font-weight: 850; }
.routine-deadline-origin.is-suggested { border: 1px solid rgba(199, 112, 0, 0.3); background: #fff4df; color: #925600; }
.routine-duplicate-choice { margin: 0 0 14px; padding: 12px 14px; line-height: 1.4; }
.company-type-options,
.company-finance-options {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 14px;
  border: 1px solid var(--crivi-line);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.72);
}
.company-finance-options {
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.company-billing-options {
  grid-template-columns: 1fr;
  border-color: rgba(67, 166, 61, 0.18);
  background: linear-gradient(135deg, rgba(255,255,255,0.84), rgba(247,255,249,0.72));
}
.company-billing-options > button {
  justify-self: start;
  min-height: 36px;
  border-radius: 999px;
  box-shadow: none;
}
.company-billing-options [data-company-billing-items-list] {
  display: grid;
  gap: 12px;
}
.company-billing-item-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(67, 166, 61, 0.16);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.82);
}
.company-billing-item-row .company-form-notes {
  grid-column: 1 / -1;
}
.company-installments-options {
  grid-column: 1 / -1;
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 16px;
  border: 1px solid rgba(198, 124, 31, 0.24);
  border-radius: 16px;
  background: rgba(255, 250, 242, 0.8);
}
.company-installments-options legend {
  padding: 0 6px;
  color: #8b4d0a;
  font-size: 12px;
  font-weight: 900;
}
.company-installments-options > button {
  justify-self: start;
  min-height: 36px;
  border-radius: 999px;
  box-shadow: none;
}
.company-installments-options [data-company-installment-plans-list] {
  display: grid;
  gap: 12px;
}
.company-installment-plan-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(198, 124, 31, 0.2);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.86);
}
.company-installment-plan-row .company-form-notes {
  grid-column: 1 / -1;
}
.advance-payroll-options {
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.advance-payroll-options .company-form-status,
.advance-payroll-options .company-form-notes {
  grid-column: 1 / -1;
}
.company-branches-options {
  grid-column: 1 / -1;
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 16px;
  border: 1px solid rgba(75, 33, 132, 0.14);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.76);
}
.company-unions-options {
  grid-column: 1 / -1;
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 16px;
  border: 1px solid rgba(219, 180, 82, 0.24);
  border-radius: 16px;
  background: rgba(255, 252, 244, 0.78);
}
.company-unions-options legend {
  padding: 0 6px;
  color: var(--crivi-muted);
  font-size: 12px;
  font-weight: 900;
}
.company-unions-options > button,
.company-union-obligations > button {
  justify-self: start;
  min-height: 36px;
  border-radius: 999px;
  box-shadow: none;
}
.company-branches-options legend {
  padding: 0 6px;
  color: var(--crivi-muted);
  font-size: 12px;
  font-weight: 900;
}
.company-branches-options > button {
  justify-self: start;
  min-height: 36px;
  border-radius: 999px;
  box-shadow: none;
}
.company-branch-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--crivi-line);
  border-radius: 14px;
  background: #fbf8ff;
}
.company-union-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(111, 45, 189, 0.14);
  border-radius: 14px;
  background: #fbf8ff;
}
.company-union-row .company-form-notes {
  grid-column: 1 / -1;
}
.company-union-obligations {
  grid-column: 1 / -1;
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px dashed rgba(111, 45, 189, 0.22);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.72);
}
.company-union-obligations > strong {
  color: var(--crivi-ink);
}
.company-union-obligation-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--crivi-line);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.86);
}
.company-union-obligation-row .company-form-notes {
  grid-column: 1 / -1;
}
.company-expiration-options {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  border: 1px solid rgba(111, 45, 189, 0.16);
  border-radius: 18px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.72);
}
.company-expiration-options legend {
  padding: 0 8px;
  color: var(--crivi-purple);
  font-weight: 900;
}
.company-expiration-options > button {
  justify-self: flex-start;
}
.company-expiration-options .company-form-status,
.company-expiration-options .company-form-notes,
.company-expiration-options [data-company-licenses-list] {
  grid-column: 1 / -1;
}
.company-license-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
  padding: 14px;
  border: 1px solid rgba(40, 101, 182, 0.14);
  border-radius: 16px;
  background: rgba(40, 101, 182, 0.04);
}
.company-license-row .company-form-notes {
  grid-column: 1 / -1;
}
.regularity-routine-meta {
  border-color: rgba(40, 101, 182, 0.18);
  background: rgba(40, 101, 182, 0.04);
}
.expiration-renewal-card {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) auto;
  gap: 10px;
  align-items: end;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(40, 101, 182, 0.12);
}
.expiration-renewal-card button {
  min-height: 38px;
}
.company-branch-row-header {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.company-branch-row-header strong {
  color: var(--crivi-ink);
}
.company-branch-row-header button {
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  box-shadow: none;
  font-size: 12px;
}
.company-branch-row .company-form-notes {
  grid-column: 1 / -1;
}
.company-type-options legend,
.company-finance-options legend {
  padding: 0 6px;
  color: var(--crivi-muted);
  font-size: 12px;
  font-weight: 900;
}
.company-type-options label,
.company-finance-options label {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: auto;
  padding: 0;
  color: var(--crivi-ink);
  font-size: 13px;
}
.company-finance-options label {
  display: grid;
  align-items: start;
}
.company-type-options input {
  width: 16px;
  height: 16px;
  min-height: 16px;
  accent-color: var(--crivi-purple);
}
.routine-finance-meta {
  color: var(--crivi-purple);
  font-weight: 850;
}
.routine-finance-note {
  display: block;
  color: var(--crivi-muted);
  font-weight: 750;
}
.billing-routine-tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: #eef9ef;
  color: #2e7d32;
  font-size: 11px;
  font-weight: 900;
}
.installment-routine-tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: #fff3dc;
  color: #8b4d0a;
  font-size: 11px;
  font-weight: 900;
}
.installment-routine-tag-em-atraso {
  background: #fff0ef;
  color: #b42318;
}
.installment-routine-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
  padding: 12px;
  border: 1px solid rgba(198, 124, 31, 0.2);
  border-radius: 14px;
  background: rgba(255, 250, 242, 0.78);
}
.installment-routine-meta > strong,
.installment-routine-meta > small {
  grid-column: 1 / -1;
}
.installment-routine-meta div {
  display: grid;
  gap: 3px;
}
.installment-routine-meta span {
  color: var(--crivi-muted);
  font-size: 11px;
  font-weight: 800;
}
.installment-routine-meta b {
  color: var(--crivi-ink);
  font-size: 12px;
}
.installment-overdue-note {
  color: #b42318;
  font-weight: 900;
}
.installment-checklist {
  display: grid;
  gap: 8px;
  margin: 14px 0;
  padding: 14px 16px;
  border: 1px solid rgba(198, 124, 31, 0.22);
  border-radius: 14px;
  background: #fffaf2;
}
.installment-checklist strong {
  color: var(--crivi-ink);
}
.installment-checklist ol {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 20px;
  color: var(--crivi-text);
  font-size: 13px;
}
.installment-checklist small {
  color: var(--crivi-muted);
  font-weight: 750;
}
.billing-receipt-card {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
  padding: 12px;
  border: 1px solid rgba(67, 166, 61, 0.18);
  border-radius: 14px;
  background: rgba(239, 250, 240, 0.72);
}
.billing-receipt-card strong {
  grid-column: 1 / -1;
  color: var(--crivi-ink);
}
.billing-receipt-card label {
  display: grid;
  gap: 6px;
  color: var(--crivi-text);
  font-size: 12px;
  font-weight: 850;
}
.billing-receipt-card button {
  align-self: end;
  min-height: 38px;
}
.billing-block-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 14px 0;
}
.billing-block-summary span {
  display: grid;
  gap: 5px;
  min-height: 74px;
  padding: 14px;
  border: 1px solid rgba(67, 166, 61, 0.14);
  border-radius: 15px;
  background: #f7fff8;
  color: var(--crivi-muted);
  font-size: 12px;
  font-weight: 850;
}
.billing-block-summary strong {
  color: var(--crivi-ink);
  font-size: 18px;
}
.prefeitura-access-options {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.prefeitura-access-options .company-form-notes,
.prefeitura-access-options .company-form-status {
  grid-column: 1 / -1;
}
.prefeitura-routine-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
  padding: 12px;
  border: 1px solid rgba(111, 45, 189, 0.12);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.72);
}
.prefeitura-routine-meta > strong,
.prefeitura-routine-meta > small {
  grid-column: 1 / -1;
}
.prefeitura-routine-meta div {
  display: grid;
  gap: 2px;
}
.prefeitura-routine-meta span {
  color: var(--crivi-muted);
  font-size: 11px;
  font-weight: 850;
}
.prefeitura-routine-meta b,
.prefeitura-routine-meta a {
  color: var(--crivi-ink);
  font-size: 12px;
}
.prefeitura-password-line {
  grid-template-columns: 1fr auto;
  align-items: end;
  column-gap: 8px;
}
.prefeitura-password-line span {
  grid-column: 1 / -1;
}
.prefeitura-password-line button {
  min-height: 26px;
  padding: 0 9px;
  border-radius: 999px;
  box-shadow: none;
  font-size: 11px;
}
.accessory-options {
  grid-column: 1 / -1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.routine-notice-panel {
  display: grid;
  grid-template-columns: minmax(220px, 1.2fr) minmax(180px, 0.7fr) minmax(240px, 1fr) auto;
  align-items: end;
  gap: 14px;
  margin: 18px 0;
  padding: 18px;
  border: 1px solid var(--crivi-line);
  border-radius: 16px;
  background: rgba(245, 233, 255, 0.58);
}
.routine-notice-panel span {
  color: var(--crivi-purple);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.routine-notice-panel h4 {
  margin: 4px 0;
  font-size: 18px;
}
.routine-notice-panel p {
  margin: 0;
  color: var(--crivi-muted);
}
.routine-notice-panel label {
  display: grid;
  gap: 8px;
  font-size: 13px;
  font-weight: 850;
}
.routine-notice-panel input,
.routine-notice-panel select {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--crivi-line);
  border-radius: 13px;
  padding: 0 12px;
  background: white;
}
.recipient-selection { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 12px; border: 1px solid var(--crivi-line); border-radius: 12px; background: rgba(255, 255, 255, 0.72); }
.recipient-selection legend { padding: 0 5px; color: var(--crivi-ink); font-size: 13px; font-weight: 850; }
.recipient-options { display: flex; flex-wrap: wrap; gap: 8px; }
.recipient-option { display: inline-flex !important; align-items: center; gap: 6px !important; min-height: 34px; padding: 6px 9px; border: 1px solid rgba(122, 45, 199, 0.18); border-radius: 8px; background: #fff; color: var(--crivi-ink); font-size: 12px !important; font-weight: 750 !important; }
.recipient-option input { width: auto !important; min-height: 0 !important; margin: 0; accent-color: var(--crivi-purple); }
.recipient-option small { color: var(--crivi-muted); font-size: 11px; font-weight: 600; }
.recipient-option-all { width: fit-content; border-color: rgba(122, 45, 199, 0.38); background: #faf6ff; }
.quick-note-form .recipient-selection { border-color: #e5d9b4; background: #fffef9; }
.quick-note-form .recipient-option { border-color: #e5d9b4; background: #fffdf5; }
.reinf-profit-panel {
  display: grid;
  gap: 16px;
  margin: 18px 0;
  padding: 18px;
  border: 1px solid rgba(122, 45, 199, 0.16);
  border-radius: 18px;
  background: linear-gradient(135deg, #fff, #faf6ff);
}
.reinf-profit-panel > div > span,
.reinf-profit-card span {
  color: var(--crivi-purple-2);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.reinf-profit-panel h3,
.reinf-profit-card h4 {
  margin: 5px 0;
  letter-spacing: 0;
}
.reinf-profit-panel p,
.reinf-profit-card p {
  margin: 0;
  color: var(--crivi-muted);
  line-height: 1.45;
}
.reinf-profit-grid {
  display: grid;
  gap: 14px;
}
.reinf-profit-card {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--crivi-line);
  border-radius: 16px;
  background: #fff;
}
.reinf-activity-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.reinf-activity-row {
  display: grid;
  gap: 9px;
  padding: 12px;
  border: 1px solid rgba(122, 45, 199, 0.12);
  border-radius: 14px;
  background: #fbf8ff;
}
.reinf-profit-card label,
.reinf-tax-breakdown label {
  display: grid;
  gap: 7px;
  color: var(--crivi-ink);
  font-size: 13px;
  font-weight: 850;
}
.reinf-profit-card input {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--crivi-line);
  border-radius: 12px;
  padding: 0 12px;
  background: white;
  color: var(--crivi-ink);
}
.reinf-main-tax {
  padding: 12px;
  border-radius: 14px;
  background: #fff8df;
}
.reinf-tax-breakdown {
  padding: 12px;
  border: 1px dashed rgba(122, 45, 199, 0.2);
  border-radius: 14px;
  background: #fff;
}
.reinf-tax-breakdown summary {
  cursor: pointer;
  color: var(--crivi-purple);
  font-weight: 900;
}
.reinf-tax-breakdown div {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.reinf-memory {
  display: grid;
  gap: 6px;
  padding: 13px;
  border-radius: 14px;
  background: #f6f3fa;
  color: var(--crivi-ink);
  font-size: 13px;
}
.reinf-memory span,
.reinf-memory small {
  color: var(--crivi-muted);
}
.reinf-alert {
  padding: 12px;
  border: 1px solid rgba(223, 61, 50, 0.22);
  border-radius: 14px;
  background: #fff0ef;
  color: #9a1f19 !important;
  font-weight: 850;
}
.journey-grid {
  margin-bottom: 18px;
}
.company-form-notes {
  grid-column: 1 / -1;
}
.company-form-status {
  margin: 0;
  color: var(--crivi-muted);
  font-size: 13px;
  line-height: 1.45;
}
.company-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}
.company-form-actions button {
  min-height: 44px;
}
.company-empty-state {
  min-height: 260px;
}
.timer-display { font-size: 72px; font-weight: 950; letter-spacing: 0; margin: 32px 0; }
.timer-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.crivi-floating { position: fixed; right: 28px; bottom: 28px; z-index: 40; width: 82px; height: 82px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #f5e9ff; color: var(--crivi-purple); box-shadow: 0 18px 36px rgba(75, 33, 132, 0.25); overflow: hidden; }
.crivi-floating img { width: 72px; height: 72px; object-fit: contain; object-position: center; }
.crivi-floating i { position: absolute; right: 6px; bottom: 5px; width: 17px; height: 17px; border: 3px solid white; border-radius: 50%; background: #43c861; }
.crivi-panel { position: fixed; right: 28px; bottom: 116px; z-index: 39; width: min(360px, calc(100vw - 36px)); padding: 20px; border: 1px solid var(--crivi-line); border-radius: 20px; background: white; box-shadow: var(--crivi-shadow); }
.crivi-panel header { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.crivi-panel p { color: var(--crivi-muted); line-height: 1.5; }
.toast { position: fixed; left: 50%; bottom: 28px; z-index: 50; transform: translateX(-50%); padding: 14px 18px; border-radius: 999px; background: var(--crivi-ink); color: white; box-shadow: var(--crivi-shadow); }
.secure-delete-overlay {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(24, 12, 44, 0.58);
  backdrop-filter: blur(5px);
}
.secure-delete-overlay[hidden] { display: none; }
.secure-delete-modal {
  width: min(520px, 100%);
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  padding: 24px;
  border: 1px solid rgba(180, 35, 24, 0.18);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(27, 12, 54, 0.26);
}
.secure-delete-modal header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.secure-delete-modal header span { color: #9a1f19; font-size: 12px; font-weight: 900; text-transform: uppercase; }
.secure-delete-modal h2 { margin: 4px 0 0; color: var(--crivi-ink); font-size: 24px; }
.secure-delete-modal > p { color: var(--crivi-muted); line-height: 1.5; }
.secure-delete-target {
  display: grid;
  gap: 6px;
  margin: 18px 0;
  padding: 15px;
  border: 1px solid rgba(180, 35, 24, 0.16);
  border-radius: 14px;
  background: #fff7f6;
}
.secure-delete-target span { color: #9a1f19; font-size: 12px; font-weight: 900; }
.secure-delete-target strong { color: var(--crivi-ink); font-size: 17px; overflow-wrap: anywhere; }
.secure-delete-target small { color: var(--crivi-muted); line-height: 1.45; }
.secure-delete-modal form,
.secure-delete-modal form > label { display: grid; gap: 9px; }
.secure-delete-modal form > label { color: var(--crivi-ink); font-size: 13px; font-weight: 900; }
.secure-delete-password {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  border: 1px solid var(--crivi-line);
  border-radius: 13px;
  overflow: hidden;
}
.secure-delete-password input { min-width: 0; min-height: 46px; border: 0; padding: 0 13px; outline: 0; }
.secure-delete-password button { border: 0; border-left: 1px solid var(--crivi-line); border-radius: 0; box-shadow: none; }
.secure-delete-status { min-height: 20px; margin: 10px 0; color: var(--crivi-muted); font-size: 12px; line-height: 1.45; }
.secure-delete-status.is-error { color: #b42318; font-weight: 850; }
.secure-delete-actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.secure-delete-actions button { min-height: 42px; }
.secure-delete-actions .danger { background: #b42318; color: #fff; border-color: #b42318; }
.secure-delete-actions .danger:disabled { cursor: not-allowed; opacity: 0.46; }
.checklist-scope-overlay { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: rgba(24, 12, 44, 0.52); backdrop-filter: blur(5px); }
.checklist-scope-overlay[hidden] { display: none; }
.checklist-scope-modal { width: min(640px, 100%); max-height: calc(100vh - 40px); overflow-y: auto; padding: 24px; border: 1px solid rgba(122, 45, 199, 0.2); border-radius: 18px; background: #fff; box-shadow: 0 28px 80px rgba(27, 12, 54, 0.26); }
.checklist-scope-modal header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.checklist-scope-modal header span { color: var(--crivi-purple-2); font-size: 12px; font-weight: 900; text-transform: uppercase; }
.checklist-scope-modal h2 { margin: 4px 0 0; color: var(--crivi-ink); font-size: 24px; }
.checklist-scope-modal > p { color: var(--crivi-muted); line-height: 1.5; }
.checklist-scope-target { display: grid; gap: 6px; margin: 18px 0; padding: 15px; border: 1px solid rgba(122, 45, 199, 0.16); border-radius: 14px; background: #fbf7ff; }
.checklist-scope-target span { color: var(--crivi-purple-2); font-size: 12px; font-weight: 900; }
.checklist-scope-target strong { color: var(--crivi-ink); font-size: 17px; overflow-wrap: anywhere; }
.checklist-scope-target small, .checklist-scope-note { color: var(--crivi-muted); line-height: 1.45; }
.checklist-scope-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.checklist-scope-options button { min-height: 78px; padding: 12px; border-radius: 12px; text-align: left; box-shadow: none; font-weight: 850; }
.checklist-scope-options button small { display: block; margin-top: 5px; color: inherit; font-size: 11px; font-weight: 700; opacity: .8; }
.checklist-scope-actions { display: flex; justify-content: flex-end; margin-top: 16px; }
@media (max-width: 640px) {
  .routine-area-removal-choice { display: grid; }
  .tenant-template-panel-header,
  .tenant-template-row { display: grid; }
  .tenant-template-actions { justify-content: space-between; }
  .tenant-template-company-list { grid-template-columns: 1fr; }
  .irpf-installment-config { grid-template-columns: 1fr; }
  .routine-company-picker > div,
  .routine-form-conditional.company-form-grid,
  .routine-deadline-grid { grid-template-columns: 1fr; }
  .routine-target-scope label { display: flex; margin-right: 0; }
  .checklist-scope-options { grid-template-columns: 1fr; }
  .checklist-scope-modal { padding: 18px; }
}

/* Legal module V1 */
.legal-loading { padding: 36px; text-align: center; color: var(--muted, #6f6878); }
.legal-metrics { display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)); gap: 12px; margin-bottom: 20px; }
.legal-metrics article { display: grid; gap: 8px; padding: 18px; border: 1px solid #eadff1; border-radius: 16px; background: #fff; }
.legal-metrics strong { font-size: 30px; color: #392044; }
.legal-dashboard-group, .legal-hearings { margin: 18px 0; padding: 18px; border: 1px solid #eadff1; border-radius: 18px; background: #fff; }
.legal-dashboard-group > header, .legal-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.legal-dashboard-group h2, .legal-hearings h2, .legal-case-form h2 { margin: 0 0 12px; font-size: 18px; }
.legal-finance-metrics { display:grid; grid-template-columns:repeat(5,minmax(150px,1fr)); gap:12px; margin-bottom:18px; }
.legal-finance-metrics.legal-finance-current { grid-template-columns:repeat(3,minmax(180px,1fr)); }
.legal-finance-metrics.legal-finance-secondary { grid-template-columns:repeat(4,minmax(150px,1fr)); margin-top:-6px; }
.legal-finance-metrics article { padding:18px; border-radius:18px; color:#fff; box-shadow:0 12px 28px rgba(35,18,67,.12); }
.legal-finance-metrics article.is-selected { outline:3px solid #f0c94b; outline-offset:3px; }
.legal-finance-metrics article > button { width:100%; padding:0; border:0; color:inherit; background:transparent; text-align:left; box-shadow:none; }
.legal-finance-metrics article > button:hover { transform:none; }
.legal-finance-metrics span { display:block; font-size:13px; opacity:.9; }
.legal-finance-metrics strong { display:block; margin-top:8px; font-size:23px; }
.legal-finance-metrics small { display:block; margin-top:10px; color:inherit; font-size:11px; font-weight:800; opacity:.82; }
.legal-finance-metrics .scheduled { background:linear-gradient(135deg,#6130a3,#8b48cb); }
.legal-finance-metrics .overdue { background:linear-gradient(135deg,#a52d3e,#dc5263); }
.legal-finance-metrics .received { background:linear-gradient(135deg,#167461,#2fa78d); }
.legal-finance-metrics .upfront { background:linear-gradient(135deg,#9b6b14,#d5a338); }
.legal-finance-metrics .success { background:linear-gradient(135deg,#20265d,#555ec0); }
.legal-finance-panel { margin:18px 0; padding:22px; border:1px solid #e7dced; border-radius:20px; background:#fff; }
.legal-finance-panel .legal-section-heading span { color:#7734b8; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.legal-finance-detail { border-color:#c9a9e4; box-shadow:0 12px 32px rgba(72,34,112,.09); }
.legal-finance-detail .table-wrap { overflow-x:auto; }
.legal-finance-detail table { min-width:1120px; }
.legal-finance-detail td > small { display:block; margin-top:5px; color:#756b80; }
.legal-fee-detail-status { display:inline-flex; padding:6px 10px; border-radius:99px; font-size:12px; font-weight:850; white-space:nowrap; }
.legal-fee-detail-status.is-received { color:#176451; background:#dff5ed; }
.legal-fee-detail-status.is-overdue { color:#962d3b; background:#ffe3e7; }
.legal-fee-detail-status.is-pending { color:#664914; background:#fff0c7; }
.legal-fee-receipt-action { display:flex; align-items:center; gap:7px; min-width:245px; }
.legal-fee-receipt-action input { min-width:135px; }
.finance-receipt-actions { display:grid; gap:8px; min-width:310px; }
.finance-adjustment-buttons { display:flex; flex-wrap:wrap; gap:7px; }
.finance-adjustment-buttons button { min-height:34px; padding:6px 10px; font-size:11px; box-shadow:none; }
.finance-adjustment-panel { grid-template-columns:repeat(3,minmax(90px,1fr)); gap:8px; align-items:end; padding:10px; border:1px solid var(--crivi-line); border-radius:10px; background:#fbf9ff; }
.finance-adjustment-panel:not([hidden]) { display:grid; }
.finance-adjustment-panel label { display:grid; gap:4px; color:var(--crivi-muted); font-size:11px; font-weight:800; }
.finance-adjustment-panel input { width:100%; min-width:90px; }
.finance-adjustment-panel button { min-height:38px; }
.legal-month-bars { display:grid; gap:14px; margin-top:20px; }
.legal-month-bars article > div:first-child { display:flex; justify-content:space-between; gap:16px; }
.legal-month-bars small { display:block; margin-top:5px; color:#665b74; }
.legal-month-bars em { color:#bd354d; font-style:normal; font-weight:700; }
.legal-month-track { position:relative; height:16px; margin-top:7px; border-radius:99px; background:#f1ebf5; overflow:hidden; }
.legal-month-track i,.legal-month-track b { position:absolute; inset:0 auto 0 0; border-radius:99px; }
.legal-month-track i { background:#d8c1e9; }
.legal-month-track b { background:#7331ac; }
.legal-finance-legend { display:flex; gap:18px; margin-top:14px; color:#665b74; font-size:12px; }
.legal-finance-legend i { display:inline-block; width:12px; height:12px; border-radius:50%; background:#d8c1e9; }
.legal-finance-legend span:last-child i { background:#7331ac; }
.legal-success-panel td small { display:block; margin-top:4px; color:#756b80; }
.legal-success-proximity { display:inline-flex; padding:6px 10px; border-radius:99px; font-size:12px; font-weight:800; }
.legal-success-proximity.near { color:#fff; background:#b82f48; }
.legal-success-proximity.attention { color:#61420a; background:#ffe3a2; }
.legal-success-proximity.distant { color:#4d3f5a; background:#eee7f3; }
.legal-fee-batch { display:grid; grid-template-columns:1.5fr repeat(4,minmax(130px,1fr)) auto; gap:10px; align-items:end; margin:14px 0 18px; padding:16px; border:1px dashed #b998d0; border-radius:16px; background:#fbf8fd; }
.legal-fee-batch p { margin:4px 0 0; font-size:12px; color:#6e6278; }
.legal-fee-batch label { margin:0; }
@media (max-width:1100px) { .legal-finance-metrics { grid-template-columns:repeat(2,minmax(150px,1fr)); } .legal-fee-batch { grid-template-columns:repeat(2,minmax(180px,1fr)); } }
@media (max-width:650px) { .legal-finance-metrics,.legal-fee-batch { grid-template-columns:1fr; } }
.legal-group-act_now { border-left: 5px solid #d23a49; }
.legal-group-monitor_deadline { border-left: 5px solid #e67e22; }
.legal-group-waiting_third_party { border-left: 5px solid #dca521; }
.legal-group-waiting { border-left: 5px solid #31a36c; }
.legal-group-review { border-left: 5px solid #776083; }
.legal-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 12px; }
.legal-portfolio-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
.legal-portfolio-card { display: grid; gap: 14px; min-height: 190px; padding: 20px; border: 1px solid #e5d8ec; border-top: 5px solid var(--portfolio-color, #7132a8); border-radius: 18px; background: #fff; box-shadow: 0 10px 28px rgba(61, 31, 77, .06); text-align: left; }
.legal-portfolio-card:hover { border-color: var(--portfolio-color, #7132a8); transform: translateY(-2px); }
.legal-portfolio-card header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.legal-portfolio-card h2 { margin: 0; color: #321743; font-size: 19px; }
.legal-portfolio-card .legal-portfolio-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; color: #fff; background: var(--portfolio-color, #7132a8); font-size: 20px; }
.legal-portfolio-card p { margin: 0; color: #706177; line-height: 1.45; }
.legal-portfolio-counts { display: flex; gap: 18px; margin-top: auto; }
.legal-portfolio-counts span { display: grid; gap: 2px; color: #76677d; font-size: 12px; }
.legal-portfolio-counts strong { color: #321743; font-size: 24px; }
.legal-portfolio-card.is-unclassified { border-style: dashed; background: #fcfaf5; }
.legal-portfolio-card > footer { display: flex; flex-wrap: wrap; gap: 8px; }
.legal-portfolio-form { display: grid; gap: 14px; margin-bottom: 18px; padding: 18px; border: 1px solid #e5d8ec; border-radius: 16px; background: #fff; }
.legal-portfolio-form h2 { margin: 0; color: #321743; }
.legal-portfolio-form label { display: grid; gap: 6px; font-weight: 600; }
.legal-portfolio-form > footer { display: flex; justify-content: flex-end; gap: 8px; }
.legal-case-card { display: grid; gap: 8px; padding: 14px; border-radius: 14px; background: #faf7fc; }
.legal-case-card > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.legal-case-card p { margin: 0; }
.legal-badge { display: inline-flex; padding: 4px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.legal-act_now { color: #981d2c; background: #fee9ec; }
.legal-monitor_deadline { color: #8a4600; background: #fff0df; }
.legal-waiting_third_party { color: #795500; background: #fff3ca; }
.legal-waiting { color: #17653f; background: #def6e9; }

.legal-responsible-field { border: 1px solid #ddd3eb; border-radius: 10px; padding: 10px 12px; }
.legal-responsible-checks { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 6px; }
.legal-responsible-checks label { display: flex; align-items: center; gap: 6px; }
.legal-review { color: #574061; background: #eee7f1; }
.legal-closed { color: #444; background: #e8e8e8; }
.legal-alert { display: block; padding: 6px 8px; border-radius: 8px; }
.legal-alert.critical { color: #981d2c; background: #fee9ec; }
.legal-alert.warning { color: #795500; background: #fff3ca; }
.legal-hearings ul { display: grid; gap: 8px; padding: 0; list-style: none; }
.legal-hearings li { display: flex; gap: 16px; padding: 10px; border-bottom: 1px solid #eee5f2; }
.legal-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.legal-filters input, .legal-filters select { min-width: 180px; }
.legal-table-wrap { width: 100%; overflow-x: auto; }
.legal-process-table { min-width: 1320px; }
.legal-calendar-table .data-table { min-width: 1320px; }
.legal-calendar-date { display: inline-flex; align-items: center; min-height: 30px; padding: 0 10px; border: 1px solid currentColor; border-radius: 999px; font-size: 12px; font-weight: 850; white-space: nowrap; }
.legal-calendar-date.is-danger { color: #9f1d24; background: #ffe6e8; }
.legal-calendar-date.is-warning { color: #805800; background: #fff1b8; }
.legal-calendar-date.is-progress { color: #245ca8; background: #e7f0ff; }
.legal-calendar-date.is-future { color: #276846; background: #e3f4e9; }
.legal-calendar-date.is-neutral { color: #655b69; background: #eeeaf0; }
.legal-calendar-type.is-hearing { color: #684b00; background: #ffdf69; box-shadow: inset 0 0 0 1px #e0b92f; }
.legal-calendar-type.is-meeting { color: #553076; background: #efe2fa; box-shadow: inset 0 0 0 1px #d1b5e8; }
.legal-calendar-type.is-reminder { color: #174f91; background: #cfe2ff; box-shadow: inset 0 0 0 1px #78a8e8; }
.legal-calendar-table tbody tr:has(.legal-calendar-type.is-reminder) td { background: #eaf3ff; }
.legal-calendar-table tbody tr:has(.legal-calendar-type.is-reminder) td:first-child { box-shadow: inset 5px 0 0 #397bd1; }
.legal-meeting-form { margin-bottom: 18px; padding: 18px; border: 1px solid #ded3e8; border-radius: 16px; background: #fbf8fd; }
.legal-meeting-form footer { display: flex; justify-content: flex-end; gap: 10px; margin-top: 14px; }
.legal-calendar-filter { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 850; }
.legal-calendar-filter select { min-height: 38px; }
.legal-calendar-status.is-open { color: #245ca8; background: #e7f0ff; }
.legal-calendar-status.is-completed { color: #276846; background: #e3f4e9; }
.legal-calendar-actions { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.legal-calendar-actions button { min-height: 34px; padding: 6px 10px; }
.legal-calendar-actions .danger { color: #9f1d24; border-color: #e2a4a8; background: #fff1f2; }
.legal-intake-actions { display: flex; flex-wrap: wrap; gap: 7px; min-width: 300px; }
.legal-intake-actions .danger { color: #9f1d24; border-color: #e2a4a8; background: #fff1f2; }
.legal-link { padding: 0; color: #6d357d; background: none; border: 0; font-weight: 700; text-decoration: underline; }
.legal-case-form { display: grid; gap: 18px; }
.legal-case-form > section { padding: 18px; border: 1px solid #eadff1; border-radius: 16px; background: #fff; }
.legal-form-grid { display: grid; grid-template-columns: repeat(3, minmax(180px, 1fr)); gap: 12px; }
.legal-case-form label { display: grid; gap: 6px; font-weight: 600; }
.legal-case-form input, .legal-case-form select, .legal-case-form textarea { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid #d9cce0; border-radius: 9px; background: #fff; }
.legal-wide { grid-column: 1 / -1; }
.legal-party-row { display: grid; grid-template-columns: minmax(180px, 2fr) minmax(110px, 1fr) minmax(150px, 1fr) auto auto auto; align-items: center; gap: 8px; margin: 8px 0; }
.legal-party-row label { display: flex; align-items: center; white-space: nowrap; }
.legal-party-row label input { width: auto; min-height: 0; }
.legal-derived-side { padding: 10px; border-radius: 10px; color: #583665; background: #f3edf6; font-weight: 700; }
.legal-two-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.legal-two-columns > div { display: grid; gap: 10px; }
.legal-case-form footer { display: flex; justify-content: flex-end; gap: 10px; }
.legal-fee-row { display: grid; grid-template-columns: 90px minmax(150px, 1.4fr) minmax(110px, .8fr) 145px 125px 145px minmax(140px, 1fr) auto; align-items: center; gap: 8px; margin: 10px 0; padding: 10px; border: 1px solid #eadff1; border-radius: 12px; background: #faf7fc; }
.legal-fee-row input, .legal-fee-row select { min-width: 0; }
.legal-contact-row { display: grid; grid-template-columns: 85px minmax(140px, 1fr) minmax(140px, 1fr) 100px minmax(170px, 1fr) 100px minmax(130px, 1fr) auto; align-items: center; gap: 8px; margin: 10px 0; padding: 10px; border: 1px solid #dbe4ef; border-radius: 12px; background: #f8fbff; }
.legal-contact-row label { display: flex; grid-template-columns: none; align-items: center; gap: 6px; white-space: nowrap; }
.legal-contact-row label input { width: auto; min-height: 0; }
.legal-related-case-card { display: grid; gap: 14px; margin: 14px 0; padding: 16px; border: 1px solid #d8c9e4; border-radius: 14px; background: #fcf9fe; }
.legal-related-case-card header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.legal-related-case-card header div { display: grid; gap: 3px; }
.legal-related-case-card header span { color: #765686; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.legal-related-case-card header strong { color: #301846; font-size: 17px; }
.legal-meeting-capture { display: grid; gap: 14px; border-color: #cdb5dc !important; background: linear-gradient(135deg, #fff 0%, #faf4ff 100%) !important; }
.legal-meeting-capture .legal-section-heading h2 { margin-bottom: 4px; }
.legal-meeting-capture .legal-section-heading p { margin: 0; color: #706177; font-weight: 400; }
.legal-meeting-privacy { padding: 6px 10px; border-radius: 999px; color: #5a2b72; background: #eadcf3; font-size: 12px; font-weight: 800; white-space: nowrap; }
.legal-meeting-consent { display: flex !important; grid-template-columns: none !important; align-items: flex-start; gap: 9px !important; padding: 12px; border: 1px solid #e1d3e9; border-radius: 11px; background: #fff; line-height: 1.4; }
.legal-meeting-consent input { width: auto !important; min-height: 0 !important; margin-top: 3px; }
.legal-meeting-actions { display: flex; flex-wrap: wrap; gap: 9px; }
#legal-meeting-capture-status { margin: 0; color: #5b3b68; font-weight: 700; }
#legal-meeting-live-transcript { min-height: 150px; background: #fbfafc; }
.legal-meeting-capture > small { color: #76677d; line-height: 1.45; }
.legal-preprocess { display: grid; gap: 14px; border-color: #d4c2df !important; background: #fcf9fe !important; }
.legal-document-checklist { display: grid; gap: 9px; }
.legal-document-row { display: grid; grid-template-columns: 28px minmax(180px, 1fr) auto auto; align-items: center; gap: 9px; padding: 9px; border: 1px solid #e2d7e8; border-radius: 10px; background: #fff; }
.legal-document-row > input[type="checkbox"], .legal-document-row label input { width: auto; min-height: 0; }
.legal-document-row label { display: flex; grid-template-columns: none; align-items: center; white-space: nowrap; }
@media (max-width: 720px) { .legal-document-row { grid-template-columns: 28px 1fr; } .legal-document-row label, .legal-document-row button { grid-column: 2; } }
.data-table td small { display: block; margin-top: 4px; color: #766c7d; }
#legal-form-status { color: #981d2c; font-weight: 600; }
@media (max-width: 1000px) {
  .legal-metrics { grid-template-columns: repeat(2, 1fr); }
  .legal-form-grid, .legal-two-columns { grid-template-columns: 1fr; }
  .legal-party-row { grid-template-columns: 1fr 1fr; }
  .legal-fee-row { grid-template-columns: 1fr 1fr; }
  .legal-contact-row { grid-template-columns: 1fr 1fr; }
}
.operational-notice-overlay {
  position: fixed;
  inset: 0;
  z-index: 110;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(77, 42, 132, 0.28);
  backdrop-filter: blur(7px) saturate(0.9);
}
.operational-notice-overlay[hidden] { display: none; }

.crivi-priority-overlay { position: fixed; inset: 0; z-index: 108; display: grid; place-items: center; padding: 24px; background: rgba(29, 15, 49, .52); backdrop-filter: blur(7px); }
.crivi-priority-overlay[hidden] { display: none; }
.crivi-priority-modal { width: min(1160px, 100%); max-height: calc(100vh - 48px); overflow-y: auto; border: 1px solid #e6d9f3; border-radius: 18px; background: #fff; box-shadow: 0 30px 90px rgba(32, 13, 57, .3); }
.crivi-priority-header { position: sticky; top: 0; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 24px 26px 20px; border-bottom: 1px solid var(--crivi-line); background: rgba(255,255,255,.97); }
.crivi-priority-header > div { min-width: 0; }
.crivi-priority-heading { display: flex; align-items: center; gap: 14px; }
.crivi-priority-heading > img { width: 58px; height: 58px; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 8px 8px rgba(53, 20, 91, .18)); }
.crivi-priority-header span { color: var(--crivi-purple-2); font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.crivi-priority-header h2 { margin: 4px 0 6px; color: var(--crivi-ink); font-size: 25px; letter-spacing: 0; }
.crivi-priority-header p { margin: 0; color: var(--crivi-muted); line-height: 1.45; }
.crivi-priority-header button { min-height: 38px; padding: 0 13px; box-shadow: none; }
#crivi-priority-content { padding: 22px 26px 26px; }
.crivi-priority-summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 16px; padding: 14px 16px; border: 1px solid #eadff5; border-radius: 10px; background: #faf7ff; }
.crivi-priority-summary strong, .crivi-priority-summary span { display: block; }
.crivi-priority-summary strong { color: var(--crivi-ink); }
.crivi-priority-summary span { margin-top: 4px; color: var(--crivi-muted); font-size: 12px; }
.crivi-priority-summary button { flex: 0 0 auto; min-height: 36px; padding: 0 12px; box-shadow: none; }
.crivi-priority-list { display: grid; gap: 11px; }
.crivi-priority-item { --priority-color: #89799a; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 16px; border: 1px solid var(--crivi-line); border-left: 4px solid var(--priority-color); border-radius: 10px; background: #fff; }
.crivi-priority-item.is-critical { --priority-color: var(--crivi-red); background: #fff9f9; }
.crivi-priority-item.is-high { --priority-color: #e07b19; background: #fffaf5; }
.crivi-priority-item.is-medium { --priority-color: #d49b16; background: #fffdf7; }
.crivi-priority-item.is-low { --priority-color: #367ac7; }
.crivi-priority-item.is-informative { --priority-color: #89799a; }
.crivi-priority-rank { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--priority-color); color: #fff; font-size: 13px; font-weight: 900; }
.crivi-priority-item-copy { min-width: 0; }
.crivi-priority-item-heading { display: flex; align-items: center; gap: 8px; }
.crivi-priority-item-heading small { color: var(--crivi-muted); font-size: 11px; }
.crivi-priority-badge { display: inline-flex; align-items: center; min-height: 23px; padding: 0 8px; border-radius: 999px; background: color-mix(in srgb, var(--priority-color) 12%, white); color: var(--priority-color); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.crivi-priority-item h3 { margin: 7px 0 3px; color: var(--crivi-ink); font-size: 17px; letter-spacing: 0; overflow-wrap: anywhere; }
.crivi-priority-item p { margin: 0; color: var(--crivi-muted); font-size: 12px; line-height: 1.4; }
.crivi-priority-item ul { display: flex; flex-wrap: wrap; gap: 5px 14px; margin: 9px 0 7px; padding: 0; list-style: none; }
.crivi-priority-item li { color: #5f4b70; font-size: 11px; }
.crivi-priority-item li::before { content: "\2022"; margin-right: 5px; color: var(--priority-color); }
.crivi-priority-item-copy > strong { display: block; color: var(--crivi-purple); font-size: 12px; line-height: 1.4; }
.crivi-priority-item > button { min-height: 38px; padding: 0 14px; box-shadow: none; }
.crivi-priority-disclaimer { margin: 16px 0 0; color: var(--crivi-muted); font-size: 11px; line-height: 1.45; text-align: center; }
.crivi-priority-empty { display: grid; justify-items: center; gap: 10px; padding: 42px 24px; text-align: center; }
.crivi-priority-empty strong { color: var(--crivi-ink); font-size: 18px; }
.crivi-priority-empty p { max-width: 560px; margin: 0; color: var(--crivi-muted); line-height: 1.5; }
.crivi-priority-empty button { margin-top: 6px; }
.crivi-priority-hero { display: grid; grid-template-columns: 116px minmax(0, 1fr); align-items: center; gap: 18px; margin-bottom: 16px; padding: 18px 20px; border: 1px solid #e6d9f3; border-radius: 12px; background: #faf7ff; }
.crivi-priority-hero img { width: 112px; height: 112px; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 12px 10px rgba(53, 20, 91, .18)); }
.crivi-priority-hero span { color: var(--crivi-purple-2); font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.crivi-priority-hero h3 { margin: 4px 0 7px; color: var(--crivi-ink); font-size: 22px; letter-spacing: 0; }
.crivi-priority-hero p { max-width: 680px; margin: 0; color: #514066; line-height: 1.45; }
.crivi-priority-hero small { display: block; margin-top: 8px; color: var(--crivi-muted); font-size: 11px; }
.crivi-priority-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin-bottom: 16px; }
.crivi-priority-metrics > div { min-height: 76px; display: grid; align-content: center; gap: 3px; padding: 12px; border: 1px solid var(--crivi-line); border-radius: 9px; background: #fff; }
.crivi-priority-metrics strong { color: var(--crivi-ink); font-size: 24px; line-height: 1; }
.crivi-priority-metrics span { color: var(--crivi-muted); font-size: 10px; font-weight: 850; line-height: 1.25; text-transform: uppercase; }
.crivi-priority-controls { margin-bottom: 16px; padding: 14px; border: 1px solid var(--crivi-line); border-radius: 10px; background: #fff; }
.crivi-priority-controls-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.crivi-priority-scope { display: inline-flex; gap: 3px; padding: 3px; border: 1px solid #ddd0ea; border-radius: 8px; background: #faf7ff; }
.crivi-priority-scope button, .crivi-priority-reset, .crivi-priority-details-button, .crivi-priority-show-more { min-height: 34px; border: 1px solid #d8c9e8; border-radius: 7px; background: #fff; color: var(--crivi-purple); font-weight: 850; box-shadow: none; }
.crivi-priority-scope button { border: 0; padding: 0 11px; }
.crivi-priority-scope button.is-active { background: var(--crivi-purple); color: #fff; }
.crivi-priority-reset { padding: 0 11px; font-size: 12px; }
.crivi-priority-scope-note { margin: 0; color: var(--crivi-muted); font-size: 12px; font-weight: 800; }
.crivi-priority-filter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.crivi-priority-filter { display: grid; gap: 5px; color: #5e4d70; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.crivi-priority-filter select { width: 100%; min-width: 0; min-height: 38px; border: 1px solid #ddd0ea; border-radius: 7px; background: #fff; color: var(--crivi-ink); padding: 0 9px; font: inherit; font-size: 12px; font-weight: 750; text-transform: none; }
.crivi-priority-group { margin-top: 18px; }
.crivi-priority-group > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 9px; }
.crivi-priority-group > header h3 { margin: 0; color: var(--crivi-ink); font-size: 16px; letter-spacing: 0; }
.crivi-priority-group > header p { margin: 3px 0 0; color: var(--crivi-muted); font-size: 12px; }
.crivi-priority-group > header > span { display: grid; place-items: center; min-width: 26px; height: 26px; border-radius: 50%; background: #eee7f6; color: var(--crivi-purple); font-size: 12px; font-weight: 900; }
.crivi-priority-item-actions { display: grid; gap: 7px; align-self: center; }
.crivi-priority-item-actions > button { min-height: 36px; padding: 0 12px; box-shadow: none; white-space: nowrap; }
.crivi-priority-details-button { color: #5d496f !important; }
.crivi-priority-details { display: grid; gap: 10px; margin-top: 12px; padding: 12px; border: 1px solid #eadff5; border-radius: 8px; background: #fbf9fd; }
.crivi-priority-details p { color: #4e3f61; font-size: 12px; font-weight: 750; }
.crivi-priority-details dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; }
.crivi-priority-details dl div { min-width: 0; }
.crivi-priority-details dt { color: var(--crivi-muted); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.crivi-priority-details dd { margin: 3px 0 0; color: var(--crivi-ink); font-size: 11px; font-weight: 800; overflow-wrap: anywhere; }
.crivi-priority-show-more { display: block; width: 100%; margin-top: 16px; }

.quick-note-overlay { position: fixed; inset: 0; z-index: 105; display: grid; place-items: center; padding: 20px; background: rgba(24, 12, 44, 0.48); backdrop-filter: blur(5px); }
.quick-note-overlay[hidden] { display: none; }
.quick-note-modal { width: min(680px, 100%); max-height: calc(100vh - 40px); overflow-y: auto; border: 1px solid rgba(113, 63, 18, 0.18); border-radius: 18px; background: #fffdf5; box-shadow: 0 30px 85px rgba(31, 19, 51, 0.3); }
.quick-note-form { display: grid; gap: 18px; padding: 26px; }
.quick-note-form header, .quick-note-form footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.quick-note-form header span { color: #96600a; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.quick-note-form h2 { margin: 3px 0 8px; color: var(--crivi-ink); }
.quick-note-form p { margin: 0; color: var(--crivi-muted); line-height: 1.5; }
.quick-note-form > label, .quick-note-form-grid label { display: grid; gap: 8px; color: var(--crivi-ink); font-size: 13px; font-weight: 800; }
.quick-note-form textarea, .quick-note-form input, .quick-note-form select { width: 100%; border: 1px solid #e5d9b4; border-radius: 9px; background: #fffef9; color: var(--crivi-ink); padding: 11px 12px; font: inherit; }
.quick-note-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.quick-note-form-status { padding: 11px 13px; border-radius: 9px; background: #fff5c9; color: #6f5112 !important; font-size: 13px; }
.quick-note-form footer { align-items: center; justify-content: flex-end; }
.quick-note-workspace { width: 100%; overflow: visible; padding: 2px 2px 18px; }
.quick-note-board { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); align-items: start; gap: 18px; width: 100%; min-height: 320px; padding: 20px; border: 1px solid #e7dba7; border-radius: 16px; background-color: #fffdf4; background-image: linear-gradient(rgba(125, 95, 28, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(125, 95, 28, .05) 1px, transparent 1px); background-size: 28px 28px; box-shadow: inset 0 1px 0 rgba(255,255,255,.85); }
.quick-note-card { position: relative; display: grid; gap: 12px; width: 100%; min-width: 0; min-height: 194px; padding: 16px; border: 1px solid #dec66d; border-radius: 10px 10px 14px 10px; background: #fff1a8; box-shadow: 0 10px 20px rgba(108, 77, 16, .18); color: #3c3010; transition: box-shadow .16s ease, transform .16s ease; user-select: none; }
.quick-note-card:hover { box-shadow: 0 15px 26px rgba(108, 77, 16, .26); }
.quick-note-card.is-dragging { cursor: grabbing; transform: rotate(1deg) scale(1.015); box-shadow: 0 20px 34px rgba(61, 38, 7, .31); }
.quick-note-card header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.quick-note-card header > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }
.quick-note-card header span { color: #72510a; font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.quick-note-card button { border: 0; border-radius: 7px; background: rgba(255,255,255,.52); color: #51390b; padding: 6px 8px; font-size: 11px; font-weight: 800; cursor: pointer; }
.quick-note-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.quick-note-tag { display: inline-flex; align-items: center; min-height: 22px; padding: 0 8px; border: 1px solid #d5bb59; border-radius: 999px; background: rgba(255, 255, 255, .52); color: #5d4913; font-size: 10px; font-weight: 900; }
.quick-note-tag.priority-high { border-color: #d28d18; background: #fff0cb; color: #875000; }
.quick-note-tag.priority-urgent, .quick-note-tag.attention { border-color: #d6473d; background: #fff0ef; color: #9f2b24; }
.quick-note-card.priority-low { border-color: #bfc4c8; background: #f5f5e8; box-shadow: inset 4px 0 #a8afb4, 0 10px 20px rgba(108, 77, 16, .13); }
.quick-note-text { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; color: #2e250e; font-size: 15px; font-weight: 800; line-height: 1.38; }
.quick-note-meta { display: grid; gap: 4px; color: #66551e; font-size: 11px; line-height: 1.35; }
.quick-note-meta b { color: #3d3110; }
.quick-note-card footer { display: grid; gap: 10px; margin-top: auto; }
.quick-note-card footer small { color: #796b38; font-size: 10px; line-height: 1.35; }
.quick-note-card footer div { display: flex; flex-wrap: wrap; gap: 5px; }
.quick-note-card.priority-high { border-color: #d28d18; box-shadow: inset 4px 0 #d28d18, 0 10px 20px rgba(108, 77, 16, .18); }
.quick-note-card.priority-urgent { border-color: #d6473d; box-shadow: inset 4px 0 #d6473d, 0 10px 20px rgba(108, 77, 16, .2); }
.quick-note-card.due-overdue { outline: 2px solid rgba(201, 50, 43, .45); }
.quick-note-card.due-soon { outline: 2px solid rgba(232, 151, 19, .42); }
.quick-note-card.is-stale { outline: 2px solid rgba(207, 125, 18, .44); }
.quick-note-empty { width: min(470px, calc(100% - 48px)); margin: 100px auto; display: grid; justify-items: center; gap: 13px; padding: 32px; border: 1px dashed #d6bd66; border-radius: 14px; background: rgba(255, 249, 214, .78); text-align: center; color: #5b4711; }
.quick-note-empty p { margin: 0; color: #776535; line-height: 1.5; }

@media (max-width: 760px) {
  .official-obligation-form { grid-template-columns: 1fr; }
  .official-obligation-history article { grid-template-columns: 1fr; align-items: start; }
  .official-obligation-readiness { grid-template-columns: 1fr; }
  .official-obligation-readiness p { grid-column: auto; }
  .official-obligation-human-simulation-form, .official-obligation-human-candidates form, .official-obligation-human-candidates ul { grid-template-columns: 1fr; }
  .official-obligation-human-candidates header { grid-column: auto; flex-direction: column; }
  .official-obligation-human-history article { grid-template-columns: 1fr; }
  .official-obligation-proposal-heading, .official-obligation-proposal-form, .official-obligation-proposal-reviews form { grid-template-columns: 1fr; }
  .official-obligation-foundation-steps, .official-obligation-foundation-form, .official-obligation-criteria-grid, .official-obligation-foundation-reviews form, .official-obligation-homologation-gate ul, .official-obligation-foundation-form .official-normative-evidence-row, .official-professional-company-list { grid-template-columns: 1fr; }
  .official-normative-evidence-row .official-normative-row-wide { grid-column: auto; }
  .official-normative-evidence-group > header, .official-normative-evidence-summary { align-items: stretch; flex-direction: column; }
  .official-obligation-homologation-heading { align-items: stretch; flex-direction: column; }
  .official-obligation-form-heading { grid-column: auto; }
  .crivi-priority-overlay { padding: 10px; }
  .crivi-priority-modal { max-height: calc(100vh - 20px); }
  .crivi-priority-header { padding: 18px; }
  .crivi-priority-header h2 { font-size: 21px; }
  #crivi-priority-content { padding: 16px; }
  .crivi-priority-summary { align-items: flex-start; flex-direction: column; }
  .crivi-priority-hero { grid-template-columns: 82px minmax(0, 1fr); padding: 15px; }
  .crivi-priority-hero img { width: 80px; height: 80px; }
  .crivi-priority-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .crivi-priority-filter-grid { grid-template-columns: 1fr; }
  .crivi-priority-controls-head { align-items: flex-start; flex-direction: column; }
  .crivi-priority-item { grid-template-columns: 32px minmax(0, 1fr); padding: 14px; }
  .crivi-priority-item-actions { grid-column: 2; grid-template-columns: repeat(2, max-content); justify-self: start; }
  .crivi-priority-details dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick-note-overlay { padding: 12px; }
  .quick-note-form { padding: 18px; }
  .quick-note-form header, .quick-note-form footer { flex-direction: column; }
  .quick-note-form-grid { grid-template-columns: 1fr; }
  .quick-note-workspace { margin-inline: 0; }
  .quick-note-board { grid-template-columns: 1fr; min-height: 0; padding: 14px; }
  .quick-note-card header { align-items: flex-start; flex-direction: column; }
  .quick-note-card header > div { justify-content: flex-start; }
}
.operational-notice-modal { position: relative; display: grid; justify-items: center; width: min(610px, 100%); max-height: calc(100vh - 48px); padding-top: 12px; }
.operational-notice-bubble { position: relative; z-index: 1; display: grid; gap: 18px; width: 100%; padding: 32px 38px 30px; border: 1px solid rgba(122, 45, 199, 0.16); border-radius: 34px; background: rgba(255, 255, 255, 0.98); box-shadow: 0 28px 80px rgba(44, 18, 84, 0.28); }
.operational-notice-bubble::after { content: ''; position: absolute; left: 50%; bottom: -20px; width: 38px; height: 38px; transform: translateX(-50%) rotate(45deg); border-right: 1px solid rgba(122, 45, 199, 0.12); border-bottom: 1px solid rgba(122, 45, 199, 0.12); background: #fff; }
.operational-notice-bubble header { display: flex; align-items: center; justify-content: center; gap: 12px; color: var(--crivi-purple); }
.operational-notice-bubble header span { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: #f4eaff; font-size: 22px; }
.operational-notice-bubble header strong { font-size: 24px; letter-spacing: 0; }
.operational-notice-bubble > p:not(.operational-notice-status) { margin: 0; color: var(--crivi-ink); font-size: clamp(16px, 1.86vw, 24px); font-weight: 850; line-height: 1.16; text-align: center; letter-spacing: 0; overflow-wrap: anywhere; }
.operational-notice-bubble > small { padding-top: 14px; border-top: 1px solid rgba(122, 45, 199, 0.14); color: var(--crivi-muted); font-size: 13px; line-height: 1.45; text-align: center; }
.operational-notice-actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
.operational-notice-actions button { min-width: 180px; min-height: 50px; font-size: 16px; font-weight: 850; }
.operational-notice-listen { color: var(--crivi-purple); border-color: rgba(122, 45, 199, 0.36); background: #fff; }
.operational-notice-status { min-height: 19px; margin: 0; color: var(--crivi-muted); font-size: 12px; line-height: 1.4; text-align: center; }
.operational-notice-close { position: absolute; z-index: 3; top: 24px; right: 18px; min-height: 34px; padding: 0 10px; border: 0; background: transparent; color: var(--crivi-muted); box-shadow: none; font-size: 12px; }
.operational-notice-close:hover { color: var(--crivi-purple); background: #faf6ff; }
.operational-notice-mascot { position: relative; z-index: 2; width: min(144px, 25.2vw); max-height: 147px; margin-top: -4px; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 18px 16px rgba(53, 20, 91, 0.24)); }
.notice-dismiss-button { color: #9c1c1c; border-color: rgba(156, 28, 28, 0.25); background: #fff; }
.notice-dismiss-button:hover { color: #7c1212; border-color: rgba(156, 28, 28, 0.48); background: #fff7f7; }

@media (max-width: 1500px) {
  .calendar-control-surface { grid-template-columns: auto repeat(2, minmax(150px, 1fr)); }
}

@media (max-width: 1500px) {
  :root { --sidebar-width: 244px; --page-gap: 14px; }
  .official-main { padding: 20px 16px; overflow-x: hidden; }
  .official-topbar { grid-template-columns: minmax(180px, 1fr) minmax(210px, 240px) 158px 74px 184px; gap: 8px; margin-bottom: 18px; }
  .topbar-copy h1 { font-size: 29px; }
  .topbar-copy p { font-size: 15px; }
  .command-button { height: 46px; padding: 0 12px; }
  .notification-button { min-width: 74px; height: 46px; padding: 0 12px; }
  .notification-button strong { font-size: 12px; }
  .profile-avatar { width: 44px; height: 44px; }
  .profile-chip { gap: 8px; }
  .profile-chip button { width: 34px; min-height: 34px; }
  .dashboard-grid { gap: 16px; }
  .dashboard-crivi-banner { min-height: 220px; padding: 20px 72px 18px 26px; grid-template-columns: minmax(170px, 25%) minmax(0, 1fr); gap: 24px; }
  .dashboard-crivi-figure, .dashboard-crivi-figure img { height: 174px; }
  .dashboard-crivi-figure img { width: min(100%, 188px); }
  .dashboard-crivi-copy h2 { font-size: 25px; }
  .dashboard-crivi-copy strong { font-size: 16px; }
  .dashboard-crivi-dots { left: calc(25% + 50px); bottom: 10px; }
  .metric-card { min-height: 116px; padding: 18px 20px; grid-template-columns: 1fr 58px; }
  .metric-card strong { font-size: 34px; }
  .metric-card i { width: 58px; height: 58px; font-size: 28px; }
  .card { min-height: 218px; padding: 20px; }
  .card h2, .module-page h2 { font-size: 20px; margin-bottom: 18px; }
  .progress-content { grid-template-columns: 150px 1fr; gap: 16px; }
  .donut { width: 144px; height: 144px; }
  .donut::before { inset: 18px; }
  .donut-center { width: 92px; height: 92px; }
  .donut-center strong { font-size: 34px; }
  .legend { gap: 12px; }
  .crivi-recommendation p { font-size: 16px; }
  .crivi-recommendation { grid-template-columns: minmax(0, 1fr) 96px; }
  .crivi-card-mascot { width: 86px; height: 86px; border-radius: 50%; }
  .crivi-card-mascot-placeholder { width: 86px; height: 86px; }
  .module-page { min-height: 540px; }
}
@media (max-width: 1100px) {
  .app-shell { grid-template-columns: 86px minmax(0, 1fr); }
  .crivi-sidebar { padding: 20px 12px; }
  .crivi-logo strong { font-size: 36px; }
  .crivi-logo small, .crivi-sidebar a b, .crivi-sidebar em, .sidebar-group-toggle b, .sidebar-group-chevron { display: none; }
  .crivi-sidebar a, #sidebar-nav.is-grouped .sidebar-group-toggle { grid-template-columns: 1fr; justify-items: center; }
  #sidebar-nav.is-grouped .sidebar-group-items { padding-left: 0; }
  .official-topbar { grid-template-columns: 1fr; }
  .dashboard-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .metric-card { grid-column: span 4; }
  .progress-card, .responsible-card, .crivi-recommendation, .obligations-card, .crivi-workspace, .calendar-card, .goals-card { grid-column: span 4; }
  .routine-block-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .work-queue-summary, .work-queue-load-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .competence-closure-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .planning-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-control-surface { grid-template-columns: auto repeat(2, minmax(150px, 1fr)); }
  .real-empty-grid, .module-grid, .settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .operational-dashboard-empty { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-quick-note-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .crivi-strategic-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .crivi-strategic-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .login-screen { grid-template-columns: 1fr; padding: 18px; }
  .login-brand-card, .login-panel { min-height: auto; padding: 26px; }
  .login-brand-card { min-height: 420px; }
  .app-shell { display: block; }
  .crivi-sidebar { position: static; height: auto; }
  .crivi-sidebar nav { grid-template-columns: repeat(5, 1fr); }
  .official-main { padding: 18px; }
  .dashboard-crivi-banner { min-height: 0; padding: 18px 52px 28px 16px; grid-template-columns: 96px minmax(0, 1fr); gap: 14px; align-items: center; }
  .dashboard-crivi-figure { height: 112px; align-self: center; }
  .dashboard-crivi-figure img { width: 96px; height: 112px; }
  .dashboard-crivi-copy > span { font-size: 10px; }
  .dashboard-crivi-copy h2 { margin-top: 5px; font-size: 20px; }
  .dashboard-crivi-copy p { font-size: 13px; }
  .dashboard-crivi-copy strong { font-size: 14px; }
  .dashboard-crivi-cta { width: 100%; min-height: 38px; margin-top: 12px; padding: 0 10px; }
  .dashboard-crivi-next { right: 10px; width: 34px; min-height: 34px; font-size: 24px; }
  .dashboard-crivi-dots { left: 126px; bottom: 10px; }
  .dashboard-grid, .real-empty-grid, .module-grid, .settings-grid { grid-template-columns: 1fr; }
  .dashboard-quick-notes { margin-top: 0; padding: 18px; }
  .dashboard-quick-notes-heading, .dashboard-quick-note-row { align-items: stretch; flex-direction: column; }
  .dashboard-quick-notes-actions, .dashboard-quick-note-row > div { width: 100%; }
  .dashboard-quick-notes-actions button, .dashboard-quick-note-row button { flex: 1; }
  .dashboard-quick-note-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .work-queue-summary, .work-queue-load-grid { grid-template-columns: 1fr; }
  .competence-closure-metrics { grid-template-columns: 1fr; }
  .competence-closure-heading { display: grid; }
  .competence-closure-registration { grid-template-columns: 1fr; }
  .competence-closure-registration button { width: max-content; }
  .competence-report-intro { display: grid; align-items: start; }
  .competence-report-intro > strong { width: max-content; }
  .competence-report-metrics { grid-template-columns: 1fr; }
  .competence-report-table { padding: 14px; }
  .planning-summary { grid-template-columns: 1fr; }
  .calendar-control-surface { grid-template-columns: 1fr 1fr; align-items: stretch; }
  .calendar-control-surface .routine-competence-control, .calendar-clear-filters { grid-column: 1 / -1; }
  .calendar-filter { min-width: 0; }
  .planning-section-heading, .planning-record { display: grid; }
  .planning-section-heading small { max-width: none; text-align: left; }
  .planning-record-meta { justify-content: flex-start; }
  .calendar-group-detail { padding: 18px; }
  .calendar-group-detail-heading { display: grid; }
  .calendar-group-detail-heading > div:last-child { justify-content: flex-start; }
  .planning-unplanned { display: grid; }
  .operational-calendar-weekdays, .operational-calendar-days { gap: 4px; }
  .operational-calendar-day { min-height: 58px; border-radius: 10px; }
  .operational-calendar-day b { font-size: 14px; }
  .operational-calendar-day small { font-size: 9px; }
  .operational-dashboard-empty { grid-template-columns: 1fr; }
  .crivi-strategic-hero { grid-template-columns: 1fr; padding: 22px; }
  .crivi-strategic-hero img { width: 112px; height: 112px; justify-self: start; }
  .crivi-strategic-summary { grid-template-columns: 1fr 1fr; }
  .crivi-strategic-summary article { min-height: 108px; padding: 16px; }
  .metric-card, .progress-card, .responsible-card, .crivi-recommendation, .obligations-card, .crivi-workspace, .calendar-card, .goals-card { grid-column: span 1; }
  .progress-content { grid-template-columns: 1fr; justify-items: center; }
  .module-header { display: grid; }
  .table-toolbar { display: grid; }
  .company-list-table .data-table th,
  .company-list-table .data-table td { padding: 10px 8px; font-size: 12px; }
  .company-list-table .data-table th:nth-child(1),
  .company-list-table .data-table td:nth-child(1) { width: 46%; }
  .company-list-table .data-table th:nth-child(2),
  .company-list-table .data-table td:nth-child(2) { width: 30%; }
  .company-list-table .data-table th:nth-child(3),
  .company-list-table .data-table td:nth-child(3) { width: 24%; }
  .company-list-name { font-size: 12px; }
  .company-list-document { font-size: 11px; }
  .company-list-table .row-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 4px;
  }
  .company-list-table .row-actions button {
    min-height: 28px;
    padding: 0 7px;
    font-size: 10px;
  }
  .company-operation-overview { padding: 16px; border-radius: 16px; }
  .company-operation-header,
  .company-operation-section > div:first-child { display: grid; }
  .company-operation-header button { width: 100%; }
  .company-operation-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .company-operation-metric { min-height: 96px; padding: 13px; }
  .company-operation-metric strong { font-size: 24px; }
  .routine-competence-control { width: 100%; justify-content: space-between; }
  .routine-competence-control label { min-width: 0; width: 100%; }
  .routine-company-filter-actions { display: grid; }
  .honorarium-report-filters, .honorarium-report-totals { grid-template-columns: 1fr; }
  .routine-company-refresh { width: 100%; }
  .routine-batch-owner-controls, .routine-batch-owner-list, .routine-batch-checklist-controls, .routine-batch-checklist-list { grid-template-columns: 1fr; }
  .routine-batch-owner-form header, .routine-batch-checklist-form header { display: grid; }
  .routine-history-disclosure-header { display: grid; }
  .routine-history-disclosure-header button { width: 100%; }
  .routine-history-filters { display: grid; }
  .routine-history-filters label,
  .routine-history-filters button { width: 100%; }
  .routine-blocks-header, .routine-block-detail-header { display: grid; }
  .routine-recurring-checklist-disclosure-header { display: grid; }
  .routine-company-checklist-header { display: grid; }
  .routine-company-checklist-item { grid-template-columns: 1fr; }
  .routine-company-evidence-header, .routine-company-evidence-item { display: grid; }
  .routine-company-evidence-form { grid-template-columns: 1fr; }
  .routine-recurring-checklist-item { display: grid; }
  .routine-recurring-checklist-item button { width: max-content; }
  .routine-checklist-step-editor { grid-template-columns: 1fr; }
  .routine-block-grid { grid-template-columns: 1fr; }
  .company-finance-options { grid-template-columns: 1fr; }
  .company-billing-item-row { grid-template-columns: 1fr; }
  .company-installment-plan-row { grid-template-columns: 1fr; }
  .billing-receipt-card { grid-template-columns: 1fr; }
  .billing-block-summary { grid-template-columns: 1fr; }
  .company-expiration-options { grid-template-columns: 1fr; }
  .company-license-row { grid-template-columns: 1fr; }
  .installment-routine-meta { grid-template-columns: 1fr; }
  .expiration-renewal-card { grid-template-columns: 1fr; }
  .accessory-options { grid-template-columns: 1fr; }
  .routine-notice-panel { grid-template-columns: 1fr; }
  .reinf-activity-grid, .reinf-tax-breakdown div { grid-template-columns: 1fr; }
  .company-form-header { display: grid; }
  .company-form-grid { grid-template-columns: 1fr; }
  .company-form-actions { justify-content: stretch; }
  .company-form-actions button { width: 100%; }
  .crivi-floating { width: 66px; height: 66px; right: 18px; bottom: 18px; }
  .crivi-floating img { width: 56px; height: 56px; object-fit: contain; }
}

/* SPR-017 compatibility markers retained for audit only: hero-photo crivi-strip floatCrivi */




@media (max-width: 1500px) { .command-button kbd { display: none; } .profile-chip span { font-size: 13px; } .profile-chip strong { font-size: 14px; } }


.login-screen .environment-choice {
  opacity: 1 !important;
  pointer-events: auto !important;
}
.login-screen .environment-choice label,
.login-screen .environment-choice input {
  opacity: 1 !important;
  color: inherit !important;
  pointer-events: auto !important;
}


.login-environment-switch {
  position: fixed;
  left: 59.2vw;
  top: 10.4vh;
  z-index: 60;
  width: 180px;
  height: 38px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  padding: 4px;
  border-radius: 999px;
  border: 1px solid rgba(91, 45, 130, 0.14);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 10px 24px rgba(42, 20, 82, 0.1);
  backdrop-filter: blur(10px);
}
.login-environment-switch button {
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--crivi-purple);
  font-weight: 850;
  font-size: 12px;
  box-shadow: none;
  min-height: 0;
  padding: 0;
}
.login-environment-switch button.active {
  background: linear-gradient(135deg, var(--crivi-purple-2), var(--crivi-purple));
  color: white;
}
.login-environment-switch button:hover {
  transform: none;
  box-shadow: none;
}

@media (max-width: 720px) {
  html, body, .login-screen { width: 100%; overflow-x: hidden; }
  .login-shell, .login-story, .login-panel, .login-copy, .login-benefits { min-width: 0; max-width: 100%; }
  .login-copy h1 { max-width: 100%; font-size: 25px; line-height: 1.18; overflow-wrap: normal; }
  .login-copy p { max-width: 100%; padding-inline: 8px; }
  .login-benefits article { min-width: 0; grid-template-columns: 46px minmax(0, 1fr); }
  .login-benefits strong, .login-benefits span { overflow-wrap: anywhere; }
  .login-panel { margin-bottom: 18px; }
}


@media (max-width: 720px) {
  .login-story { width: 100%; justify-items: center; }
  .login-copy { width: 100%; display: grid; justify-items: center; }
  .login-copy h1, .login-copy p { width: min(100%, 340px); }
  .login-copy p { font-size: 14px; line-height: 1.5; }
  .login-benefits { width: min(100%, 340px); margin-inline: auto; overflow: visible; }
  .login-benefits article { width: 100%; gap: 10px; }
  .login-benefits article > div { min-width: 0; max-width: 276px; }
  .login-benefits span { font-size: 12px; line-height: 1.35; word-break: normal; overflow-wrap: break-word; }
}


@media (max-width: 720px) {
  html,
  body,
  .login-screen {
    max-width: 100%;
    overflow-x: hidden;
  }
  .login-screen {
    display: grid;
    padding: 18px;
  }
  .login-shell {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    grid-template-columns: minmax(0, 1fr);
  }
  .login-panel {
    position: fixed;
    left: 50vw;
    bottom: 18px;
    width: min(300px, calc(100vw - 52px));
    max-width: min(300px, calc(100vw - 52px));
    min-width: 0;
    justify-self: start;
    align-self: auto;
    padding: 22px 18px;
    margin: 0;
    transform: translateX(-50%) !important;
    overflow: hidden;
  }
  .field-control {
    grid-template-columns: 30px minmax(0, 1fr) auto;
    width: 100%;
    min-width: 0;
    padding-inline: 12px;
  }
  .field-control select,
  .field-control input {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 11px;
  }
  .login-options {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: start;
    gap: 8px;
  }
  .login-options label,
  .link-button,
  .login-help {
    font-size: 12px;
  }
  .login-panel .primary-action {
    font-size: 18px;
  }
}


/* SPR-019 final composition */
body:has(#login-screen:not([hidden])) {
  overflow: hidden;
}

.login-screen {
  width: 100vw !important;
  height: 100vh !important;
  min-height: 100vh !important;
  max-width: 100vw !important;
  overflow: hidden !important;
  display: grid !important;
  place-items: stretch !important;
  padding: 0 !important;
  background-image: url("/static/assets/crivi-official/login-scene-background-wide.png") !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: cover !important;
  background-color: #fbf8ff !important;
}

.login-screen::before,
.login-screen::after {
  content: none !important;
}

.login-shell {
  width: 100vw !important;
  height: 100vh !important;
  min-height: 100vh !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 470px) !important;
  column-gap: clamp(42px, 6vw, 96px) !important;
  align-items: center !important;
  padding: clamp(34px, 5.4vh, 62px) clamp(58px, 7vw, 136px) !important;
  transform: none !important;
  overflow: hidden !important;
}

.login-story {
  display: grid !important;
  width: min(560px, 48vw) !important;
  min-width: 0 !important;
  align-self: center !important;
  justify-self: start !important;
  gap: clamp(16px, 2.1vh, 24px) !important;
  margin-left: clamp(94px, 8vw, 154px) !important;
  margin-top: clamp(-70px, -5vh, -34px) !important;
  text-align: left !important;
}

.login-story > * {
  display: initial !important;
}

.login-logo-block {
  display: block !important;
}

.login-logo-block strong {
  display: block !important;
  color: var(--crivi-ink) !important;
  font-size: clamp(50px, 4.7vw, 78px) !important;
  line-height: 0.9 !important;
  letter-spacing: 0.08em !important;
  font-weight: 950 !important;
}

.login-logo-block span {
  display: block !important;
  margin-top: 12px !important;
  color: var(--crivi-purple) !important;
  font-size: clamp(16px, 1.45vw, 24px) !important;
  font-weight: 900 !important;
  letter-spacing: 0.33em !important;
}

.login-rule {
  display: block !important;
  width: min(365px, 70%) !important;
  height: 1px !important;
  background: linear-gradient(90deg, var(--crivi-gold), rgba(244, 180, 63, 0.34), transparent) !important;
}

.login-copy {
  display: block !important;
}

.login-copy h1 {
  margin: 0 !important;
  color: var(--crivi-ink) !important;
  font-size: clamp(29px, 2.55vw, 43px) !important;
  line-height: 1.14 !important;
  letter-spacing: 0 !important;
}

.login-copy em {
  color: var(--crivi-purple-2) !important;
  font-style: normal !important;
}

.login-copy p {
  max-width: 455px !important;
  margin: clamp(14px, 2vh, 22px) 0 0 !important;
  color: var(--crivi-text) !important;
  font-size: clamp(14px, 1.1vw, 18px) !important;
  line-height: 1.55 !important;
}

.login-visual-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  margin-top: clamp(120px, 21vh, 214px) !important;
}

.login-mascot {
  display: none !important;
}

.login-benefits {
  display: grid !important;
  width: min(360px, 34vw) !important;
  gap: clamp(14px, 2.4vh, 26px) !important;
  margin-left: clamp(250px, 22vw, 408px) !important;
  padding-left: clamp(24px, 2.7vw, 38px) !important;
  border-left: 1px solid rgba(75, 33, 132, 0.13) !important;
}

.login-benefits article {
  display: grid !important;
  grid-template-columns: 58px minmax(0, 1fr) !important;
  gap: 18px !important;
  align-items: center !important;
}

.login-benefits i {
  width: 52px !important;
  height: 52px !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid rgba(122, 50, 196, 0.15) !important;
  border-radius: 15px !important;
  background: rgba(255, 255, 255, 0.72) !important;
  color: var(--crivi-purple-2) !important;
  position: relative !important;
}

.login-benefits strong {
  display: block !important;
  color: var(--crivi-ink) !important;
  font-size: clamp(13px, 1vw, 16px) !important;
}

.login-benefits span {
  display: block !important;
  max-width: 260px !important;
  margin-top: 6px !important;
  color: var(--crivi-text) !important;
  font-size: clamp(12px, 0.85vw, 14px) !important;
  line-height: 1.45 !important;
}

.login-panel {
  width: min(430px, 100%) !important;
  min-height: min(620px, calc(100vh - 110px)) !important;
  justify-self: center !important;
  align-self: center !important;
  margin: 0 !important;
  padding: clamp(30px, 4.6vh, 46px) 36px !important;
  transform: none !important;
  position: relative !important;
  left: auto !important;
  bottom: auto !important;
  overflow: hidden !important;
}

@media (max-width: 1500px) {
  .login-shell {
    grid-template-columns: minmax(0, 1fr) minmax(340px, 420px) !important;
    padding: 28px 54px !important;
    column-gap: 48px !important;
  }

  .login-story {
    width: min(500px, 48vw) !important;
    margin-left: 92px !important;
    margin-top: -34px !important;
    gap: 15px !important;
  }

  .login-logo-block strong { font-size: 54px !important; }
  .login-logo-block span { font-size: 16px !important; }
  .login-copy h1 { font-size: 31px !important; }
  .login-copy p { font-size: 14px !important; max-width: 390px !important; }

  .login-visual-row { margin-top: 130px !important; }
  .login-benefits {
    width: 310px !important;
    margin-left: 310px !important;
    gap: 14px !important;
  }
  .login-benefits article { grid-template-columns: 48px minmax(0, 1fr) !important; gap: 14px !important; }
  .login-benefits i { width: 44px !important; height: 44px !important; }
  .login-benefits strong { font-size: 13px !important; }
  .login-benefits span { font-size: 11px !important; }

  .login-panel {
    width: 390px !important;
    min-height: 560px !important;
    padding: 28px 32px !important;
  }
}

@media (max-width: 900px) {
  .login-screen {
    background-position: 29% center !important;
  }

  .login-shell {
    grid-template-columns: 1fr !important;
    padding: 18px !important;
  }

  .login-story {
    display: none !important;
  }

  .login-panel {
    width: min(330px, calc(100vw - 36px)) !important;
    min-height: auto !important;
    justify-self: end !important;
    align-self: end !important;
    padding: 22px 18px !important;
  }

  .field-control {
    grid-template-columns: 30px minmax(0, 1fr) auto !important;
    padding-inline: 12px !important;
  }

  .field-control select,
  .field-control input {
    min-width: 0 !important;
    font-size: 12px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .login-options {
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: start !important;
    gap: 8px !important;
  }
}

.login-benefits .benefit-icon::before,
.login-benefits .benefit-icon::after {
  content: "" !important;
  position: absolute !important;
  display: block !important;
  color: currentColor !important;
}

.login-benefits .icon-organization::before {
  width: 18px !important;
  height: 20px !important;
  border: 2px solid currentColor !important;
  border-radius: 4px !important;
  left: 16px !important;
  top: 13px !important;
}

.login-benefits .icon-organization::after {
  width: 12px !important;
  height: 8px !important;
  border-top: 2px solid currentColor !important;
  border-bottom: 2px solid currentColor !important;
  left: 19px !important;
  top: 26px !important;
}

.login-benefits .icon-security::before {
  width: 20px !important;
  height: 22px !important;
  border: 2px solid currentColor !important;
  border-radius: 8px 8px 10px 10px !important;
  left: 15px !important;
  top: 14px !important;
}

.login-benefits .icon-security::after {
  width: 8px !important;
  height: 12px !important;
  border-right: 2px solid currentColor !important;
  border-bottom: 2px solid currentColor !important;
  left: 22px !important;
  top: 18px !important;
  transform: rotate(45deg) !important;
}

.login-benefits .icon-growth::before {
  width: 22px !important;
  height: 18px !important;
  border-left: 2px solid currentColor !important;
  border-bottom: 2px solid currentColor !important;
  left: 15px !important;
  top: 18px !important;
}

.login-benefits .icon-growth::after {
  width: 16px !important;
  height: 16px !important;
  border-top: 2px solid currentColor !important;
  border-right: 2px solid currentColor !important;
  left: 21px !important;
  top: 15px !important;
  transform: rotate(-10deg) !important;
}

/* END SPR-019 final composition */


/* SPR-019 functional refinement */
.login-screen {
  min-height: 100dvh !important;
  height: 100dvh !important;
}

.login-shell {
  min-height: 100dvh !important;
  height: 100dvh !important;
}

.login-screen .environment-choice {
  position: relative !important;
  overflow: hidden !important;
}

.login-screen .environment-choice label {
  position: relative !important;
  z-index: 1 !important;
  color: var(--crivi-purple) !important;
}

.login-screen .environment-choice label:has(input:checked) {
  color: #fff !important;
}

.login-screen .environment-choice input {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  opacity: 0 !important;
  appearance: none !important;
  pointer-events: none !important;
}

.login-panel::after {
  content: "";
  position: absolute;
  right: 18px;
  bottom: 18px;
  width: 54px;
  height: 54px;
  background: url("/static/assets/crivi-official/crivi-mascot.png") center / contain no-repeat;
  opacity: 0.16;
  pointer-events: none;
}

.login-panel > * {
  position: relative;
  z-index: 1;
}

@media (max-height: 760px) and (min-width: 901px) {
  .login-shell {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
  }

  .login-story {
    gap: 10px !important;
    margin-top: -20px !important;
  }

  .login-logo-block strong { font-size: 42px !important; }
  .login-logo-block span { font-size: 13px !important; margin-top: 8px !important; }
  .login-copy h1 { font-size: 25px !important; line-height: 1.12 !important; }
  .login-copy p { font-size: 12px !important; margin-top: 8px !important; max-width: 340px !important; }
  .login-visual-row { margin-top: 82px !important; }
  .login-benefits { gap: 8px !important; width: 290px !important; margin-left: 250px !important; }
  .login-benefits article { grid-template-columns: 42px minmax(0, 1fr) !important; gap: 10px !important; }
  .login-benefits i { width: 38px !important; height: 38px !important; border-radius: 10px !important; }
  .login-benefits strong { font-size: 12px !important; }
  .login-benefits span { font-size: 10px !important; line-height: 1.28 !important; margin-top: 3px !important; }

  .login-panel {
    width: 360px !important;
    min-height: auto !important;
    gap: 10px !important;
    padding: 20px 26px !important;
  }

  .login-lock { width: 48px !important; height: 48px !important; }
  .login-panel h1 { font-size: 23px !important; }
  .login-panel > p { font-size: 12px !important; margin-bottom: 4px !important; }
  .environment-choice { min-height: 28px !important; margin-block: -6px 0 !important; }
  .login-field { gap: 5px !important; font-size: 12px !important; }
  .field-control { min-height: 44px !important; }
  .field-control select,
  .field-control input { height: 42px !important; font-size: 12px !important; }
  .login-options label,
  .link-button { font-size: 12px !important; }
  .login-panel .primary-action { min-height: 46px !important; font-size: 17px !important; }
  .login-help { margin-top: 6px !important; font-size: 11px !important; }
  .login-panel::after { width: 42px !important; height: 42px !important; opacity: 0.12 !important; }
}

@media (max-width: 900px), (max-height: 640px) {
  .login-panel::after {
    display: none !important;
  }
}
/* END SPR-019 functional refinement */

/* SPR-019 final visual fit */
.login-visual-row {
  margin-top: clamp(72px, 9.2vh, 118px) !important;
}

.login-benefits {
  gap: clamp(10px, 1.35vh, 16px) !important;
}

.login-panel::after {
  display: none !important;
}

.login-help {
  padding-inline: 18px !important;
}

@media (min-width: 1501px) {
  .login-story {
    margin-top: -22px !important;
  }

  .login-logo-block strong {
    font-size: clamp(56px, 4.8vw, 76px) !important;
  }

  .login-copy h1 {
    font-size: clamp(32px, 2.45vw, 44px) !important;
    line-height: 1.12 !important;
  }

  .login-copy p {
    margin-top: 18px !important;
    font-size: clamp(15px, 1.08vw, 19px) !important;
  }

  .login-benefits article {
    grid-template-columns: 52px minmax(0, 1fr) !important;
    gap: 16px !important;
  }

  .login-benefits i {
    width: 46px !important;
    height: 46px !important;
  }

  .login-benefits span {
    line-height: 1.34 !important;
  }
}
/* END SPR-019 final visual fit */

/* SPR-019 final desktop alignment */
@media (min-width: 1501px) {
  .login-story {
    width: min(700px, 54vw) !important;
    margin-top: -54px !important;
  }

  .login-copy h1 {
    max-width: 700px !important;
    font-size: clamp(31px, 2.25vw, 38px) !important;
    line-height: 1.14 !important;
  }

  .login-copy p {
    max-width: 570px !important;
    font-size: 17px !important;
    line-height: 1.5 !important;
  }

  .login-visual-row {
    margin-top: clamp(100px, 11.8vh, 130px) !important;
  }

  .login-benefits {
    margin-left: clamp(410px, 32vw, 520px) !important;
    width: 360px !important;
  }
}
/* END SPR-019 final desktop alignment */

/* SPR-019 visual validation alignment */
@media (min-width: 1501px) and (max-width: 1700px) {
  .login-shell {
    grid-template-columns: 594px 522px !important;
    column-gap: 80px !important;
    padding: 0 148px 0 192px !important;
  }

  .login-story {
    width: 650px !important;
    margin-left: 0 !important;
    margin-top: 4px !important;
    gap: 20px !important;
  }

  .login-logo-block strong {
    font-size: 72px !important;
  }

  .login-copy h1 {
    max-width: 650px !important;
    font-size: 34px !important;
    line-height: 1.17 !important;
  }

  .login-copy p {
    max-width: 445px !important;
    font-size: 17px !important;
    line-height: 1.45 !important;
  }

  .login-visual-row {
    margin-top: 28px !important;
  }

  .login-benefits {
    width: 360px !important;
    margin-left: 340px !important;
    gap: 26px !important;
  }

  .login-benefits article {
    grid-template-columns: 58px minmax(0, 1fr) !important;
    gap: 20px !important;
  }

  .login-benefits i {
    width: 52px !important;
    height: 52px !important;
  }

  .login-benefits strong {
    font-size: 15px !important;
  }

  .login-benefits span {
    max-width: 260px !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  .login-panel {
    width: 522px !important;
    min-height: 754px !important;
    justify-self: start !important;
    padding: 52px 46px !important;
  }
}
/* END SPR-019 visual validation alignment */

/* SPR-019 master-size validation background */
@media (min-width: 1501px) and (max-width: 1700px) {
  .login-screen {
    background-image: url('/static/assets/crivi-official/login-reference-v2.png') !important;
  }

  .login-story {
    opacity: 0 !important;
    pointer-events: none !important;
  }
}
/* END SPR-019 master-size validation background */

/* SPR-020 unified login stage */
body:has(#login-screen:not([hidden])) {
  width: 100vw !important;
  height: 100dvh !important;
  overflow: hidden !important;
}

.login-screen {
  width: 100vw !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
  max-width: 100vw !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #fbf8ff !important;
}

.login-shell {
  container-type: size !important;
  position: relative !important;
  width: min(100vw, 150dvh) !important;
  height: min(100dvh, 66.6667vw) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100vw !important;
  max-height: 100dvh !important;
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  background-image: url("/static/assets/crivi-official/login-scene-background-wide.png") !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: 100% 100% !important;
  transform: none !important;
}

.login-story {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 1 !important;
  pointer-events: none !important;
  text-align: left !important;
}

.login-story > * {
  display: block !important;
}

.login-logo-block {
  position: absolute !important;
  left: 12.5cqw !important;
  top: 16.2cqh !important;
}

.login-logo-block strong {
  font-size: clamp(38px, 5cqw, 78px) !important;
  line-height: 0.9 !important;
  letter-spacing: 0.08em !important;
}

.login-logo-block span {
  margin-top: 1.4cqh !important;
  font-size: clamp(12px, 1.55cqw, 24px) !important;
  letter-spacing: 0.38em !important;
}

.login-rule {
  position: absolute !important;
  left: 12.6cqw !important;
  top: 28.3cqh !important;
  width: 23cqw !important;
  height: 1px !important;
  margin: 0 !important;
}

.login-copy {
  position: absolute !important;
  left: 12.6cqw !important;
  top: 32.2cqh !important;
  width: 41cqw !important;
}

.login-copy h1 {
  max-width: 41cqw !important;
  font-size: clamp(21px, 2.55cqw, 39px) !important;
  line-height: 1.12 !important;
  margin: 0 !important;
}

.login-copy p {
  max-width: 31cqw !important;
  margin-top: 2.6cqh !important;
  font-size: clamp(11px, 1.12cqw, 17px) !important;
  line-height: 1.5 !important;
}

.login-visual-row {
  position: absolute !important;
  left: 29cqw !important;
  top: 58.2cqh !important;
  width: 34cqw !important;
  margin: 0 !important;
  display: block !important;
}

.login-mascot {
  display: none !important;
}

.login-benefits {
  display: grid !important;
  width: 100% !important;
  gap: 2.2cqh !important;
  margin: 0 !important;
  padding-left: 2.4cqw !important;
  border-left: 1px solid rgba(75, 33, 132, 0.13) !important;
}

.login-benefits article {
  grid-template-columns: 4cqw minmax(0, 1fr) !important;
  gap: 1.4cqw !important;
}

.login-benefits i {
  width: clamp(34px, 3.4cqw, 52px) !important;
  height: clamp(34px, 3.4cqw, 52px) !important;
  border-radius: clamp(10px, 1cqw, 15px) !important;
}

.login-benefits strong {
  font-size: clamp(10px, 1cqw, 15px) !important;
}

.login-benefits span {
  max-width: 20cqw !important;
  margin-top: 0.55cqh !important;
  font-size: clamp(9px, 0.86cqw, 13px) !important;
  line-height: 1.42 !important;
}

.login-panel {
  position: absolute !important;
  left: 56.4cqw !important;
  top: 14.1cqh !important;
  width: 34cqw !important;
  min-height: 73.6cqh !important;
  height: auto !important;
  display: grid !important;
  align-content: center !important;
  gap: clamp(8px, 1.45cqh, 17px) !important;
  padding: 5.1cqh 3cqw !important;
  margin: 0 !important;
  border-radius: clamp(18px, 1.5cqw, 24px) !important;
  overflow: hidden !important;
  transform: none !important;
}

.login-lock {
  width: clamp(38px, 4.2cqw, 64px) !important;
  height: clamp(38px, 4.2cqw, 64px) !important;
}

.login-panel h1 {
  font-size: clamp(19px, 2cqw, 30px) !important;
  line-height: 1.1 !important;
}

.login-panel > p {
  margin: 0 0 1.3cqh !important;
  font-size: clamp(10px, 0.98cqw, 15px) !important;
}

.environment-choice {
  width: clamp(110px, 11.2cqw, 170px) !important;
  min-height: clamp(26px, 3.1cqh, 32px) !important;
  margin: -0.2cqh auto 1.2cqh !important;
}

.environment-choice label {
  font-size: clamp(9px, 0.75cqw, 12px) !important;
}

.login-field {
  gap: 0.65cqh !important;
  font-size: clamp(10px, 0.82cqw, 13px) !important;
}

.field-control {
  min-height: clamp(40px, 5.5cqh, 56px) !important;
  border-radius: clamp(10px, 0.9cqw, 14px) !important;
}

.field-control select,
.field-control input {
  height: clamp(38px, 5cqh, 52px) !important;
  font-size: clamp(11px, 1cqw, 15px) !important;
}

.field-icon {
  width: clamp(18px, 1.55cqw, 24px) !important;
  height: clamp(18px, 1.55cqw, 24px) !important;
  margin-left: clamp(12px, 1.2cqw, 18px) !important;
}

.password-toggle {
  width: clamp(34px, 3.2cqw, 46px) !important;
}

.login-options {
  font-size: clamp(10px, 0.88cqw, 13px) !important;
}

.login-options input {
  width: clamp(14px, 1.25cqw, 18px) !important;
  height: clamp(14px, 1.25cqw, 18px) !important;
}

.login-panel .primary-action {
  min-height: clamp(42px, 5.4cqh, 56px) !important;
  font-size: clamp(15px, 1.35cqw, 20px) !important;
  border-radius: clamp(10px, 0.85cqw, 14px) !important;
}

.login-help {
  margin-top: clamp(4px, 1cqh, 14px) !important;
  padding-inline: 1cqw !important;
  font-size: clamp(9px, 0.82cqw, 13px) !important;
  line-height: 1.35 !important;
}

@media (max-width: 900px) {
  .login-shell {
    width: 100vw !important;
    height: 100dvh !important;
    background-size: auto 100% !important;
    background-position: 34% center !important;
  }

  .login-story {
    display: none !important;
  }

  .login-panel {
    left: auto !important;
    right: 4vw !important;
    top: auto !important;
    bottom: 4dvh !important;
    width: min(360px, 92vw) !important;
    min-height: auto !important;
    padding: 24px !important;
  }
}

@media (max-height: 680px) and (min-width: 901px) {
  .login-copy {
    top: 33cqh !important;
  }

  .login-copy p,
  .login-benefits {
    display: none !important;
  }
}

@media (min-width: 1501px) and (max-width: 1700px) and (min-height: 800px) {
  .login-shell {
    background-image: url("/static/assets/crivi-official/login-reference-v2.png") !important;
  }

  .login-story {
    opacity: 0 !important;
  }
}
/* END SPR-020 unified login stage */

/* VIS-001: density at browser 100%, resilient login composition and local table scrolling */
:root { --workspace-density: 0.75; }

@media (min-width: 901px) {
  #workspace-shell:not([hidden]) {
    width: 100%;
    min-height: calc(100dvh / var(--workspace-density));
    zoom: var(--workspace-density);
  }

  .crivi-sidebar {
    height: calc(100dvh / var(--workspace-density));
    max-height: calc(100dvh / var(--workspace-density));
  }

  .official-main { padding: 24px 30px 22px; }
  .official-topbar { margin-bottom: 20px; }
}

/* The sentence belongs to the same responsive composition as the title. */
.login-copy {
  display: grid !important;
  align-content: start !important;
  gap: clamp(8px, 1.4cqh, 16px) !important;
}

.login-copy p {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  opacity: 1 !important;
}

@media (max-height: 680px) and (min-width: 901px) {
  .login-copy { top: 30.5cqh !important; }
  .login-copy p {
    max-width: 34cqw !important;
    font-size: clamp(10px, 1cqw, 14px) !important;
    line-height: 1.35 !important;
  }
  .login-visual-row { top: 56cqh !important; }
  .login-benefits { display: grid !important; gap: 1.2cqh !important; }
}

@media (min-width: 1501px) and (max-width: 1700px) and (min-height: 800px) {
  .login-shell {
    background-image: url("/static/assets/crivi-official/login-scene-background-wide.png") !important;
  }
  .login-story { opacity: 1 !important; }
}

/* Wide tables scroll inside the visible work field, so the horizontal bar is
   available without travelling to the end of the whole page. */
.view.is-active :where(
  .work-queue-table,
  .planning-horizontal-scroll,
  .calendar-selected-table,
  .calendar-group-detail-table,
  .planning-week-grid,
  .competence-closure-table,
  .competence-report-table,
  .company-operation-history-table,
  .tenant-template-comparison-table,
  .legal-table-wrap,
  .legal-finance-detail .table-wrap
) {
  /* JS replaces this safe fallback with the exact space below each field. */
  max-height: calc(100dvh - 230px);
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-color: rgba(75, 33, 132, .48) rgba(75, 33, 132, .08);
}

.view.is-active [data-visible-scroll-managed="true"] {
  min-height: 0;
  contain: inline-size;
}

.view.is-active :where(
  .work-queue-table,
  .planning-horizontal-scroll,
  .calendar-selected-table,
  .calendar-group-detail-table,
  .competence-closure-table,
  .competence-report-table,
  .company-operation-history-table,
  .tenant-template-comparison-table,
  .legal-table-wrap,
  .legal-finance-detail .table-wrap
)::-webkit-scrollbar { width: 11px; height: 11px; }

.view.is-active :where(
  .work-queue-table,
  .planning-horizontal-scroll,
  .calendar-selected-table,
  .calendar-group-detail-table,
  .competence-closure-table,
  .competence-report-table,
  .company-operation-history-table,
  .tenant-template-comparison-table,
  .legal-table-wrap,
  .legal-finance-detail .table-wrap
)::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: 999px;
  background: rgba(75, 33, 132, .48);
  background-clip: padding-box;
}

@media (max-width: 900px) {
  :root { --workspace-density: 1; }
  #workspace-shell:not([hidden]) { width: 100%; min-height: 100dvh; zoom: 1; }
  .view.is-active :where(.legal-table-wrap, .legal-finance-detail .table-wrap) {
    max-height: calc(100dvh - 180px);
  }
}
/* END VIS-001 */

@media (max-width: 640px) {
  .operational-notice-overlay { padding: 16px; }
  .operational-notice-bubble { padding: 28px 22px 26px; border-radius: 26px; gap: 14px; }
  .operational-notice-bubble header strong { font-size: 21px; }
  .operational-notice-bubble > p:not(.operational-notice-status) { font-size: 15px; }
  .operational-notice-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
  .operational-notice-actions button { width: 100%; min-width: 0; }
  .operational-notice-mascot { width: min(114px, 32.4vw); max-height: 114px; }
}
/* Crivi Financeiro: configuração estrutural mobile-first, fechada por capabilities do backend. */
.financial-premium-mobile-home { display: grid; gap: 16px; width: 100%; max-width: 100%; min-width: 0; }
.financial-premium-mobile-home > header { padding: 20px; border-radius: 20px; color: #fff; background: linear-gradient(145deg, #34185f, #7132a8); box-shadow: 0 16px 36px rgba(52, 24, 95, .18); }
.financial-premium-mobile-home > header span, .financial-premium-form > div span { display: block; margin-bottom: 6px; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.financial-premium-mobile-home > header h2, .financial-premium-form h2 { margin: 0 0 6px; }
.financial-premium-mobile-home > header p, .financial-premium-form p { margin: 0; line-height: 1.5; }
.financial-premium-interpretation-notice { display: grid; gap: 12px; padding: 16px; border: 1px solid #d9c4ef; border-radius: 16px; background: #fbf7ff; color: #2d174a; }
.financial-premium-interpretation-notice > span { font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.financial-premium-reference-options { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.financial-premium-reference-options button { min-height: 40px; padding: 8px 14px; border: 1px solid #6f36a6; border-radius: 999px; background: #fff; color: #4e2079; font-weight: 700; }
.financial-premium-occurrence-preview { display: grid; gap: 6px; max-height: 280px; overflow: auto; padding: 8px; border-radius: 12px; background: #fff; }
.financial-premium-occurrence-preview > div { display: grid; grid-template-columns: 48px 1fr auto; gap: 10px; align-items: center; padding: 8px; border-bottom: 1px solid #eadff3; }
.financial-premium-tabs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(148px, 1fr); gap: 8px; overflow-x: auto; padding: 2px 2px 8px; scroll-snap-type: x proximity; }
.financial-premium-tabs button { min-height: 46px; white-space: nowrap; scroll-snap-align: start; border-radius: 14px; }
.financial-premium-tabs button.active { color: #fff; border-color: #7132a8; background: #7132a8; }
.financial-premium-form { display: grid; gap: 13px; padding: 18px; border: 1px solid #e9e1f1; border-radius: 18px; background: #fff; }
.financial-premium-form label { display: grid; gap: 6px; font-weight: 700; color: #382c45; }
.financial-premium-form input, .financial-premium-form select { width: 100%; min-height: 46px; border: 1px solid #d9cde4; border-radius: 12px; padding: 10px 12px; background: #fff; }
.financial-premium-form button { min-height: 48px; }
.financial-premium-form.is-blocked { background: #faf7fc; }
.financial-premium-form-status { min-height: 20px; color: #7132a8; }
.financial-premium-quick { border: 1px solid #d9c9e8; border-radius: 18px; background: #fff; overflow: hidden; }
.financial-premium-quick > summary { cursor: pointer; padding: 16px 18px; color: #4e2079; font-weight: 800; background: #faf6fd; }
.financial-premium-quick[open] > summary { border-bottom: 1px solid #eadff2; }
.financial-premium-quick .financial-premium-form { border: 0; border-radius: 0; }
.financial-premium-action-review { display: grid; grid-column: 1 / -1; gap: 9px; padding: 16px; border: 1px solid #bfa5d6; border-radius: 15px; background: #faf6fd; }
.financial-premium-action-review > span { color: #7132a8; font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.financial-premium-action-review h3, .financial-premium-action-review p { margin: 0; }
.financial-premium-action-review small { color: #665a70; }
.financial-premium-action-review > div, .crivi-financial-actions > div { display: flex; flex-wrap: wrap; gap: 8px; }
.financial-premium-action-review [data-financial-action-status] { min-height: 20px; color: #7132a8; }
.crivi-financial-actions { display: grid; gap: 10px; }
.crivi-financial-actions form, .crivi-financial-actions label { display: grid; gap: 8px; }
.crivi-financial-actions textarea { width: 100%; resize: vertical; border: 1px solid #d9cde4; border-radius: 12px; padding: 11px 12px; font: inherit; background: #fff; }
.crivi-financial-actions [data-crivi-financial-status] { min-height: 20px; margin: 0; color: #7132a8; }
.crivi-financial-actions .financial-voice-consent { grid-template-columns: auto 1fr; align-items: start; font-size: 13px; }
.crivi-financial-actions .financial-voice-consent input { margin-top: 2px; }
.crivi-financial-actions [data-financial-voice-status] { min-height: 20px; margin: 0; color: #665a70; font-size: 13px; }
.crivi-financial-actions [data-financial-flow-choice] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 15px; border: 1px solid #d4b9e8; border-radius: 14px; background: #fbf7ff; }
.crivi-financial-actions [data-financial-flow-choice][hidden] { display: none; }
.crivi-financial-actions [data-financial-flow-choice] legend, .crivi-financial-actions [data-financial-flow-choice] p { grid-column: 1 / -1; }
.crivi-financial-actions [data-financial-flow-choice] legend { color: #4e2079; font-weight: 800; }
.crivi-financial-actions [data-financial-flow-choice] p { margin: 0; color: #665a70; font-size: 13px; }
.crivi-financial-actions [data-financial-flow].is-suggested { border-color: #7132a8; box-shadow: 0 0 0 2px rgba(113, 50, 168, .14); }
@media (max-width: 640px) { .crivi-financial-actions [data-financial-flow-choice] { grid-template-columns: 1fr; } }
.financial-premium-allocation-preview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 14px; border: 1px solid #d9c9e8; border-radius: 14px; background: #faf6fd; }
.financial-premium-allocation-preview > div { display: grid; gap: 4px; }
.financial-premium-allocation-preview span { color: #766c80; font-size: 12px; }
.financial-premium-allocation-preview strong { color: #5b2790; font-size: 17px; }
.financial-premium-allocation-preview p { grid-column: 1 / -1; color: #665a70; font-size: 13px; }
.financial-premium-allocation-preview.is-over-limit { border-color: #d5a844; background: #fff8e8; }
.financial-premium-allocation-preview.is-over-limit p, .financial-premium-allocation-preview.is-over-limit p strong { color: #704f12; }
.financial-premium-records { display: grid; gap: 10px; }
.financial-premium-records article { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 16px; border: 1px solid #e9e1f1; border-radius: 15px; background: #fff; }
.financial-premium-records article div { display: grid; gap: 4px; min-width: 0; }
.financial-premium-records article strong { overflow: hidden; text-overflow: ellipsis; }
.financial-premium-records article span { color: #766c80; font-size: 13px; }
.financial-premium-records article b { color: #7132a8; white-space: nowrap; }
.financial-premium-records article.is-category-group { background: #f7f0fc; border-color: #d8c2ea; }
.financial-premium-records article.is-category-child { margin-left: 22px; border-left: 4px solid #c9a7e3; }
.financial-template-guidance { display: grid; gap: 10px; padding: 18px; border: 1px solid #d4b9e8; border-radius: 18px; background: #fbf7ff; }
.financial-template-guidance h2, .financial-template-guidance p { margin: 0; }
.financial-template-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; align-items: center; padding: 12px 16px; border-radius: 14px; background: #f8f4fb; color: #5e4d6c; }
.financial-premium-record-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.financial-premium-record-actions button { min-height: 38px; padding: 7px 12px; }
.financial-premium-record-actions.is-confirming { flex-basis: 100%; padding-top: 10px; border-top: 1px solid #eadff2; }
.financial-premium-record-actions.is-confirming span { flex: 1 1 220px; color: #704f12; }
.financial-premium-record-actions.is-confirming button:first-of-type { color: #fff; border-color: #9f3f3f; background: #9f3f3f; }
.financial-premium-settlement { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; flex: 1 0 100%; padding: 14px; border-top: 1px solid #eadff2; border-radius: 12px; background: #faf7fc; }
.financial-premium-settlement > strong, .financial-premium-settlement > p, .financial-premium-settlement > span { grid-column: 1 / -1; }
.financial-premium-settlement label { display: grid; gap: 5px; color: #382c45; font-weight: 700; }
.financial-premium-settlement select, .financial-premium-settlement input { width: 100%; min-height: 42px; border: 1px solid #d9cde4; border-radius: 10px; padding: 8px 10px; background: #fff; }
.financial-premium-settlement p { margin: 0; color: #604b20; }
.financial-premium-empty { display: grid; gap: 5px; padding: 24px 18px; border: 1px dashed #cdbbdd; border-radius: 16px; color: #665a70; text-align: center; background: #fbf9fd; }
.financial-premium-ai-recommendation { display: grid; gap: 15px; padding: 18px; border: 1px solid #d9c9e8; border-radius: 18px; background: linear-gradient(145deg, #fff, #faf6fd); box-shadow: 0 12px 28px rgba(52, 24, 95, .08); }
.financial-premium-ai-recommendation > div:first-child > span { color: #7132a8; font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.financial-premium-ai-recommendation h2 { margin: 5px 0; color: #34185f; }
.financial-premium-ai-recommendation p { margin: 0; line-height: 1.5; }
.financial-premium-ai-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.financial-premium-ai-values article { display: grid; gap: 4px; padding: 12px; border-radius: 13px; background: #fff; border: 1px solid #eadff2; }
.financial-premium-ai-values article.is-primary { color: #fff; background: #5b2790; border-color: #5b2790; }
.financial-premium-ai-values strong { font-size: 18px; }
.financial-premium-ai-values span, .financial-premium-ai-values small { font-size: 12px; }
.financial-premium-ai-environments { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.financial-premium-ai-environments span { padding: 6px 9px; border-radius: 999px; color: #5b416c; background: #f0e8f6; font-size: 12px; }
.financial-premium-ai-caution { padding: 12px; border-left: 4px solid #b78524; border-radius: 8px; color: #604b20; background: #fff8e8; }
@media (min-width: 720px) {
  .financial-premium-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .financial-premium-form > div, .financial-premium-form > button, .financial-premium-form-status, .financial-premium-allocation-preview { grid-column: 1 / -1; }
  .financial-premium-records { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
  .financial-premium-tabs { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); overflow: visible; padding-bottom: 2px; scroll-snap-type: none; }
  .financial-premium-tabs button { min-width: 0; white-space: normal; line-height: 1.2; }
  .financial-premium-form { padding: 22px; }
  .financial-premium-ai-values { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
