:root {
    color: #17231f;
    background: #eef2f0;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-synthesis: none;
    --color-navy: #0a3d7c;
    --color-navy-dark: #072e5e;
    --color-blue: #0b55a5;
    --color-blue-soft: #eaf1fb;
    --color-green: #67a642;
    --color-green-soft: #edf6e8;
    --color-orange: #e66b2e;
    --color-surface: #ffffff;
    --color-surface-muted: #f5f8f6;
    --color-page: #eef2f0;
    --color-text: #17231f;
    --color-muted: #62706a;
    --color-border: #d9e1dd;
    --color-error: #c4473d;
    --shadow-soft: 0 0.75rem 2.25rem rgba(23, 35, 31, 0.08);
}

* {
    box-sizing: border-box;
}

html {
    min-width: 320px;
    background: var(--color-page);
}

body {
    min-width: 320px;
    min-height: 100vh;
    margin: 0;
    color: var(--color-text);
    background: radial-gradient(circle at 95% 0, rgba(103, 166, 66, 0.11), transparent 28rem), var(--color-page);
}

a {
    color: inherit;
}

button,
input,
select,
textarea {
    font: inherit;
}

.skip-link {
    position: fixed;
    z-index: 100;
    top: 0.5rem;
    left: 0.5rem;
    padding: 0.75rem 1rem;
    border-radius: 0.65rem;
    color: #ffffff;
    background: var(--color-navy-dark);
    transform: translateY(-150%);
}

.skip-link:focus {
    transform: translateY(0);
}

.app-header {
    position: sticky;
    z-index: 20;
    top: 0;
    color: #ffffff;
    background: var(--color-navy);
    box-shadow: 0 0.2rem 1rem rgba(7, 46, 94, 0.14);
}

.app-header__inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.5rem;
    width: min(100%, 90rem);
    min-height: 4.4rem;
    margin: 0 auto;
    padding: 0.65rem 1.5rem;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    min-height: 2.75rem;
    text-decoration: none;
}

.brand__mark {
    display: grid;
    width: 2.25rem;
    height: 2.25rem;
    place-items: center;
    border-radius: 0.65rem;
    color: var(--color-navy);
    background: #ffffff;
    font-weight:500;
}

.brand__name {
    font-weight:500;
    letter-spacing: 0.02em;
}

.main-navigation {
    display: flex;
    justify-content: center;
    gap: 0.25rem;
}

.main-navigation__item {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
    padding: 0.6rem 0.85rem;
    border-radius: 0.65rem;
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
}

.main-navigation__item.is-active {
    color: #ffffff;
    background: var(--color-blue);
}

.main-navigation__item.is-disabled {
    cursor: default;
}

.environment-label {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 2.75rem;
    color: rgba(255, 255, 255, 0.84);
    font-size: 0.9rem;
    white-space: nowrap;
}

.environment-label__dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: #9bd175;
    box-shadow: 0 0 0 0.2rem rgba(155, 209, 117, 0.17);
}

.header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
}

.header-actions form {
    margin: 0;
}

.header-user {
    max-width: 12rem;
    overflow: hidden;
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.88rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.header-logout {
    min-height: 2.4rem;
    padding: 0.45rem 0.7rem;
    border: 1px solid rgba(255, 255, 255, 0.32);
    border-radius: 0.6rem;
    color: #ffffff;
    background: transparent;
    cursor: pointer;
}

.app-main {
    width: min(100%, 90rem);
    margin: 0 auto;
    padding: 2rem 1.5rem 3rem;
}

.page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.4rem;
}

.page-heading--compact {
    align-items: center;
}

.eyebrow {
    margin: 0 0 0.35rem;
    color: #527b34;
    font-size: 0.78rem;
    font-weight:500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

h1,
h2,
h3,
p {
    margin-top: 0;
}

h1 {
    margin-bottom: 0.4rem;
    color: #15304d;
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    line-height: 1.12;
}

h2 {
    margin-bottom: 0;
    font-size: 1.12rem;
    line-height: 1.3;
}

h3 {
    margin-bottom: 0.25rem;
    font-size: 1rem;
    line-height: 1.35;
}

.page-heading__intro,
.supporting-text {
    max-width: 46rem;
    margin-bottom: 0;
    color: var(--color-muted);
    line-height: 1.55;
}

.assistant-placeholder {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 2.9rem;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--color-border);
    border-radius: 0.75rem;
    color: var(--color-muted);
    background: rgba(255, 255, 255, 0.68);
    white-space: nowrap;
}

.assistant-placeholder__icon {
    color: var(--color-green);
    font-size: 1.1rem;
}

.module-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.8rem;
    margin-bottom: 1.25rem;
}

.module-tile {
    display: grid;
    min-height: 7.25rem;
    place-items: center;
    align-content: center;
    gap: 0.35rem;
    padding: 0.85rem 0.55rem;
    border: 1px solid var(--color-border);
    border-radius: 0.9rem;
    color: var(--color-text);
    background: var(--color-surface);
    text-align: center;
    text-decoration: none;
    box-shadow: 0 0.35rem 1rem rgba(23, 35, 31, 0.04);
}

.module-tile.is-active {
    border-color: #8abb69;
    background: var(--color-green-soft);
}

.module-tile.is-planned {
    color: #52605a;
}

.module-tile__icon {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 0.6rem;
    color: var(--color-navy);
    background: var(--color-blue-soft);
    font-size: 0.85rem;
    font-weight:500;
}

.module-tile.is-active .module-tile__icon {
    color: #315e1c;
    background: #dcefd0;
}

.module-tile strong {
    font-size: 0.95rem;
}

.module-tile > span:last-child {
    color: var(--color-muted);
    font-size: 0.78rem;
}

