/* ---------------------------------------------------------------------------
   Verwaltung und Einstieg (Welle 4 des Bedienkonzepts)
   Verlauf, Team und Zugänge, Einstellungen mit Unterseiten, Start und
   geführte Einrichtung. Nur Tokens aus app.css, Rahmen statt Schatten,
   Abstände aus dem 8-Pixel-Raster in admin_ui.css.
--------------------------------------------------------------------------- */

/* Gemeinsam: Schrittfolge als Übersicht über den Karten (waagerecht ab Tablet) */
.step-flow--inline {
    padding: var(--space-2);
    border: 1px solid var(--line);
    border-radius: var(--radius-surface);
    background: var(--surface);
}

.step-flow.step-flow--inline > li {
    grid-template-columns: 1.7rem minmax(0, 1fr);
    align-content: center;
    row-gap: 0;
}

.step-flow.step-flow--inline > li > small {
    grid-column: 2;
}

@media (min-width: 38rem) {
    .step-flow--inline {
        grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
        gap: var(--space-1);
    }
}

/* Gemeinsam: kompakter Kopf auch in der Einstellungen-Werkstatt (Regel 10) */
.settings-workspace .settings-workspace-content .page-header h1 {
    font-size: clamp(1.7rem, 2.6vw, 2.25rem);
    letter-spacing: -.03em;
}

.settings-workspace .section-heading h2,
.settings-workspace .contract-status-header h2,
.settings-workspace .contract-form-heading h2,
.settings-workspace .contract-empty-copy h2,
.settings-workspace .contract-next-action h3,
.settings-workspace .contract-order h2,
.settings-workspace .lifecycle-page h2,
.settings-workspace .import-shell h2 {
    font-size: 1.3rem;
}

.settings-workspace .settings-link-card h2 {
    font-size: 1.15rem;
}

/* ---------------------------------------------------------------------------
   Verlauf
--------------------------------------------------------------------------- */
.activity-page {
    max-width: 82rem;
}

.activity-filters {
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--line);
    border-radius: var(--radius-surface);
    background: var(--surface);
}

.activity-filters > div {
    flex: 1 1 11rem;
    max-width: 18rem;
}

.activity-filters label {
    font-weight: 700;
}

.activity-filters__reset {
    min-height: 40px;
    padding-inline: var(--space-2);
    font-size: .88rem;
    font-weight: 700;
}

.activity-page .activity-card {
    padding-bottom: var(--space-4);
}

.activity-day {
    margin-top: var(--space-4);
}

.activity-day__label {
    margin: 0 0 var(--space-1);
    padding: var(--space-1) 0;
    color: var(--green-deep);
    font: 700 .82rem/1.3 "LM Space", sans-serif;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.activity-day__label span {
    margin-left: var(--space-2);
    color: var(--muted);
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
}

.activity-page .activity-list {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--line);
}

.activity-page .activity-entry {
    min-height: 52px;
    padding: var(--space-3) 0;
    display: grid;
    grid-template-columns: 5.25rem minmax(0, 1fr) auto minmax(9rem, 14rem);
    align-items: start;
    gap: var(--space-2) var(--space-4);
    border-bottom: 1px solid var(--line);
}

.activity-page .activity-entry > time,
.activity-page .activity-group > summary > time {
    padding-top: .15rem;
    color: var(--muted);
    font-size: .82rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.activity-page .activity-copy {
    min-width: 0;
    padding: 0;
    border: 0;
}

.activity-page .activity-copy strong {
    display: block;
    font: 700 .96rem/1.35 "LM Space", sans-serif;
}

.activity-page .activity-copy .activity-detail {
    margin: .2rem 0 0;
    color: var(--ink);
    font-size: .86rem;
    overflow-wrap: anywhere;
}

.activity-area {
    padding: .2rem .5rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface-soft);
    color: var(--muted);
    font-size: .74rem;
    font-weight: 700;
    white-space: nowrap;
}

.activity-actor {
    margin: 0;
    padding-top: .15rem;
    color: var(--muted);
    font-size: .84rem;
    overflow-wrap: anywhere;
}

.activity-actor b {
    color: var(--ink);
}

/* Zusammengefasste Folge: die Summary trägt die Zeile, die Einzelzeilen liegen darunter */
.activity-page .activity-entry--group {
    display: block;
    padding: 0;
}

.activity-group > summary {
    min-height: 52px;
    padding: var(--space-3) 0;
    display: grid;
    grid-template-columns: 5.25rem minmax(0, 1fr) auto minmax(9rem, 14rem);
    align-items: start;
    gap: var(--space-2) var(--space-4);
    list-style: none;
    cursor: pointer;
}

.activity-group > summary::-webkit-details-marker {
    display: none;
}

.activity-group > summary:hover {
    background: var(--surface-soft);
}

.activity-group > summary .activity-detail {
    color: var(--green);
    font-weight: 700;
}

.activity-group[open] > summary .activity-detail::after {
    content: " (ausblenden)";
    font-weight: 400;
}

.activity-page .activity-list--nested {
    margin: 0 0 var(--space-2) 5.25rem;
    border-top: 0;
    border-left: 2px solid var(--green-soft);
}

.activity-page .activity-list--nested .activity-entry {
    padding-left: var(--space-3);
}

.activity-page .activity-list--nested .activity-entry:last-child {
    border-bottom: 0;
}

.activity-note {
    margin: var(--space-4) 0 0;
    color: var(--muted);
    font-size: .8rem;
}

.activity-page .activity-empty {
    padding: var(--space-6) 0 var(--space-2);
}

.activity-page .activity-empty .button {
    margin-top: var(--space-3);
}

@media (max-width: 54rem) {
    .activity-page .activity-entry,
    .activity-group > summary {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: var(--space-1) var(--space-3);
    }

    .activity-page .activity-entry--group {
        display: block;
    }

    .activity-page .activity-entry > time,
    .activity-group > summary > time {
        padding-top: 0;
    }

    .activity-page .activity-copy {
        flex: 1 1 100%;
        order: -1;
    }

    .activity-page .activity-entry > .activity-actor,
    .activity-group > summary > .activity-actor {
        padding-top: 0;
    }

    .activity-page .activity-list--nested {
        margin-left: var(--space-2);
    }

    .activity-filters > div {
        max-width: none;
    }
}

/* ---------------------------------------------------------------------------
   Team und Zugänge
--------------------------------------------------------------------------- */
.team-page {
    max-width: 82rem;
}

.team-column {
    min-width: 0;
    display: grid;
    gap: var(--space-5);
    align-content: start;
}

.team-page .member-list li:last-child {
    border-bottom: 0;
}

.team-page .member-identity .member-own {
    display: inline;
    margin-left: var(--space-1);
    color: var(--muted);
    font-size: .76rem;
    font-weight: 700;
}

.team-page .open-invitations {
    margin-top: 0;
}

.open-invitations__empty {
    margin: var(--space-3) 0 0;
    color: var(--muted);
    font-size: .9rem;
}

.invitation-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.invitation-list li {
    min-width: 0;
    padding: var(--space-3) 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    border-bottom: 1px solid var(--line);
}

.invitation-list li:last-child {
    border-bottom: 0;
}

.invitation-identity {
    min-width: 0;
}

.invitation-identity strong,
.invitation-identity span {
    display: block;
    overflow-wrap: anywhere;
}

.invitation-identity span {
    margin-top: .18rem;
    color: var(--muted);
    font-size: .8rem;
}

.invitation-list form {
    margin: 0;
}

.role-help {
    margin: calc(-1 * var(--space-2)) 0 var(--space-4);
}

.role-help > summary {
    min-height: 44px;
    display: flex;
    align-items: center;
    color: var(--green);
    font-size: .88rem;
    font-weight: 700;
    cursor: pointer;
}

.role-help > dl {
    margin: 0;
    padding: var(--space-2) var(--space-3);
    display: grid;
    gap: var(--space-2);
    border: 1px solid var(--line);
    border-radius: var(--radius-control);
    background: var(--surface-soft);
    font-size: .84rem;
}