.dashboard-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(18rem, 0.55fr);
    gap: 1rem;
}

.content-panel {
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    background: var(--color-surface);
    box-shadow: var(--shadow-soft);
}

.content-panel--compact {
    padding: 1.1rem;
}

.content-panel__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.status-label {
    display: inline-flex;
    align-items: center;
    min-height: 1.8rem;
    padding: 0.3rem 0.6rem;
    border-radius: 999px;
    color: #55625c;
    background: #edf1ef;
    font-size: 0.78rem;
    white-space: nowrap;
}

.status-label--active {
    color: #315e1c;
    background: var(--color-green-soft);
}

.status-label--warning {
    color: #7a4a00;
    background: #fff1d6;
}

.status-label--danger {
    color: #79251f;
    background: #fbeae8;
}

.status-label--special-leave {
    color: #5b3f8c;
    background: #f0e9fb;
}

.danger-text {
    color: #9b3029;
    font-weight:500;
}

.focus-message {
    display: flex;
    gap: 0.9rem;
    align-items: flex-start;
    padding: 1rem;
    border-radius: 0.85rem;
    background: var(--color-blue-soft);
}

.focus-message__mark {
    display: grid;
    flex: 0 0 auto;
    width: 2.25rem;
    height: 2.25rem;
    place-items: center;
    border-radius: 0.7rem;
    color: #ffffff;
    background: var(--color-blue);
    font-weight:500;
}

.focus-message p {
    margin-bottom: 0;
    color: #526579;
    line-height: 1.5;
}

.next-steps {
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
}

.next-steps li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.8rem;
    min-height: 4.5rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--color-border);
}

.next-steps li:last-child {
    border-bottom: 0;
}

.next-steps__number {
    display: grid;
    width: 1.9rem;
    height: 1.9rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-navy);
    background: var(--color-surface-muted);
    font-weight:500;
}

.next-steps strong,
.next-steps div > span {
    display: block;
}

.next-steps div > span {
    margin-top: 0.2rem;
    color: var(--color-muted);
    line-height: 1.4;
}

.side-stack {
    display: grid;
    align-content: start;
    gap: 1rem;
}

.system-summary {
    margin: 0;
}

.system-summary > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 2.75rem;
    border-bottom: 1px solid var(--color-border);
}

.system-summary > div:last-child {
    border-bottom: 0;
}

.system-summary dt {
    color: var(--color-muted);
}

.system-summary dd {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    text-align: right;
}

.status-dot {
    display: inline-block;
    flex: 0 0 auto;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
}

.status-dot--ok {
    background: #55962f;
    box-shadow: 0 0 0 0.2rem rgba(85, 150, 47, 0.13);
}

.status-dot--error {
    background: var(--color-error);
    box-shadow: 0 0 0 0.2rem rgba(196, 71, 61, 0.13);
}

.secondary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    margin-top: 1rem;
    padding: 0.65rem 0.9rem;
    border: 1px solid #aebdd0;
    border-radius: 0.7rem;
    color: var(--color-navy);
    background: #ffffff;
    font-weight:500;
    text-decoration: none;
}

.page-heading > .secondary-action {
    margin-top: 0;
}

.system-status-panel {
    width: min(100%, 54rem);
}

.status-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
}

.status-card {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    min-height: 6rem;
    padding: 1rem;
    border: 1px solid var(--color-border);
    border-radius: 0.85rem;
    background: var(--color-surface-muted);
}

.status-card h2 {
    margin-bottom: 0;
    font-size: 1rem;
}

.status-card p {
    margin: 0.25rem 0 0;
    color: var(--color-muted);
    line-height: 1.45;
}

.notice {
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    font-weight:500;
}

.notice--ok {
    color: #315e1c;
    background: var(--color-green-soft);
}

.notice--error {
    color: #79251f;
    background: #fbeae8;
}

.notice--warning {
    color: #70520b;
    background: #fff3cf;
}

.notice--success {
    color: #315e1c;
    background: var(--color-green-soft);
}

.auth-layout {
    display: grid;
    min-height: calc(100vh - 8.5rem);
    place-items: center;
}

.auth-card {
    width: min(100%, 30rem);
    padding: clamp(1.25rem, 4vw, 2rem);
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    background: var(--color-surface);
    box-shadow: var(--shadow-soft);
}

.auth-card--wide {
    width: min(100%, 48rem);
}

.standard-form {
    display: grid;
    gap: 1rem;
    margin-top: 1.4rem;
}

.form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
}

.form-grid__full {
    grid-column: 1 / -1;
}

.form-field {
    display: grid;
    min-width: 0;
    gap: 0.4rem;
}

.form-field label {
    color: #29465f;
    font-size: 0.88rem;
    font-weight:500;
}

.form-field--checkbox {
    display: flex;
    align-items: flex-start;
}

.form-field--checkbox input {
    width: 1.15rem;
    height: 1.15rem;
    margin: 0.15rem 0 0;
}

.form-control {
    display: block;
    width: 100%;
    min-height: 2.85rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid #bdc9c3;
    border-radius: 0.65rem;
    color: var(--color-text);
    background: #ffffff;
}

input.form-control:not([type="checkbox"]):not([type="radio"]),
select.form-control:not([multiple]) {
    height: 2.85rem;
}

textarea.form-control {
    min-height: 7rem;
    resize: vertical;
}

.form-control:focus {
    border-color: var(--color-blue);
    outline: 0.2rem solid rgba(11, 85, 165, 0.13);
}

.field-help,
.muted-text {
    color: var(--color-muted);
    font-size: 0.82rem;
    line-height: 1.45;
}

.field-help ul,
.field-errors ul,
.form-errors ul {
    margin: 0;
    padding-left: 1.2rem;
}

.field-errors,
.form-errors {
    color: #79251f;
    font-size: 0.84rem;
}

.form-errors {
    padding: 0.8rem;
    border-radius: 0.65rem;
    background: #fbeae8;
}

.primary-action,
.secondary-action,
.text-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    border-radius: 0.65rem;
    font-weight:500;
    text-decoration: none;
    cursor: pointer;
}

.primary-action,
.secondary-action {
    margin-top: 0;
}

.primary-action {
    padding: 0.65rem 1rem;
    border: 1px solid var(--color-blue);
    color: #ffffff;
    background: var(--color-blue);
}

.secondary-action {
    padding: 0.65rem 0.9rem;
    border: 1px solid var(--color-border);
    color: var(--color-navy);
    background: #ffffff;
}

.text-action {
    min-height: 2.3rem;
    padding: 0.35rem 0.55rem;
    border: 0;
    color: var(--color-blue);
    background: transparent;
}

.text-action--danger {
    color: var(--color-error);
}

.form-actions,
.table-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
}

.table-actions form {
    margin: 0;
}

.form-panel {
    max-width: 54rem;
}

.customer-form-notice {
    max-width: 54rem;
    margin-bottom: 1rem;
}

.feature-grid,
.catalog-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.feature-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 6rem;
    padding: 1rem;
    border: 1px solid var(--color-border);
    border-radius: 0.9rem;
    background: var(--color-surface);
    text-decoration: none;
    box-shadow: 0 0.35rem 1rem rgba(23, 35, 31, 0.04);
}

.feature-card.is-planned {
    color: var(--color-muted);
}

.feature-card__icon {
    display: grid;
    flex: 0 0 auto;
    width: 2.6rem;
    height: 2.6rem;
    place-items: center;
    border-radius: 0.7rem;
    color: var(--color-navy);
    background: var(--color-blue-soft);
    font-weight:500;
}

.feature-card > span:last-child {
    display: grid;
    gap: 0.2rem;
}

.feature-card small {
    color: var(--color-muted);
    line-height: 1.4;
}

.responsive-table {
    overflow-x: auto;
}

.order-needs {
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--color-border);
    border-radius: 0.8rem;
}

.order-needs label {
    display: flex;
    gap: 0.7rem;
    align-items: flex-start;
    margin: 0.7rem 0;
    overflow-wrap: anywhere;
}

.order-needs input[type="checkbox"] {
    flex: 0 0 auto;
    width: 1.2rem;
    min-height: 1.2rem;
    margin-top: 0.2rem;
}

table {
    width: 100%;
    border-collapse: collapse;
}

th,
td {
    padding: 0.8rem 0.7rem;
    border-bottom: 1px solid var(--color-border);
    text-align: left;
    vertical-align: top;
}

th {
    color: var(--color-muted);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

td > small {
    display: block;
    margin-top: 0.2rem;
    color: var(--color-muted);
}

.tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.tag {
    display: inline-flex;
    align-items: center;
    min-height: 1.9rem;
    padding: 0.3rem 0.55rem;
    border-radius: 99rem;
    color: #29465f;
    background: var(--color-blue-soft);
    font-size: 0.78rem;
    font-weight:500;
}

.catalog-grid {
    margin-top: 1rem;
}

.assignment-list {
    display: grid;
    gap: 0.7rem;
    margin-top: 1rem;
}

.assignment-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.8rem;
    border: 1px solid var(--color-border);
    border-radius: 0.75rem;
    background: var(--color-surface-muted);
}

.assignment-row > div {
    display: grid;
    gap: 0.2rem;
}

.assignment-row span {
    color: var(--color-muted);
    font-size: 0.82rem;
}

.section-navigation {
    display: flex;
    gap: 0.4rem;
    margin: -0.25rem 0 1.25rem;
    padding: 0.35rem;
    overflow-x: auto;
    border: 1px solid var(--color-border);
    border-radius: 0.85rem;
    background: rgba(255, 255, 255, 0.72);
}

.section-navigation__item {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-height: 2.55rem;
    padding: 0.55rem 0.8rem;
    border-radius: 0.65rem;
    color: var(--color-muted);
    font-weight:500;
    text-decoration: none;
}

.section-navigation__item.is-active {
    color: #ffffff;
    background: var(--color-blue);
}