.role-help dt {
    font-weight: 700;
}

.role-help dd {
    margin: .1rem 0 0;
    color: var(--muted);
    line-height: 1.45;
}

.team-page .advanced-access > summary {
    display: grid;
    gap: .1rem;
}

.advanced-access__eyebrow {
    color: var(--muted);
    font: 700 .72rem/1.2 "LM Space", sans-serif;
    letter-spacing: .08em;
    text-transform: uppercase;
}

@media (max-width: 54rem) {
    .invitation-list li {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ---------------------------------------------------------------------------
   Einstellungen: Konto & Sicherheit
--------------------------------------------------------------------------- */
.settings-value-list .settings-row-action,
.settings-static-row .settings-row-action {
    justify-self: end;
    text-decoration: none;
}

.settings-value-list summary:hover .settings-row-action {
    border-color: var(--green);
    background: var(--green-soft);
}

.settings-value-list details[open] > summary .settings-row-action {
    border-color: var(--green);
    background: var(--surface);
}

/* ---------------------------------------------------------------------------
   Einstellungen: Datenimport (vormals als Inline-Stil in der Vorlage)
--------------------------------------------------------------------------- */
.import-grid {
    display: grid;
    grid-template-columns: minmax(17rem, .72fr) minmax(0, 1.55fr);
    align-items: start;
    gap: var(--space-4);
}

.import-grid > div {
    min-width: 0;
    display: grid;
    gap: var(--space-4);
}

.import-shell .section-card > .eyebrow {
    margin-bottom: var(--space-1);
}

.import-upload {
    margin-top: var(--space-3);
    display: grid;
    gap: var(--space-3);
}

.import-upload input[type="file"] {
    width: 100%;
    padding: var(--space-3);
    border: 1px dashed var(--green);
    background: var(--green-soft);
}

.import-example-download {
    width: 100%;
    margin-top: var(--space-2);
}

.import-example-help {
    margin-top: var(--space-2);
    border-top: 1px solid var(--line);
}

.import-example-help summary {
    min-height: 48px;
    padding: var(--space-3) 0;
    display: flex;
    align-items: center;
    color: var(--green);
    font-weight: 700;
    cursor: pointer;
}

.import-example-help > div {
    padding: var(--space-1) 0 var(--space-2);
}

.import-example-help p {
    margin: 0;
    color: var(--muted);
    font-size: .88rem;
}

.import-note {
    margin: 0;
    padding: var(--space-4);
    border-left: 3px solid var(--green);
    background: var(--green-soft);
}

.import-note.warning {
    border-left-color: var(--amber);
    background: var(--amber-soft);
}

.import-attempts {
    margin: var(--space-3) 0 0;
    padding: 0;
    display: grid;
    gap: var(--space-2);
    list-style: none;
}

.import-attempts a {
    min-height: 44px;
    padding: var(--space-3);
    display: grid;
    gap: .2rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-control);
    background: var(--surface);
    color: inherit;
    text-decoration: none;
}

.import-attempts a[aria-current="page"] {
    border-color: var(--green);
    background: var(--green-soft);
}

.import-attempts span,
.import-meta small {
    color: var(--muted);
}

.import-meta {
    margin: var(--space-4) 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
}

.import-meta > div,
.import-module {
    padding: var(--space-3);
    border: 1px solid var(--line);
    border-radius: var(--radius-control);
    background: var(--surface-soft);
}

.import-meta strong,
.import-meta small {
    display: block;
}

.import-hash {
    overflow-wrap: anywhere;
    font: 600 .78rem/1.45 ui-monospace, SFMono-Regular, monospace;
}

.import-modules {
    margin: var(--space-4) 0;
    display: grid;
    gap: var(--space-3);
}

.import-module label {
    min-height: 48px;
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
}

.import-module input,
.import-warning input,
.import-confirm input {
    width: 1.1rem;
    height: 1.1rem;
    flex: 0 0 auto;
    margin-top: .15rem;
}

.import-module strong,
.import-module span {
    display: block;
}

.import-module span {
    margin-top: .25rem;
    color: var(--muted);
    font-size: .87rem;
}

.import-warnings {
    margin: var(--space-4) 0;
    display: grid;
    gap: var(--space-2);
}

.import-warning,
.import-confirm {
    padding: var(--space-3);
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    border: 1px solid var(--amber);
    background: var(--amber-soft);
}

.import-warning.informational {
    border-color: var(--line);
    background: var(--surface-soft);
}

.import-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
}