.page-heading__actions,
.calendar-toolbar__actions {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.planning-appointments,
.today-appointments {
    margin-bottom: 1rem;
}

.workday-preview {
    margin-bottom: 1rem;
}

.workday-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.workday-card {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.workday-card__details {
    margin: 0;
}

.workday-note {
    margin: 0;
    padding: 0.85rem;
    border-radius: 0.75rem;
    background: var(--color-surface-muted);
}

.workday-conflicts {
    display: grid;
    gap: 0.4rem;
    padding: 0.85rem;
    border: 1px solid #e4be69;
    border-radius: 0.75rem;
    color: var(--color-navy);
    background: #fff3cf;
}

.workday-time-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.workday-time-panel h2,
.workday-time-panel p {
    margin-bottom: 0;
}

.calendar-panel {
    margin-bottom: 1rem;
}

.calendar-toolbar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.calendar-toolbar > div:nth-child(2) {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
    text-align: center;
    overflow-wrap: anywhere;
}

.monthly-worktime-toolbar > div:nth-child(2) {
    display: grid;
    gap: 0.15rem;
}

.vacation-year-toolbar > div:nth-child(2) {
    display: grid;
    gap: 0.15rem;
}

.calendar-toolbar h2 {
    margin: 0;
}

.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: 0.85rem;
    background: var(--color-border);
    gap: 1px;
}

.calendar-grid__weekday {
    padding: 0.55rem;
    color: var(--color-muted);
    background: var(--color-surface-muted);
    font-size: 0.78rem;
    font-weight:500;
    text-align: center;
}

.calendar-day {
    min-width: 0;
    min-height: 8.5rem;
    padding: 0.55rem;
    background: var(--color-surface);
}

.calendar-day.is-outside {
    color: var(--color-muted);
    background: #f7f8f6;
}

.calendar-day.is-today {
    box-shadow: inset 0 0 0 2px var(--color-blue);
}

.calendar-day__number {
    display: inline-grid;
    width: 1.7rem;
    height: 1.7rem;
    place-items: center;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight:500;
}

.calendar-day.is-today .calendar-day__number {
    color: white;
    background: var(--color-blue);
}

.calendar-day__appointments {
    display: grid;
    gap: 0.3rem;
    margin-top: 0.35rem;
}

.calendar-entry {
    display: grid;
    min-width: 0;
    gap: 0.05rem;
    padding: 0.35rem 0.4rem;
    border-left: 0.2rem solid var(--color-blue);
    border-radius: 0.35rem;
    color: var(--color-navy);
    background: var(--color-blue-soft);
    font-size: 0.7rem;
    line-height: 1.25;
    text-decoration: none;
}

.calendar-entry strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-entry small {
    overflow: hidden;
    color: var(--color-muted);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.balance-note,
.balance-status {
    display: block;
    margin-top: 0.35rem;
    white-space: normal;
}

.balance-status {
    width: fit-content;
}

.calendar-entry--completed {
    border-left-color: #4b7d30;
    background: var(--color-green-soft);
}

.calendar-entry--cancelled {
    border-left-color: #a33a31;
    background: #fae9e6;
    text-decoration: line-through;
}

.calendar-entry--vacation {
    border-left-color: #c47a13;
    background: #fff1d6;
}

.calendar-entry--special-leave {
    border-left-color: #7954a8;
    background: #f0e9fb;
}

.dispatch-panel {
    margin-bottom: 1rem;
}

.dispatch-week-board {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: 0.85rem;
    background: var(--color-border);
    gap: 1px;
}

.dispatch-day {
    min-width: 0;
    min-height: 19rem;
    background: var(--color-surface);
}

.dispatch-day.is-today {
    box-shadow: inset 0 0 0 2px var(--color-blue);
}

.dispatch-day__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    min-height: 3.6rem;
    padding: 0.55rem;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface-muted);
}

.dispatch-day__heading > div {
    display: grid;
    gap: 0.1rem;
}

.dispatch-day__heading strong {
    color: var(--color-navy);
    font-size: 0.78rem;
}

.dispatch-day__heading span {
    color: var(--color-muted);
    font-size: 0.72rem;
}

.dispatch-day__heading > a {
    display: grid;
    flex: 0 0 auto;
    width: 1.8rem;
    height: 1.8rem;
    place-items: center;
    border-radius: 999px;
    color: #ffffff;
    background: var(--color-blue);
    font-weight:500;
    text-decoration: none;
}

.dispatch-day__entries {
    display: grid;
    gap: 0.45rem;
    padding: 0.5rem;
}

.dispatch-entry {
    display: grid;
    min-width: 0;
    gap: 0.15rem;
    padding: 0.55rem;
    border-left: 0.22rem solid var(--color-blue);
    border-radius: 0.45rem;
    color: var(--color-navy);
    background: var(--color-blue-soft);
    font-size: 0.72rem;
    line-height: 1.3;
    text-decoration: none;
}

.dispatch-entry strong,
.dispatch-entry small {
    overflow: hidden;
    text-overflow: ellipsis;
}

.dispatch-entry small {
    color: var(--color-muted);
}

.dispatch-entry--completed {
    border-left-color: #4b7d30;
    background: var(--color-green-soft);
}

.dispatch-entry--cancelled {
    border-left-color: #a33a31;
    background: #fae9e6;
}

.dispatch-day__empty {
    padding: 0.8rem 0.25rem;
    color: var(--color-muted);
    font-size: 0.75rem;
    text-align: center;
}

.dispatch-mobile-days {
    display: none;
}

.checkbox-field {
    align-self: end;
}

.checkbox-row {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    min-height: 2.75rem;
    margin: 0;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: 0.65rem;
    background: var(--color-surface-muted);
}

.checkbox-row input {
    width: 1.1rem;
    height: 1.1rem;
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.metric-card {
    display: grid;
    min-height: 8rem;
    align-content: center;
    gap: 0.2rem;
    padding: 1.1rem;
    border: 1px solid var(--color-border);
    border-radius: 0.9rem;
    background: var(--color-surface);
    text-decoration: none;
    box-shadow: 0 0.35rem 1rem rgba(23, 35, 31, 0.04);
}

.metric-card__value {
    color: var(--color-navy);
    font-size: 2rem;
    font-weight:500;
    line-height: 1;
}

.metric-card small,
.compact-list__item small,
.history-list span {
    color: var(--color-muted);
}

.masterdata-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.compact-list,
.history-list {
    display: grid;
}

.compact-list__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 3.8rem;
    padding: 0.65rem 0;
    border-bottom: 1px solid var(--color-border);
    text-decoration: none;
}

.compact-list__item:last-child {
    border-bottom: 0;
}

.compact-list__item > span:first-child {
    display: grid;
    gap: 0.15rem;
}

.filter-bar {
    display: grid;
    grid-template-columns: minmax(14rem, 1fr) auto auto;
    align-items: end;
    gap: 0.65rem;
    margin-bottom: 0.8rem;
}

.list-status-switch {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.8rem;
}

.list-status-switch a {
    padding: 0.4rem 0.65rem;
    border-radius: 999px;
    color: var(--color-muted);
    font-size: 0.82rem;
    font-weight:500;
    text-decoration: none;
}

.list-status-switch a.is-active {
    color: #315e1c;
    background: var(--color-green-soft);
}

.detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(17rem, 0.55fr);
    gap: 1rem;
}

.detail-list {
    margin: 0;
}

.detail-list > div {
    display: grid;
    grid-template-columns: minmax(8rem, 0.3fr) minmax(0, 1fr);
    gap: 1rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--color-border);
}

.detail-list > div:last-child {
    border-bottom: 0;
}

.detail-list dt {
    color: var(--color-muted);
    font-size: 0.82rem;
    font-weight:500;
}

.detail-list dd {
    margin: 0;
    line-height: 1.5;
}

.history-list > div {
    display: grid;
    gap: 0.15rem;
    padding: 0.65rem 0;
    border-bottom: 1px solid var(--color-border);
}

.history-list > div:last-child {
    border-bottom: 0;
}

.history-list span {
    font-size: 0.78rem;
}

.related-section,
.danger-zone,
.today-worktime {
    margin-top: 1rem;
}

.worktime-live-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
    padding: 1rem;
    border: 1px solid var(--color-border);
    border-radius: 0.8rem;
    background: var(--color-surface-muted);
}

.worktime-live-panel > div {
    display: grid;
    gap: 0.25rem;
}

.danger-zone {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.danger-zone h2 {
    margin-bottom: 0.25rem;
}

.danger-zone form {
    flex: 0 0 auto;
    margin: 0;
}

.task-status-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.task-status-panel form {
    flex: 0 0 auto;
}

.comment-list {
    display: grid;
    gap: 0.75rem;
}

.comment-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.2rem 1rem;
    padding: 0.9rem;
    border: 1px solid var(--color-border);
    border-radius: 0.75rem;
    background: var(--color-surface-muted);
}

.comment-card span {
    color: var(--color-muted);
    font-size: 0.78rem;
}

.comment-card p {
    grid-column: 1 / -1;
    margin: 0.35rem 0 0;
    line-height: 1.5;
}

.checkbox-list ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.6rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.checkbox-list label {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 2.75rem;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: 0.65rem;
    background: var(--color-surface-muted);
}

.checkbox-list input {
    width: 1.15rem;
    height: 1.15rem;
}

.empty-state {
    color: var(--color-muted);
    text-align: center;
}

.mobile-navigation {
    display: none;
}