.import-state {
    padding: .3rem .55rem;
    display: inline-flex;
    background: var(--surface-soft);
    font-size: .78rem;
    font-weight: 700;
}

.import-state.applied {
    background: var(--green-soft);
    color: var(--green-deep);
}

.import-state.rejected,
.import-state.failed {
    background: var(--amber-soft);
}

@media (max-width: 72rem) {
    .import-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 52rem) {
    .import-meta {
        grid-template-columns: 1fr;
    }
}

/* ---------------------------------------------------------------------------
   Einstellungen: Vertrag & Abrechnung, Daten und Löschung
--------------------------------------------------------------------------- */
.settings-workspace .contract-status-header {
    min-height: 0;
    padding: var(--space-4) var(--space-5);
}

.settings-workspace .contract-next-action {
    padding: var(--space-5);
}

.settings-workspace .contract-empty {
    min-height: 0;
}

.settings-workspace .lifecycle-facts strong {
    font-size: 1rem;
}

/* ---------------------------------------------------------------------------
   Start (/start)
--------------------------------------------------------------------------- */
.onboarding-start .onboarding-heading {
    margin-bottom: var(--space-6);
}

.onboarding-start .onboarding-heading h1 {
    max-width: none;
}

.onboarding-start .onboarding-heading > .button {
    flex: none;
    white-space: nowrap;
}

.onboarding-start .start-choice > summary {
    min-height: 72px;
    padding: var(--space-3) var(--space-4);
}

.onboarding-start .start-choice-copy strong {
    font-size: 1.15rem;
}

.onboarding-start .start-choice-panel {
    padding: var(--space-5) var(--space-4) var(--space-6) 4.9rem;
    gap: var(--space-6);
}

.onboarding-start .start-panel-heading h2,
.onboarding-start .onboarding-demo h2,
.onboarding-start .sample-option h2,
.onboarding-start .invitation-code-option h2,
.onboarding-start .onboarding-invitations.priority > div > h2 {
    font-size: 1.3rem;
}

.onboarding-start .onboarding-footer {
    margin-top: var(--space-8);
}

@media (max-width: 54rem) {
    .onboarding-start .start-choice-panel {
        padding-left: var(--space-4);
    }
}

/* ---------------------------------------------------------------------------
   Geführte Einrichtung (/app/einrichtung)
--------------------------------------------------------------------------- */
.setup-page {
    max-width: 82rem;
    margin: 0;
}

.setup-page .setup-complete {
    margin: 0;
}

.setup-page .setup-workspace {
    grid-template-columns: minmax(16rem, 19rem) minmax(0, 1fr);
    gap: var(--space-5);
}

.setup-page .setup-rail {
    border-radius: var(--radius-surface);
}

.setup-page .setup-rail-heading {
    padding: var(--space-4);
    display: grid;
    gap: var(--space-1);
}

.setup-page .setup-rail-heading h2 {
    font-size: 1.05rem;
}

.setup-page .setup-rail-heading p {
    margin: 0;
    color: var(--muted);
    font-size: .84rem;
}

.setup-page .setup-rail-heading strong {
    color: var(--ink);
}

.setup-page .setup-rail-heading progress {
    width: 100%;
    height: .35rem;
    display: block;
    margin-top: var(--space-1);
    accent-color: var(--green);
}

/* Schrittfolge als Navigation: die Zeile ist ein Link mit 44-Pixel-Ziel */
.setup-page .setup-navigation {
    padding: var(--space-2);
}

.setup-page .step-flow.setup-navigation > li {
    padding: 0 0 0 var(--space-2);
    grid-template-columns: 1.7rem minmax(0, 1fr);
}