@media (max-width: 64rem) {
    .app-header__inner {
        gap: 0.8rem;
    }

    .main-navigation__item {
        padding-inline: 0.65rem;
    }

    .module-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .dashboard-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .side-stack {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .detail-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 56rem) {
    body {
        padding-bottom: 5.25rem;
    }

    .app-header {
        position: static;
    }

    .app-header__inner {
        grid-template-columns: minmax(0, 1fr) auto;
        min-height: 4rem;
        padding: 0.55rem 1rem;
    }

    .header-user,
    .header-logout {
        display: none;
    }

    .main-navigation {
        display: none;
    }

    .app-main {
        padding: 1.25rem 1rem 2rem;
    }

    .page-heading,
    .page-heading--compact {
        align-items: stretch;
        flex-direction: column;
        gap: 1rem;
    }

    .page-heading__actions,
    .page-heading__actions .primary-action,
    .page-heading__actions .secondary-action {
        width: 100%;
    }

    .page-heading__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .calendar-panel {
        display: none;
    }

    .workday-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .workday-time-panel {
        align-items: stretch;
        flex-direction: column;
    }

    .workday-time-panel .primary-action,
    .workday-time-panel .secondary-action {
        width: 100%;
    }

    .monthly-worktime-toolbar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .monthly-worktime-toolbar > div:nth-child(2) {
        grid-column: 1 / -1;
        grid-row: 1;
        display: grid;
        gap: 0.15rem;
    }

    .monthly-worktime-toolbar > .secondary-action {
        grid-column: 1;
        grid-row: 2;
        justify-self: start;
    }

    .monthly-worktime-toolbar > .calendar-toolbar__actions {
        grid-column: 2;
        grid-row: 2;
        justify-content: flex-end;
    }

    .vacation-year-toolbar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vacation-year-toolbar > div:nth-child(2) {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .vacation-year-toolbar > .secondary-action {
        grid-column: 1;
        grid-row: 2;
        justify-self: start;
    }

    .vacation-year-toolbar__actions {
        grid-column: 2;
        grid-row: 2;
        justify-content: flex-end;
    }

    .dispatch-week-board {
        display: none;
    }

    .dispatch-mobile-days {
        display: grid;
        gap: 1rem;
    }

    .dispatch-mobile-day {
        padding: 0.9rem;
        border: 1px solid var(--color-border);
        border-radius: 0.8rem;
        background: var(--color-surface);
    }

    .dispatch-mobile-day.is-today {
        border-color: var(--color-blue);
        box-shadow: inset 0 0 0 1px var(--color-blue);
    }

    .assistant-placeholder {
        width: 100%;
        white-space: normal;
    }

    .side-stack {
        grid-template-columns: minmax(0, 1fr);
    }

    .form-grid,
    .feature-grid,
    .catalog-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .metric-grid,
    .masterdata-overview {
        grid-template-columns: minmax(0, 1fr);
    }

    .section-navigation {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        overflow: visible;
    }

    .section-navigation__item {
        min-width: 0;
        text-align: center;
    }

    .filter-bar {
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
    }

    .filter-bar .secondary-action,
    .filter-bar .text-action {
        width: 100%;
    }

    .detail-list > div {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.3rem;
    }

    .danger-zone {
        align-items: stretch;
        flex-direction: column;
    }

    .worktime-live-panel {
        align-items: stretch;
        flex-direction: column;
    }

    .worktime-live-panel .primary-action,
    .worktime-live-panel .secondary-action {
        width: 100%;
    }

    .task-status-panel {
        align-items: stretch;
        flex-direction: column;
    }

    .task-status-panel form,
    .task-status-panel select,
    .task-status-panel button {
        width: 100%;
    }

    .danger-zone .secondary-action {
        width: 100%;
    }

    .responsive-table {
        overflow: visible;
    }

    .responsive-table table,
    .responsive-table thead,
    .responsive-table tbody,
    .responsive-table tr,
    .responsive-table th,
    .responsive-table td {
        display: block;
        width: 100%;
    }

    .responsive-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
    }

    .responsive-table tr {
        margin-bottom: 0.85rem;
        padding: 0.8rem;
        border: 1px solid var(--color-border);
        border-radius: 0.8rem;
    }

    .responsive-table td {
        display: grid;
        grid-template-columns: minmax(7rem, 0.42fr) minmax(0, 1fr);
        gap: 0.7rem;
        padding: 0.55rem 0;
        border-bottom: 1px solid var(--color-border);
    }

    .responsive-table td:last-child {
        border-bottom: 0;
    }

    .responsive-table td::before {
        content: attr(data-label);
        color: var(--color-muted);
        font-size: 0.74rem;
        font-weight:500;
        letter-spacing: 0.03em;
        text-transform: uppercase;
    }

    .mobile-navigation {
        position: fixed;
        z-index: 30;
        right: 0;
        bottom: 0;
        left: 0;
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: minmax(0, 1fr);
        padding: 0.4rem max(0.45rem, env(safe-area-inset-right)) calc(0.4rem + env(safe-area-inset-bottom)) max(0.45rem, env(safe-area-inset-left));
        border-top: 1px solid var(--color-border);
        background: rgba(255, 255, 255, 0.97);
        box-shadow: 0 -0.4rem 1.5rem rgba(23, 35, 31, 0.1);
    }

    .mobile-navigation__item {
        display: grid;
        min-height: 3.75rem;
        place-items: center;
        align-content: center;
        gap: 0.15rem;
        border-radius: 0.7rem;
        color: var(--color-muted);
        font-size: 0.72rem;
        text-decoration: none;
    }

    .mobile-navigation__item.is-active {
        color: #ffffff;
        background: var(--color-blue);
    }

    .mobile-navigation__icon {
        display: grid;
        width: 1.45rem;
        height: 1.45rem;
        place-items: center;
        border-radius: 0.45rem;
        font-size: 0.75rem;
        font-weight:500;
    }
}

@media (max-width: 29rem) {
    .brand__name {
        font-size: 0.92rem;
    }

    .environment-label {
        font-size: 0.78rem;
    }

    .module-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .module-tile {
        min-height: 6.75rem;
    }

    .content-panel {
        padding: 1rem;
    }

    .next-steps li {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .next-steps .status-label {
        grid-column: 2;
        justify-self: start;
    }

    .status-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .checkbox-list ul {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
    }
}

.preparation-overview {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.preparation-stage {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.75rem;
    align-items: center;
    padding: 0.9rem;
    border: 1px solid var(--color-border);
    border-radius: 0.9rem;
    background: var(--color-surface);
}

.preparation-stage > span {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-muted);
    background: var(--color-background);
    font-weight:500;
}

.preparation-stage strong,
.preparation-stage small {
    display: block;
}

.preparation-stage small {
    margin-top: 0.15rem;
    color: var(--color-muted);
}

.preparation-stage.is-current {
    border-color: var(--color-orange);
}

.preparation-stage.is-current > span {
    color: #fff;
    background: var(--color-orange);
}

.preparation-stage.is-done > span {
    color: #fff;
    background: var(--color-green);
}

.preparation-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.preparation-list {
    display: grid;
    margin-top: 0.75rem;
    border-top: 1px solid var(--color-border);
}

.preparation-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(13rem, 0.8fr);
    gap: 1rem;
    align-items: center;
    padding: 1rem 0;
    border-bottom: 1px solid var(--color-border);
}

.preparation-row--done {
    border-left: 0.25rem solid var(--color-green);
    padding-left: 0.75rem;
}

.preparation-row--danger {
    border-left: 0.25rem solid var(--color-error);
    padding-left: 0.75rem;
}

.preparation-row__main h3 {
    margin: 0.45rem 0 0.2rem;
    font-size: 1rem;
}

.preparation-row__main small {
    color: var(--color-muted);
}

.preparation-row__form {
    display: grid;
    gap: 0.55rem;
}

.preparation-row__form label > span {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--color-muted);
    font-size: 0.75rem;
    font-weight:500;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.preparation-row__form .secondary-action {
    width: 100%;
}

.preparation-check {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    gap: 0.55rem;
}

.preparation-check input {
    width: 1.25rem;
    height: 1.25rem;
}

.preparation-check > span {
    margin: 0;
}

.archived-pack-items {
    margin-top: 1rem;
    padding: 0.75rem;
    border: 1px dashed var(--color-border);
    border-radius: 0.75rem;
}

.archived-pack-items summary {
    cursor: pointer;
    color: var(--color-muted);
    font-weight:500;
}

.departure-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.departure-panel__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
}

.reopen-form {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) auto;
    gap: 0.5rem;
    align-items: end;
}

.reopen-form label {
    grid-column: 1 / -1;
}

.workday-preparation {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.65rem;
    align-items: center;
    margin-top: 0.85rem;
    padding: 0.75rem;
    border-radius: 0.75rem;
    background: var(--color-background);
}

.workday-preparation small {
    color: var(--color-muted);
}

.primary-action:disabled,
.secondary-action:disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

.permission-switch-list {
    display: grid;
    gap: 0.75rem;
}

.permission-switch {
    display: grid;
    gap: 0.35rem;
    padding: 0.9rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: 0.85rem;
    background: var(--color-surface);
}

.permission-switch > span:first-child {
    display: flex;
    align-items: center;
    gap: 0.7rem;
}

.permission-switch input[type="checkbox"] {
    width: 1.25rem;
    height: 1.25rem;
    accent-color: var(--color-primary);
}

.permission-switch small {
    color: var(--color-muted);
    padding-left: 1.95rem;
}

.compact-inline-form {
    display: grid;
    gap: 0.35rem;
    min-width: 10rem;
}

@media (max-width: 64rem) {
    .preparation-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 48rem) {
    .preparation-overview {
        grid-template-columns: minmax(0, 1fr);
    }

    .preparation-row {
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
    }

    .departure-panel,
    .departure-panel__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .departure-panel__actions .primary-action,
    .departure-panel__actions .secondary-action,
    .departure-panel__actions form {
        width: 100%;
    }

    .reopen-form {
        grid-template-columns: minmax(0, 1fr);
    }

    .workday-preparation {
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
    }
}

/* Import and requirement tables retain readable values on narrow screens. */
.responsive-table td > div { min-width: 0; overflow-wrap: anywhere; }
.responsive-table td small { display: block; }
@media (max-width: 56rem) {
    .responsive-table td::before { min-width: 0; overflow-wrap: anywhere; }
    .responsive-table td[colspan] { display: block; }
    .responsive-table td[colspan]::before { content: none; }
}