.setup-page .setup-navigation > li > a {
    min-width: 0;
    min-height: 44px;
    padding: var(--space-2) var(--space-2) var(--space-2) 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-2);
    border-radius: var(--radius-control);
    color: inherit;
    text-decoration: none;
}

.setup-page .setup-navigation > li > a > span,
.setup-page .setup-navigation > li > a small {
    display: block;
    min-width: 0;
}

.setup-page .setup-navigation > li > a > span {
    font-size: .9rem;
    font-weight: 700;
}

.setup-page .setup-navigation > li > a small {
    margin-top: .1rem;
    color: var(--muted);
    font-size: .74rem;
    font-weight: 400;
    line-height: 1.35;
}

.setup-page .setup-navigation > li > a em {
    color: var(--muted);
    font-size: .7rem;
    font-style: normal;
    font-weight: 700;
    text-transform: uppercase;
}

.setup-page .setup-navigation > li.is-done > a em {
    color: var(--green);
}

.setup-page .setup-navigation > li > a:hover {
    background: var(--surface-soft);
}

.setup-page .setup-navigation > li > a[aria-current="step"] {
    background: transparent;
    box-shadow: none;
}

/* Aktueller Schritt folgt aria-current, damit der Wechsel per Skript und ohne Skript gleich aussieht */
.setup-page .setup-navigation > li:has(> a[aria-current="step"]) {
    background: var(--green-soft);
    color: var(--green-deep);
}

.setup-page .setup-navigation > li:has(> a[aria-current="step"])::before {
    border-color: var(--green);
    background: var(--green);
    color: #fff;
}

.setup-page .setup-navigation > li.is-done:has(> a[aria-current="step"])::before {
    background: var(--green);
    color: #fff;
}

.setup-page .setup-navigation > li:has(> a[aria-current="step"]) > a em {
    color: var(--green-deep);
}

.setup-page .setup-rail-note {
    padding: var(--space-3) var(--space-4);
}

.setup-page .setup-task {
    border-radius: var(--radius-surface);
}

.setup-page .setup-task-heading {
    padding: var(--space-4) var(--space-5);
}

.setup-page .setup-task-heading h2 {
    max-width: none;
    font-size: 1.3rem;
    letter-spacing: -.01em;
}

.setup-page .setup-task-heading p:not(.eyebrow) {
    margin-top: var(--space-1);
    font-size: .92rem;
}

.setup-page .setup-task-heading .eyebrow {
    margin-bottom: var(--space-1);
}

.setup-page .setup-task-body {
    padding: var(--space-4) var(--space-5);
}

.setup-page .setup-basics-form {
    padding: 0 var(--space-5) var(--space-5);
}

.setup-page .setup-form-group {
    margin-top: var(--space-3);
    padding-top: var(--space-4);
}

.setup-page .setup-task-actions {
    padding: var(--space-3) var(--space-5);
    align-items: center;
}

.setup-page .setup-basics-form > .setup-task-actions {
    margin: var(--space-4) 0 0;
    padding: 0;
}

.setup-page .setup-task-actions .text-button {
    font-weight: 700;
}

.setup-page .setup-footer {
    border-radius: var(--radius-surface);
}

@media (max-width: 54rem) {
    .setup-page .setup-workspace {
        grid-template-columns: 1fr;
    }

    .setup-page .setup-navigation {
        display: grid;
        grid-template-columns: 1fr;
    }

    .setup-page .setup-navigation li + li {
        border-top: 0;
    }

    .setup-page .setup-navigation li:nth-child(even),
    .setup-page .setup-navigation li:nth-child(n+3) {
        border-top: 0;
        border-left: 0;
    }

    .setup-page .setup-navigation li:last-child {
        grid-column: auto;
    }

    .setup-page .setup-task-heading,
    .setup-page .setup-task-body,
    .setup-page .setup-task-actions {
        padding-inline: var(--space-4);
    }

    .setup-page .setup-basics-form {
        padding-inline: var(--space-4);
    }

    .setup-page .setup-task-actions > .button,
    .setup-page .setup-task-actions > button {
        width: 100%;
    }

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