/* Customer cleanup: retain standard table and button behavior at all widths. */
.cleanup-actions { display:flex; align-items:flex-start; flex-wrap:wrap; gap:.65rem; }
.cleanup-menu { position:relative; }
.cleanup-menu summary { cursor:pointer; list-style:revert; }
.cleanup-menu__links { display:grid; gap:.25rem; padding:.7rem; background:#fff; border:1px solid #ccd8e0; border-radius:.65rem; }
.cleanup-menu__links a { display:block; padding:.6rem; color:#0a3d7c; }
.cleanup-results { list-style:none; padding:0; }
.cleanup-results li { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; padding:1rem 0; border-bottom:1px solid #d8e1e6; }
.cleanup-choice { border:0; padding:0; margin:0; min-width:0; }
.cleanup-choice label { display:flex; align-items:center; gap:.4rem; padding:.3rem 0; }
.cleanup-comparison td > div { overflow-wrap:anywhere; min-width:0; }
.cleanup-choice .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
@media (max-width:600px) { .cleanup-actions, .cleanup-menu { width:100%; } .cleanup-menu__links { position:static; } }

/* Confirmed work results retain a distinct operational status. */
.dispatch-entry--partial { border-left-color: #b66a08; background: #fff4d4; }
.dispatch-entry--not_done { border-left-color: #ae3434; background: #fff0ed; }


/* Module navigation grows with labels and with the number of available modules. */
.rights-navigation {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.rights-navigation > a {
    min-width: 0;
    min-height: 3rem;
    height: auto;
    justify-content: flex-start;
    white-space: normal;
    overflow-wrap: anywhere;
}
.rights-navigation > [hidden] { display: none; }
.calendar-toolbar__actions { flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 700px) {
    .calendar-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .calendar-toolbar > div:nth-child(2) {
        grid-column: 1 / -1;
        grid-row: 1;
    }
    .calendar-toolbar > :first-child {
        grid-column: 1;
        grid-row: 2;
        justify-self: start;
    }
    .calendar-toolbar > :last-child {
        grid-column: 2;
        grid-row: 2;
        justify-self: end;
    }
}

/* Permission explanations and effective scope remain readable on every width. */
.rights-row {display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:1.25rem;padding:1.25rem 0;border-bottom:1px solid #d5e0de;align-items:start}
.rights-row p {margin:.4rem 0;line-height:1.55}
.rights-row>div,.rights-field>div {min-width:0;overflow-wrap:anywhere}
.rights-result {display:flex;flex-direction:column;gap:.4rem}
.rights-result small {line-height:1.5;color:#4a6171}
.rights-state {display:inline-block;align-self:start;border-radius:6px;background:#edf0f3;color:#213b53;padding:.25rem .6rem}
.rights-state--yes {background:#e2f0e2;color:#20532a}
.rights-toolbar {display:flex;gap:1.5rem;justify-content:space-between;align-items:end;flex-wrap:wrap}
.rights-search {display:flex;align-items:end;gap:.7rem;flex-wrap:wrap}
.rights-search label {flex-basis:100%;font-weight:500}
.rights-search input {padding:.7rem;border:1px solid #acbdbb;border-radius:8px;max-width:100%;min-width:0}
.rights-field {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:1.5rem;margin:1.4rem 0;align-items:start}
.rights-field label {font-weight:500}
.rights-field select,.rights-field input:not([type=checkbox]),.rights-field textarea {width:100%;max-width:100%;box-sizing:border-box}
.rights-field select[multiple] {min-height:12rem}
.rights-comparison {display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.rights-comparison>div {padding:1rem;border:1px solid #c8d9d4;border-radius:10px}
.rights-preview-banner {position:sticky;top:0;z-index:1000;background:#ffefbd;color:#392900;padding:1rem;display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;border-bottom:2px solid #ae7e00}
.rights-preview-banner a {font-weight:500;color:#123c72}
@media(max-width:850px){.rights-row{grid-template-columns:1fr 1fr}.rights-row>div:last-child{grid-column:1/-1}.rights-field{grid-template-columns:1fr;gap:.35rem}}
@media(max-width:550px){.rights-row,.rights-comparison{grid-template-columns:1fr}.rights-toolbar>a,.rights-search{width:100%}.rights-preview-banner{position:static;justify-content:start}}

.rights-field[hidden],.rights-field [hidden]{display:none!important}
.standard-form .rights-field{margin:.6rem 0}
.customer-object-groups{display:grid;gap:1.8rem;margin-top:1.5rem}
.work-report-heading{flex-wrap:wrap}
.page-heading h1{overflow-wrap:break-word;hyphens:auto}
.customer-address-group h3{margin:0 0 1rem;font-size:1.15rem}
.customer-address-group h3 small{display:block;margin-top:.35rem;font-weight:400;color:#4a6171}
.customer-object-entries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.customer-object-entry{min-width:0;border:1px solid #d5e0de;border-radius:10px;padding:1.1rem}
.customer-object-entry__heading{display:flex;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:.8rem;flex-wrap:wrap}
.customer-object-entry__heading h4{margin:0 0 .3rem;font-size:1.05rem;line-height:1.45}
.customer-object-services{list-style:none;margin:1rem 0 0;padding:0}
.customer-object-services>li{padding:.8rem 0;border-top:1px solid #e2e9e7;line-height:1.55}
.customer-object-services>li>span{display:block;font-size:.9rem}
.customer-object-assignments{padding-left:1.2rem;margin:.5rem 0 0;font-size:.85rem}
@media(max-width:850px){.customer-object-entries{grid-template-columns:1fr}}
.rights-field input[type=checkbox]{width:1.15rem!important;height:1.15rem!important;min-height:1.15rem!important;margin:0;padding:0;flex:0 0 auto}
.rights-field #id_areas label,.rights-field #id_employees label{display:flex;align-items:center;gap:.6rem;padding:.45rem 0;font-weight:400}
.rights-field #id_employees{max-height:22rem;overflow:auto}

/* Only archive list filters use the shared primary-action sizing. */
.archive-status-switch {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-bottom: 0.8rem;
}
.archive-status-switch .primary-action { gap: 0.4rem; }
.archive-status-switch .primary-action.is-active { box-shadow: inset 0 0 0 2px #ffffff; }
.archive-status-switch .primary-action:hover { filter: brightness(0.92); }
.archive-status-switch .primary-action:focus-visible {
    outline: 3px solid var(--color-navy);
    outline-offset: 3px;
}

/* DEC-WIKI-018: detailed dated schedule, scoped to contract UI. */
.schedule-day-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.schedule-day-card { min-width:0; margin:0; padding:1rem; border:1px solid var(--border-color, #dbe4ec); border-radius:0.75rem; }
.schedule-day-card legend { font-weight:500; padding:0 0.4rem; }
.schedule-day-card .form-field + .form-field { margin-top:0.8rem; }
.schedule-week-total { display:flex; flex-direction:column; gap:0.4rem; padding:1rem; background:#eef5fb; border-radius:0.75rem; }
.schedule-week-total output { font-size:1.5rem; font-weight:500; overflow-wrap:anywhere; }
.schedule-day-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0.6rem 1rem; margin:0.8rem 0; }
.schedule-day-summary div { min-width:0; }
.schedule-day-summary dt { font-weight:500; }
.schedule-day-summary dd { margin:0.2rem 0; overflow-wrap:anywhere; }
.schedule-day-summary small { display:block; }
.schedule-period-card + .schedule-period-card { border-top:1px solid #dbe4ec; padding-top:1rem; margin-top:1rem; }
@media (max-width:640px) { .schedule-day-grid, .schedule-day-summary { grid-template-columns:minmax(0,1fr); } }

.schedule-change-values { margin:0.5rem 0; }
.schedule-change-values dt { font-weight:500; }
.schedule-change-values dd { margin:0.2rem 0 0.6rem; overflow-wrap:anywhere; }

/* DEC-WIKI-019: only the confidential customer report cards and forms. */
.customer-reports { min-width:0; }
.customer-report { min-width:0; padding:1rem 0; scroll-margin-top:1rem; }
.customer-report + .customer-report { border-top:1px solid #dbe4ec; }
.customer-report h3, .customer-reports .content-panel__heading { overflow-wrap:anywhere; }
.customer-report-text { white-space:pre-wrap; overflow-wrap:anywhere; }
.customer-report-history { margin-top:1rem; }
.customer-report-history summary { cursor:pointer; font-weight:500; padding:0.5rem 0; }
.customer-report-history section { padding:0.8rem; margin-top:0.6rem; border-left:3px solid #dbe4ec; }

/* DEC-WIKI-020: navigation only; archive/action/warning styles remain separate. */
.main-navigation__item.is-active:hover, .main-navigation__item.is-active:focus-visible,
.section-navigation__item.is-active:hover, .section-navigation__item.is-active:focus-visible,
.mobile-navigation__item.is-active:hover, .mobile-navigation__item.is-active:focus-visible {
    background:var(--color-blue); color:#ffffff;
}
.main-navigation__item:focus-visible, .mobile-navigation__item:focus-visible,
.section-navigation__item:focus-visible, .work-tabs a:focus-visible,
.employee-hub a:focus-visible, .employee-tabs a:focus-visible {
    outline:2px solid currentColor; outline-offset:3px;
    box-shadow:0 0 0 3px var(--color-navy);
}
