:root {
    --bg: #f5f7f8;
    --surface: #ffffff;
    --surface-soft: #eef3f2;
    --text: #182422;
    --muted: #60706c;
    --line: #dbe3e1;
    --primary: #0f6b5f;
    --primary-dark: #0a4c44;
    --accent: #b3365b;
    --warning: #a66b00;
    --danger: #a12b2b;
    --shadow: 0 10px 30px rgba(24, 36, 34, .08);
    --content-max: 2320px;
    --content-gutter: 48px;
    --section-submenu-height: 0px;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Native document navigation: an indeterminate overlay, never part of layout. */
.page-loading {
    position: fixed;
    z-index: 2147483647;
    inset: 0 0 auto;
    height: 2px;
    overflow: hidden;
    pointer-events: none;
    background: var(--primary);
}
.page-loading[hidden] { display: none; }
.page-loading::after {
    content: "";
    display: block;
    width: 35%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .65), transparent);
    animation: page-loading-wait 1.2s linear infinite;
}
@keyframes page-loading-wait {
    from { transform: translateX(-100%); }
    to { transform: translateX(290%); }
}
@media (prefers-reduced-motion: reduce) {
    .page-loading::after { animation: none; background: none; transform: none; }
}

/* Online-Veranstaltung */
.event-online-event { display:grid; gap:.7rem; padding:.68rem; border:1px solid #c8d9e8; border-radius:10px; background:#f7fbff; box-shadow:inset 3px 0 0 #326998; }
.event-online-format { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.48rem; margin:0; padding:0; border:0; }
.event-online-format legend { grid-column:1/-1; margin:0 0 .1rem; color:#28557e; font-size:12.5px; font-weight:800; }
.event-online-format > label { position:relative; display:block; min-width:0; padding:.62rem .68rem; border:1px solid #cedce8; border-radius:8px; background:#fff; cursor:pointer; }
.event-online-format > label:hover { border-color:#86b2d9; background:#f7fbff; }
.event-online-format > label.is-selected { border-color:#326998; background:#edf5fc; box-shadow:0 0 0 1px #326998; }
.event-online-format > label:has(input:focus-visible) { outline:2px solid #326998; outline-offset:2px; }
.event-online-format input { position:absolute; inline-size:1px; block-size:1px; opacity:0; }
.event-online-format span { display:grid; gap:.16rem; }
.event-online-format strong { color:#244f76; font-size:13px; }
.event-online-format small { color:#637b91; font-size:10.5px; line-height:1.25; }
.event-online-audience-link { display:grid !important; gap:.28rem; color:#28557e; font-weight:750; }
.event-online-audience-link input,.event-online-restream input,.event-online-options input[type="datetime-local"] { width:100%; background:#fff; }
.event-online-restream { display:grid; gap:.55rem; padding:.62rem; border:1px solid #d6e3ee; border-radius:8px; background:#fff; }
.event-online-section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:.6rem; color:#28557e; }
.event-online-section-heading span { display:grid; gap:.1rem; }
.event-online-section-heading small { color:#6a7d8e; font-size:10.5px; font-weight:500; }
.event-online-test-dates { display:grid; gap:.4rem; }
.event-online-test-dates > strong { color:#315f83; font-size:12px; }
[data-event-online-test-date-rows] { display:grid; gap:.35rem; }
.event-online-test-date-row { display:grid; grid-template-columns:20px minmax(0,320px) 30px; gap:.4rem; align-items:center; }
.event-online-test-date-row .icon { width:16px; height:16px; color:#326998; }
.event-online-test-date-row input { min-height:34px; font-variant-numeric:tabular-nums; }
.event-online-test-date-row .icon-button { width:28px; height:28px; color:#8a5260; font-size:17px; }
.event-online-test-date-add { justify-self:start; }
.event-online-options { display:grid; grid-template-columns:minmax(220px,1fr) minmax(220px,1fr); gap:.65rem; align-items:end; }
.event-online-options > label { display:grid; gap:.24rem; }
.event-online-options label small { color:var(--muted); font-size:10.5px; }
.event-online-options .event-online-public { display:flex; align-items:center; min-height:40px; padding:.55rem .62rem; border:1px solid #d4e1ec; border-radius:8px; color:#28557e; background:#fff; font-weight:750; }
.event-online-public input { width:18px; height:18px; margin:0 .5rem 0 0; accent-color:#326998; }
.event-online-recording-delete { display:grid; gap:.3rem; }
.event-online-recording-delete > label:first-child { display:grid; gap:.24rem; color:#28557e; font-weight:750; }
.event-online-recording-delete > small { color:var(--muted); font-size:10.5px; }
.event-online-recording-reminder { display:flex; align-items:center; gap:.38rem; color:#315f83; font-size:11px; font-weight:750; }
.event-online-recording-reminder input { width:17px; height:17px; margin:0; accent-color:#326998; }
.event-online-recording-reminder:has(input:disabled) { color:#82909b; }
.event-node-stream-visibility { display:inline-flex; align-items:center; justify-content:center; max-width:132px; padding:.14rem .42rem; border:1px solid #c5d2dc; border-radius:999px; color:#536875; background:#f4f7f9; font-size:9.5px; font-weight:850; line-height:1.2; text-align:center; white-space:nowrap; }
.event-node-stream-visibility.is-public { border-color:#8fc9ad; color:#17623f; background:#eaf7f0; }
.event-node-stream-visibility.is-internal { border-color:#b8c9d7; color:#405e73; background:#eef4f8; }
.event-node-value-preview--online_event { border-left-color:#326998; background:#f5faff; }
.event-node-value-preview--online_event .event-node-value-label { color:#28557e; }
.event-readonly-online-event { display:grid; gap:.55rem; padding:.68rem; border:1px solid #c8d9e8; border-radius:9px; background:#f7fbff; }
.event-readonly-online-event > strong { color:#28557e; }
.event-readonly-online-event dl { display:grid; gap:.38rem; margin:0; }
.event-readonly-online-event dl > div { display:grid; grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr); gap:.55rem; }
.event-readonly-online-event dt { color:#637b91; font-size:11px; font-weight:750; }
.event-readonly-online-event dd { min-width:0; margin:0; overflow-wrap:anywhere; }
.event-readonly-online-tests ul { display:flex; flex-wrap:wrap; gap:.35rem; margin:.28rem 0 0; padding:0; list-style:none; }
.event-readonly-online-tests li { padding:.25rem .45rem; border-radius:6px; color:#28557e; background:#eaf3fb; font-size:12px; font-weight:700; }
.event-package-preview-online-format { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.3rem; }
.event-package-preview-online-format > strong { grid-column:1/-1; }
.event-package-preview-online-format > span { padding:.38rem; border:1px solid #d4e1ec; border-radius:6px; text-align:center; }
.event-package-preview-online-format > span.is-selected { border-color:#326998; color:#28557e; background:#edf5fc; font-weight:800; }
.event-package-preview-online-restream { display:grid; gap:.35rem; padding:.48rem; border:1px solid #d6e3ee; border-radius:7px; background:#fff; }
.event-package-preview-online-restream > span { display:grid; gap:.06rem; color:#536b80; }
.event-package-preview-online-restream small,.event-package-preview-online-options small { color:#28557e; font-weight:750; }
.event-package-preview-online-options { display:grid; grid-template-columns:1fr 1fr; gap:.4rem; }
.event-package-preview-online-options > span { display:grid; gap:.1rem; padding:.4rem; border:1px solid #d6e3ee; border-radius:7px; background:#fff; }
.event-package-preview-online-options i { display:inline-block; width:13px; height:13px; margin-right:.25rem; border:1px solid #8aa8c2; border-radius:3px; vertical-align:-2px; }

@media (max-width:760px) {
    .event-online-format,.event-online-options,.event-package-preview-online-format,.event-package-preview-online-options { grid-template-columns:1fr; }
    .event-online-format legend,.event-package-preview-online-format > strong { grid-column:auto; }
    .event-readonly-online-event dl > div { grid-template-columns:1fr; gap:.08rem; }
}

/* Microsoft Teams */
.teams-heading {
    align-items: center;
}

.teams-eyebrow {
    display: inline-block;
    margin-bottom: .35rem;
    color: #5b5fc7;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.teams-connection-state {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .65rem .9rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface);
    font-size: .86rem;
    font-weight: 700;
}

.teams-connection-dot {
    width: .65rem;
    height: .65rem;
    border-radius: 50%;
    background: #b42318;
    box-shadow: 0 0 0 3px rgb(180 35 24 / 12%);
}

.teams-connection-state.is-connected .teams-connection-dot {
    background: #16803c;
    box-shadow: 0 0 0 3px rgb(22 128 60 / 12%);
}

.teams-config-panel,
.teams-meeting-result {
    margin-bottom: 1rem;
}

.teams-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(22rem, .9fr);
    gap: 1rem;
    align-items: start;
}

.teams-browser-panel,
.teams-meeting-panel {
    min-width: 0;
}

.teams-selector-form {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) auto;
    gap: .75rem;
    align-items: end;
    margin-bottom: 1rem;
}

.teams-selector-form label,
.teams-meeting-form label {
    display: grid;
    gap: .35rem;
}

.teams-selector-form label > span,
.teams-meeting-form label > span {
    font-size: .84rem;
    font-weight: 700;
}

.teams-selection-summary,
.teams-organizer-note {
    display: grid;
    gap: .2rem;
    margin: .25rem 0 1rem;
    padding: .8rem .9rem;
    border-left: 3px solid #5b5fc7;
    background: rgb(91 95 199 / 7%);
    border-radius: 0 10px 10px 0;
}

.teams-selection-summary span,
.teams-organizer-note span {
    color: var(--muted);
    font-size: .82rem;
}

.teams-message-heading {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: start;
    margin: 1.25rem 0 .75rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.teams-message-heading h3,
.teams-message-heading p {
    margin: 0;
}

.teams-message-heading p {
    margin-top: .25rem;
    color: var(--muted);
}

.teams-message-list {
    display: grid;
    gap: .7rem;
}

.teams-message {
    padding: .85rem .95rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface-raised, #fff);
}

.teams-message header {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    color: var(--muted);
    font-size: .82rem;
}

.teams-message header strong {
    color: var(--text);
}

.teams-message h4 {
    margin: .55rem 0 .25rem;
}

.teams-message p {
    margin: .45rem 0;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.teams-message a {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: .35rem;
    color: #4f52b2;
    font-size: .84rem;
    font-weight: 700;
}

.teams-message a .icon {
    width: 1rem;
    height: 1rem;
}

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

.inline-alert {
    margin-bottom: 1rem;
    padding: .75rem .85rem;
    border: 1px solid #f2c94c;
    border-radius: 10px;
    background: #fff9db;
    color: #684f00;
}

.empty-state {
    padding: 1rem;
    border: 1px dashed var(--line);
    border-radius: 10px;
    color: var(--muted);
    text-align: center;
}

@media (max-width: 1050px) {
    .teams-workspace {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 650px) {
    .teams-selector-form,
    .teams-meeting-form .form-grid {
        grid-template-columns: 1fr;
    }

    .teams-heading,
    .teams-message-heading,
    .teams-message header {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Bereichs-Unterseiten */
.section-submenu {
    position: sticky;
    z-index: 9;
    top: 68px;
    display: grid;
    grid-template-columns: repeat(var(--section-submenu-columns, 4), minmax(0, 1fr));
    gap: 5px;
    width: 100%;
    margin: 0;
    padding: 5px max(var(--content-gutter), calc((100vw - var(--content-max)) / 2));
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    background: rgba(238, 243, 242, .97);
    box-shadow: 0 4px 12px rgba(24, 36, 34, .07);
    backdrop-filter: blur(10px);
}

.section-submenu-item {
    display: flex;
    min-height: 44px;
    padding: 5px 9px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: var(--text);
    border: 1px solid var(--line);
    border-radius: 7px;
    background: var(--surface);
    transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}

.section-submenu-item:hover,
.section-submenu-item:focus-visible {
    color: var(--primary-dark);
    border-color: #7eb8ad;
    background: #f8fcfb;
    text-decoration: none;
}

.section-submenu-item.is-active {
    color: var(--primary-dark);
    border-color: #67aa9e;
    background: #e4f3f0;
    box-shadow: inset 0 -3px 0 var(--primary);
}

.section-submenu-item .icon {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
    color: var(--primary);
}

.section-submenu-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0;
}

.section-submenu-copy strong {
    font-size: 14.4px;
    line-height: 1.2;
}

.section-submenu-copy small {
    color: var(--muted);
    font-size: 10.8px;
    line-height: 1.2;
}

@media (max-width: 1100px) {
    .section-submenu {
        top: 106px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .section-submenu {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (hover: none) and (pointer: coarse) and (max-width: 1400px) {
    .section-submenu { top: var(--app-header-height, 62px); }
}

@media (max-width: 700px), (max-width: 1000px) and (max-height: 600px) {
    .section-submenu {
        position: sticky;
        top: var(--app-header-height, 62px);
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: minmax(178px, 82vw);
        overflow-x: auto;
        overflow-y: hidden;
        padding: 6px max(var(--content-gutter), env(safe-area-inset-right)) 6px max(var(--content-gutter), env(safe-area-inset-left));
        overscroll-behavior-inline: contain;
        scroll-padding-inline: var(--content-gutter);
        scroll-snap-type: x proximity;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .section-submenu::-webkit-scrollbar { display:none; }
    .section-submenu-item { min-height:44px;justify-content:flex-start;scroll-snap-align:start; }
    .section-submenu-copy small { font-size:12px; }
}

/* Mitarbeiter */
.staff-month-filter,.staff-admin-filter { display:flex;align-items:end;gap:12px; }
.staff-month-filter label,.staff-admin-filter label { margin:0; }
.staff-summary-grid { display:grid;grid-template-columns:minmax(240px,360px);gap:16px;margin-bottom:18px; }
.staff-summary-grid .metric { min-height:130px; }
.staff-time-form,.staff-absence-form,.staff-profile-form { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:12px; }
.staff-profile-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
.staff-time-form .wide,.staff-absence-form .wide,.staff-profile-form .wide { grid-column:span 2; }
.staff-time-form .button,.staff-absence-form .button { min-height:42px;justify-content:center; }
.staff-break-input { min-width:82px;max-width:110px; }
.staff-time-table input { min-width:110px; }
.staff-time-table td:nth-child(6) input { min-width:190px; }
.staff-document-list { display:grid;gap:10px; }
.staff-document-list.compact { margin-top:16px; }
.staff-document-card { display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;color:var(--text);background:var(--surface); }
.staff-document-card:hover,.staff-document-card:focus-visible { border-color:#7eb8ad;text-decoration:none;box-shadow:0 5px 15px rgba(24,36,34,.07); }
.staff-document-card.is-superseded { opacity:.68;background:var(--surface-soft); }
.staff-document-card small,.staff-document-card strong { display:block; }
.staff-document-card small { margin-top:3px;color:var(--muted); }
.staff-document-icon { display:grid;place-items:center;width:38px;height:38px;border-radius:9px;color:var(--primary);background:var(--surface-soft); }
.staff-document-icon .icon { width:21px;height:21px; }
.staff-account-data { max-width:760px; }
.staff-status-approved { color:#176b3a;background:#e5f6ec; }
.staff-status-rejected { color:var(--danger);background:#fae9e9; }
.staff-status-open,.staff-status-reported { color:#765000;background:#fff3d3; }
.staff-status-cancelled { color:var(--muted);background:var(--surface-soft); }
.staff-admin-layout { display:grid; grid-template-columns:minmax(250px,310px) minmax(0,1fr); gap:18px; align-items:start; scroll-margin-top:90px; }
.staff-admin-sidebar { position:sticky; top:calc(var(--app-header-height,68px) + 12px); min-width:0; padding:0; overflow:hidden; }
.staff-admin-sidebar-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:16px 17px 12px; }
.staff-admin-sidebar-heading>div { display:flex; align-items:flex-start; gap:8px; min-width:0; }
.staff-admin-sidebar-heading .icon { width:18px; height:18px; margin-top:1px; flex:none; color:var(--primary); }
.staff-admin-sidebar-heading span span,.staff-admin-sidebar-heading strong,.staff-admin-sidebar-heading small { display:block; }
.staff-admin-sidebar-heading small { margin-top:2px; color:var(--muted); font-size:.75rem; font-weight:500; }
.staff-admin-employee-list { padding:0 10px; }
.staff-admin-employee-list ul { display:grid; max-height:58vh; margin:0; padding:0; overflow-y:auto; list-style:none; }
.staff-admin-employee-list li { min-width:0; border-top:1px solid #edf1f0; }
.staff-admin-employee-list li>a { position:relative; display:grid; gap:2px; min-height:42px; padding:8px 10px 8px 19px; border-radius:7px; color:inherit; text-decoration:none; overflow-wrap:anywhere; }
.staff-admin-employee-list li>a::before { position:absolute; top:15px; left:9px; width:5px; height:5px; border-radius:50%; background:#78aca3; content:""; }
.staff-admin-employee-list li>a:hover { color:var(--primary); background:#f0f7f5; }
.staff-admin-employee-list li>a.is-active { color:var(--primary); background:#e5f2ef; font-weight:800; box-shadow:inset 3px 0 var(--primary); }
.staff-admin-employee-list li>a small { color:var(--muted); font-size:.72rem; font-weight:500; }
.staff-admin-employee-list li.is-empty { padding:10px 8px; color:var(--muted); font-size:.82rem; font-style:italic; }
.staff-admin-sidebar-filter { margin:12px 0 0; padding:14px 17px 17px; border-top:1px solid var(--line); background:#f8faf9; }
.staff-admin-sidebar-filter label { margin:0; }
.staff-admin-main { display:grid; min-width:0; gap:18px; }
.staff-admin-main>.panel,.staff-admin-sidebar.panel { margin-bottom:0; }
.staff-admin-context { display:flex; align-items:center; justify-content:space-between; gap:14px; border-color:#a9cbc5; background:linear-gradient(135deg,#eef8f5,#fff 70%); }
.staff-admin-context>div { display:flex; align-items:center; gap:12px; min-width:0; }
.staff-admin-context-icon { display:grid; width:42px; height:42px; flex:none; place-items:center; border-radius:10px; color:var(--primary); background:#dcefeb; }
.staff-admin-context-icon .icon { width:22px; height:22px; }
.staff-admin-context small { color:var(--muted); font-size:.7rem; font-weight:750; letter-spacing:.04em; text-transform:uppercase; }
.staff-admin-context h2 { margin:1px 0 0; color:var(--primary-dark); font-size:1.12rem; }
.staff-admin-context p { margin:2px 0 0; color:var(--muted); font-size:.8rem; overflow-wrap:anywhere; }
.staff-decision-form { display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:7px;align-items:center; }
.staff-admin-sensitive-grid { align-items:start; }
.payroll-batch-panel { scroll-margin-top:90px; }
.payroll-batch-panel .panel-heading .badge { display:inline-flex;align-items:center;gap:6px;white-space:nowrap; }
.payroll-batch-panel .panel-heading .badge .icon { width:15px;height:15px; }
.payroll-batch-form { display:grid;gap:16px; }
.payroll-collective-toggle { display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:11px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);cursor:pointer; }
.payroll-collective-toggle input[type="checkbox"] { width:18px;min-width:18px;height:18px;margin:2px 0 0;justify-self:start; }
.payroll-collective-toggle span { min-width:0; }
.payroll-collective-toggle span,.payroll-collective-toggle strong,.payroll-collective-toggle small { display:block; }
.payroll-collective-toggle small { margin-top:3px;color:var(--muted);font-weight:500; }
.payroll-collective-toggle:has(input:checked) { border-color:#8eb5ad;background:#eef8f5;box-shadow:inset 3px 0 0 var(--primary); }
.payroll-batch-picker { display:grid;gap:7px; }
.payroll-batch-picker input[type="file"] { padding:13px;border:1px dashed #8eb5ad;border-radius:10px;background:#f7fbfa; }
.payroll-batch-picker small { color:var(--muted);font-weight:500; }
.payroll-batch-state { margin:0; }
.payroll-batch-preview { display:grid;gap:13px;padding-top:16px;border-top:1px solid var(--line); }
.payroll-batch-preview-heading { display:flex;align-items:start;justify-content:space-between;gap:16px; }
.payroll-batch-preview-heading h3,.payroll-batch-preview-heading p { margin:0; }
.payroll-batch-preview-heading p { margin-top:4px;color:var(--muted); }
.payroll-batch-result { display:grid; gap:12px; margin-top:18px; padding:15px; border:1px solid #9bc9b0; border-radius:10px; background:#f0faf4; }
.payroll-batch-result[hidden] { display:none; }
.payroll-batch-state.is-error { color:#9b2525; font-weight:700; }
.payroll-batch-result-heading { display:flex; align-items:flex-start; gap:9px; color:#176b3a; }
.payroll-batch-result-heading>.icon { width:21px; height:21px; flex:none; }
.payroll-batch-result-heading span,.payroll-batch-result-heading strong,.payroll-batch-result-heading small { display:block; }
.payroll-batch-result-heading small { margin-top:2px; color:#47705a; }
.payroll-batch-result table { min-width:720px; background:#fff; }
.payroll-batch-preview td:first-child { min-width:260px; }
.payroll-batch-preview td:first-child strong,.payroll-batch-preview td:first-child small { display:block;overflow-wrap:anywhere; }
.payroll-batch-preview td:first-child small { margin-top:3px;color:var(--muted); }
.payroll-batch-preview select { min-width:260px; }
.payroll-batch-preview input[type="month"] { min-width:160px; }
.payroll-assignment-status { display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:750;white-space:nowrap; }
.payroll-assignment-status.is-ready { color:#176b3a;background:#e5f6ec; }
.payroll-assignment-status.is-open { color:#765000;background:#fff3d3; }
.payroll-batch-confirm { display:flex;align-items:center;justify-content:flex-end;gap:18px;padding:15px;border:1px solid #b8d6d0;border-radius:10px;background:#f1f9f7; }
.payroll-batch-confirm > div { margin-right:auto; }
.payroll-batch-confirm strong,.payroll-batch-confirm small { display:block; }
.payroll-batch-confirm small { margin-top:3px;color:var(--muted); }
.payroll-batch-confirm .check-inline { margin:0;white-space:nowrap; }
.payroll-batch-confirm [data-payroll-batch-submit] { min-width:220px;justify-content:center; }
.staff-directory-create-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px; }
.staff-directory-create-card { padding:18px;border:1px solid var(--line);border-radius:12px;background:#fbfcfc; }
.staff-directory-create-card h3,.staff-directory-create-card > p { margin-top:0; }
.staff-directory-create-card form { margin-top:18px; }
.staff-account-link-fieldset { display:grid;gap:10px;margin:0;padding:14px;border:1px solid var(--line);border-radius:10px; }
.staff-account-link-fieldset > label { display:grid;gap:7px; }
.staff-account-link-fieldset small { color:var(--muted);font-weight:500; }
.staff-account-type-options,.staff-directory-types { display:flex;align-items:center;flex-wrap:wrap;gap:14px; }
.staff-account-type-options .check-inline { margin:0; }
.staff-directory-table td:first-child strong,.staff-directory-table td:first-child small { display:block; }
.staff-directory-table td:first-child small { margin-top:3px;color:var(--muted); }
.staff-directory-table .badge .icon { width:14px;height:14px; }
.staff-directory-table .badge.success { color:#176b3a;background:#e5f6ec; }
.staff-directory-table .badge.warning { color:#765000;background:#fff3d3; }
.employer-payroll-upload { display:grid;grid-template-columns:minmax(170px,220px) minmax(180px,230px) minmax(260px,1fr) auto;align-items:end;gap:12px;margin-bottom:20px; }
.employer-payroll-upload label { margin:0; }
.employer-payroll-upload .button { min-height:42px;justify-content:center; }
.payroll-year-groups,.employer-payroll-years { display:grid;gap:12px; }
.payroll-year-group { position:relative;min-width:0; }
.payroll-year-details { overflow:hidden;border:1px solid var(--line);border-radius:11px;background:var(--surface); }
.payroll-year-details > summary { display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;cursor:pointer;list-style:none;background:var(--surface-soft); }
.payroll-year-details > summary::-webkit-details-marker { display:none; }
.payroll-year-details > summary > span:first-child { display:flex;align-items:baseline;gap:9px; }
.payroll-year-details > summary strong { font-size:1rem; }
.payroll-year-details > summary small { color:var(--muted);font-size:.78rem;font-weight:650; }
.payroll-year-toggle { display:grid;place-items:center;color:var(--muted);transition:transform .18s ease; }
.payroll-year-toggle .icon { width:18px;height:18px; }
.payroll-year-details[open] .payroll-year-toggle { transform:rotate(180deg); }
.payroll-year-body { padding:12px; }
.payroll-year-group .payroll-year-details > summary { position:relative;padding-right:250px; }
.payroll-year-group .payroll-year-toggle { position:absolute;right:16px; }
.payroll-year-download { position:absolute;z-index:2;top:7px;right:46px;white-space:nowrap; }
.payroll-year-download.is-disabled { cursor:not-allowed;opacity:.48; }
@media (max-width: 700px) {
    .payroll-year-group .payroll-year-details > summary { min-height:90px;padding:13px 44px 49px 14px;align-items:flex-start; }
    .payroll-year-group .payroll-year-toggle { top:14px;right:14px; }
    .payroll-year-group .payroll-year-download { top:47px;right:12px;left:12px;justify-content:center; }
}
.employer-payroll-year { display:grid;gap:9px; }
.employer-payroll-document { display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface); }
.employer-payroll-document.is-superseded { background:var(--surface-soft);opacity:.76; }
.employer-payroll-document-copy strong,.employer-payroll-document-copy small { display:block; }
.employer-payroll-document-copy small { margin-top:3px;color:var(--muted);overflow-wrap:anywhere; }
.employer-payroll-document-actions { display:flex;align-items:center;gap:7px; }
.employer-payroll-document-actions form { margin:0; }

.staff-time-heading { align-items:center; }
.staff-year-tabs { display:flex; align-items:center; gap:7px; }
.staff-year-tabs .button { min-width:72px; justify-content:center; }
.staff-time-summary-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
@media (min-width: 1001px) {
    .staff-time-summary-grid.has-five-card-second-row { grid-template-columns:repeat(20,minmax(0,1fr)); }
    .staff-time-summary-grid.has-five-card-second-row>.metric { grid-column:span 5; }
    .staff-time-summary-grid.has-five-card-second-row>.metric:nth-child(n+5) { grid-column:span 4; }
}
.staff-time-summary-grid .metric { min-height:126px; }
.staff-time-summary-grid .metric strong { font-variant-numeric:tabular-nums; }
.staff-time-account-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.staff-time-account-summary article { display:grid; gap:4px; min-height:100px; padding:16px; border:1px solid var(--line); border-radius:10px; background:var(--surface-soft); }
.staff-time-account-summary span { color:var(--muted); font-size:.72rem; font-weight:750; text-transform:uppercase; }
.staff-time-account-summary strong { font-size:1.25rem; font-variant-numeric:tabular-nums; }
.staff-time-account-summary small { color:var(--muted); }
.staff-time-account-uninitialized { display:flex; align-items:flex-start; gap:12px; border-color:#e7c272; background:#fffaf0; }
.staff-time-account-uninitialized>.icon { width:24px; flex:none; color:#8a5b00; }
.staff-time-account-uninitialized h2 { margin:0 0 4px; }
.staff-time-account-uninitialized p { margin:0; color:var(--muted); }
.staff-time-planned-start { display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:14px; margin-top:2px; padding:16px 18px; border:1px solid #b9d9d2; border-radius:12px; background:#f1f8f6; }
.staff-time-planned-start-icon { display:grid; width:40px; height:40px; place-items:center; border-radius:50%; color:var(--primary); background:#dcefeb; }
.staff-time-planned-start-icon .icon { width:20px; height:20px; }
.staff-time-planned-start-copy { min-width:0; }
.staff-time-planned-start-copy strong { display:block; margin-bottom:4px; font-size:1rem; }
.staff-time-planned-start-copy p { margin:0; color:var(--text); line-height:1.45; }
.staff-time-planned-start-copy small { display:block; margin-top:4px; color:var(--muted); }
.staff-time-planned-start-balance { display:grid; gap:2px; min-width:112px; padding-left:18px; border-left:1px solid var(--line); text-align:right; }
.staff-time-planned-start-balance small { color:var(--muted); font-size:.7rem; font-weight:750; text-transform:uppercase; letter-spacing:.03em; }
.staff-time-planned-start-balance strong { color:var(--primary); font-size:1.3rem; font-variant-numeric:tabular-nums; white-space:nowrap; }
.staff-time-account-form { display:grid; grid-template-columns:minmax(180px,260px) minmax(220px,320px); align-items:end; gap:12px; margin:0 0 18px; padding:15px; border:1px solid var(--line); border-radius:10px; background:var(--surface-soft); }
.staff-time-account-form .wide,.staff-time-account-form .form-actions { grid-column:1/-1; }
.staff-time-account-week-table { min-width:820px; }
.staff-time-account-week-table td>small { display:block; margin-top:3px; color:var(--muted); }
.staff-time-balance.is-positive strong,.staff-time-day-metrics .is-positive,.staff-time-week-numbers .is-positive,.staff-time-live-summary .is-positive { color:#08715f; }
.staff-time-balance.is-negative strong,.staff-time-day-metrics .is-negative,.staff-time-week-numbers .is-negative,.staff-time-live-summary .is-negative { color:#a02d2d; }
.staff-time-balance.is-balanced strong { color:#315b54; }
.staff-time-warning-metric { border-color:#e7c272!important; background:#fffaf0!important; }
.staff-time-warning-metric strong { color:#8a5b00; }
.staff-time-area-metric.is-vee { border-top:4px solid #0b7c6c; }
.staff-time-area-metric.is-wkv { border-top:4px solid #ef941e; }
.staff-time-entry-form { display:grid; gap:18px; }
.staff-time-core-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.staff-time-breaks { min-width:0; margin:0; padding:15px; border:1px solid var(--line); border-radius:10px; background:var(--surface-soft); }
.staff-time-breaks legend { display:flex; align-items:baseline; gap:9px; padding:0 7px; font-weight:750; }
.staff-time-breaks legend small { color:var(--muted); font-size:.76rem; font-weight:500; }
.staff-time-break-list { display:grid; gap:8px; }
.staff-time-break-row { display:grid; grid-template-columns:70px minmax(120px,1fr) minmax(120px,1fr) 78px auto; align-items:end; gap:9px; padding:9px 10px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.staff-time-break-row[hidden] { display:none; }
.staff-time-break-row>span { align-self:center; font-size:.8rem; font-weight:750; }
.staff-time-break-row label { margin:0; }
.staff-time-break-row output { align-self:center; color:var(--muted); font-size:.8rem; font-variant-numeric:tabular-nums; }
.staff-time-break-row .button { align-self:center; }
.staff-time-break-add { margin-top:10px; }
.staff-time-break-add[hidden] { display:none; }
.staff-time-legacy-break { display:flex; align-items:flex-start; gap:9px; margin-bottom:10px; padding:10px 12px; border:1px solid #e6bf68; border-radius:8px; color:#715000; background:#fff8e6; }
.staff-time-legacy-break[hidden] { display:none; }
.staff-time-legacy-break .icon { width:18px; flex:none; }
.staff-time-legacy-break span { display:grid; gap:2px; }
.staff-time-legacy-break small { color:#795f28; }
.staff-time-live-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.staff-time-live-summary>div { display:grid; gap:3px; padding:12px 14px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.staff-time-live-summary span { color:var(--muted); font-size:.76rem; font-weight:700; text-transform:uppercase; }
.staff-time-live-summary strong { font-size:1.08rem; font-variant-numeric:tabular-nums; }
.staff-time-live-warning { grid-column:1/-1; margin:0; padding:10px 12px; border-radius:8px; color:#7b5200; background:#fff3d3; font-size:.84rem; font-weight:650; }
.staff-time-activity textarea,.staff-time-area-reports textarea { width:100%; resize:vertical; }
.staff-time-allocation { display:grid; gap:13px; padding:15px; border:1px solid #b8d8d2; border-radius:10px; background:#f4fbf9; }
.staff-time-allocation[hidden],.staff-time-activity[hidden] { display:none; }
.staff-time-allocation-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.staff-time-allocation-heading>div { display:grid; gap:3px; }
.staff-time-allocation-heading small { color:var(--muted); }
.staff-time-allocation-slider { display:grid; grid-template-columns:100px minmax(160px,1fr) auto; align-items:center; gap:12px; margin:0; }
.staff-time-allocation-slider input { width:100%; accent-color:var(--primary); }
.staff-time-allocation-slider output { min-width:190px; color:var(--muted); text-align:right; font-size:.82rem; font-variant-numeric:tabular-nums; }
.staff-time-area-reports { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.staff-time-area-reports label[hidden] { display:none; }
.staff-time-form-actions { justify-content:flex-start; }
.staff-time-year-heading { display:flex; justify-content:space-between; margin:26px 0 12px; }
.staff-time-year-heading h2 { margin-bottom:3px; }
.staff-time-year-heading p { margin:0; color:var(--muted); }
.staff-time-month { padding:0; overflow:hidden; }
.staff-time-month>summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:17px 20px; cursor:pointer; list-style:none; background:#fff; }
.staff-time-month>summary::-webkit-details-marker { display:none; }
.staff-time-month>summary>span:first-child { display:flex; align-items:baseline; gap:7px; }
.staff-time-month>summary strong { font-size:1.05rem; }
.staff-time-month>summary small { color:var(--muted); }
.staff-time-month-toggle { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:var(--primary); background:var(--surface-soft); transition:transform .15s ease; }
.staff-time-month[open] .staff-time-month-toggle { transform:rotate(180deg); }
.staff-time-month-body { display:grid; gap:18px; padding:0 18px 18px; border-top:1px solid var(--line); background:#f8faf9; }
.staff-time-week { padding-top:18px; }
.staff-time-week>header { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:9px; }
.staff-time-week>header>div:first-child { display:grid; gap:2px; }
.staff-time-week>header small { color:var(--muted); }
.staff-time-week-numbers { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.staff-time-week-numbers span { padding:5px 8px; border:1px solid var(--line); border-radius:999px; background:#fff; font-size:.78rem; }
.staff-time-day-list { display:grid; gap:8px; }
.staff-time-day { overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#fff; }
.staff-time-day.is-future { opacity:.72; }
.staff-time-day-header { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; }
.staff-time-day-date { display:flex; align-items:center; gap:10px; }
.staff-time-day-date>span { display:grid; width:38px; height:38px; place-items:center; border-radius:9px; color:var(--primary); background:#e7f3f0; font-size:1.03rem; font-weight:800; }
.staff-time-day-date>div { display:grid; gap:1px; }
.staff-time-day-date small { color:var(--muted); font-size:.76rem; }
.staff-time-day-metrics { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px; }
.staff-time-day-metrics span { display:grid; gap:2px; color:var(--muted); font-size:.7rem; text-align:right; text-transform:uppercase; }
.staff-time-day-metrics b { color:var(--text); font-size:.88rem; font-variant-numeric:tabular-nums; }
.staff-time-day-metrics .is-positive b { color:#08715f; }
.staff-time-day-metrics .is-negative b { color:#a02d2d; }
.staff-time-day-content { display:grid; gap:10px; padding:12px 14px; border-top:1px solid var(--line); background:#fbfcfc; }
.staff-time-day-blocks { display:grid; gap:5px; }
.staff-time-day-block { display:flex; flex-wrap:wrap; gap:13px; align-items:center; font-size:.86rem; }
.staff-time-day-block span { display:inline-flex; align-items:center; gap:4px; }
.staff-time-day-block .icon { width:15px; color:var(--primary); }
.staff-time-day-block strong { margin-left:auto; font-variant-numeric:tabular-nums; }
.staff-time-legacy-note { color:var(--muted); }
.staff-time-day-allocation { display:flex; flex-wrap:wrap; gap:7px; }
.staff-time-day-allocation span { padding:5px 8px; border-radius:999px; font-size:.78rem; }
.staff-time-day-allocation .is-vee { color:#086a5e; background:#dff1ed; }
.staff-time-day-allocation .is-wkv { color:#875000; background:#fff0d9; }
.staff-time-day-warnings,.staff-time-day-ok { display:flex; align-items:flex-start; gap:7px; font-size:.8rem; }
.staff-time-day-warnings { padding:8px 10px; border-radius:7px; color:#775100; background:#fff4d8; }
.staff-time-day-warnings .icon,.staff-time-day-ok .icon { width:16px; flex:none; }
.staff-time-day-warnings>div { display:grid; gap:2px; }
.staff-time-day-warnings small { display:block; }
.staff-time-day-ok { color:#08715f; }
.staff-time-activities { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.staff-time-activities>div { padding:9px 10px; border-left:3px solid #9dbfb9; background:#fff; }
.staff-time-activities p { margin:3px 0 0; font-size:.84rem; }
.staff-time-day-actions { display:flex; flex-wrap:wrap; gap:7px; padding:0 14px 12px; background:#fbfcfc; }
.staff-time-credit-note { display:flex; align-items:flex-start; gap:9px; padding:10px 14px; border-top:1px solid #b8d8d2; color:#086a5e; background:#eef9f6; }
.staff-time-credit-note>.icon { width:18px; flex:none; }
.staff-time-credit-note span { display:grid; gap:2px; }
.staff-time-credit-note small { color:#47746d; }
.staff-time-week-empty { margin:0; padding:13px 14px; border:1px dashed var(--line); border-radius:9px; color:var(--muted); background:#fff; }
.staff-time-edit-details { width:100%; }
.staff-time-edit-details>summary { width:max-content; list-style:none; cursor:pointer; }
.staff-time-edit-details>summary::-webkit-details-marker { display:none; }
.staff-time-edit-panel { margin-top:10px; padding:15px; border:1px solid #b7d4cf; border-radius:10px; background:#fff; }
.staff-time-delete-form { display:flex; justify-content:flex-end; margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }
.flash.compact { margin:0; padding:8px 10px; font-size:.8rem; }

.employer-work-selection form { max-width:620px; }
.employer-work-editor>.panel-heading { margin-bottom:12px; }
.employer-work-rule-form { display:grid; grid-template-columns:minmax(190px,230px) minmax(220px,270px) minmax(420px,1fr) auto; align-items:start; gap:14px; max-width:1180px; }
.employer-work-rule-meta { display:grid; grid-template-columns:1fr; align-items:end; gap:14px; }
.employer-work-week { display:grid; gap:5px; max-width:none; margin:0; padding:0; border:0; background:transparent; }
.employer-work-week label { margin:0; }
.employer-work-week input { font-size:1.08rem; font-weight:750; font-variant-numeric:tabular-nums; }
.employer-work-week small { color:var(--muted); font-size:.72rem; font-weight:500; line-height:1.3; }
.switch-inline.employer-work-area-split { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; gap:11px; width:100%; max-width:none; min-height:64px; margin-top:22px; padding:9px 12px; border:1px solid #b8d8d2; border-radius:9px; background:#f4fbf9; white-space:normal; box-sizing:border-box; transition:border-color .14s ease,background .14s ease,box-shadow .14s ease; }
.employer-work-rule-form>.form-actions { align-self:start; padding-top:22px; white-space:nowrap; }
.employer-work-area-split>.employer-work-area-split-switch { margin-top:0; }
.switch-inline .employer-work-area-split-copy { position:static; display:grid; width:auto; height:auto; min-width:0; gap:3px; border:0; border-radius:0; background:transparent; line-height:1.3; transition:none; }
.switch-inline .employer-work-area-split-copy::after { content:none; }
.employer-work-area-split-copy strong { font-size:.9rem; }
.employer-work-area-split-copy small { color:var(--muted); font-weight:500; }
.switch-inline.employer-work-area-split:has(input:checked) { border-color:#8eb5ad; background:#eef8f5; box-shadow:inset 3px 0 0 var(--primary); }
.employer-work-history { min-width:760px; }
.employer-work-history td>small { display:block; margin-top:3px; color:var(--muted); }
.employer-time-account-weeks { display:grid; gap:10px; }
.employer-time-account-week { overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#fff; }
.employer-time-account-week>summary { display:grid; grid-template-columns:minmax(165px,220px) minmax(0,1fr) 24px; align-items:center; gap:14px; padding:13px 14px; list-style:none; cursor:pointer; background:var(--surface-soft); }
.employer-time-account-week>summary::-webkit-details-marker { display:none; }
.employer-time-account-week-title { display:grid; gap:2px; }
.employer-time-account-week-title small { color:var(--muted); font-size:.76rem; }
.employer-time-account-week-metrics { display:grid; grid-template-columns:repeat(5,minmax(82px,1fr)); gap:10px; }
.employer-time-account-week-metrics>span { display:grid; align-content:center; gap:2px; min-width:0; }
.employer-time-account-week-metrics small { color:var(--muted); font-size:.68rem; font-weight:750; text-transform:uppercase; }
.employer-time-account-week-metrics strong { font-size:.88rem; font-variant-numeric:tabular-nums; }
.employer-time-account-week-metrics .badge { justify-self:start; }
.employer-time-account-week-toggle { display:grid; place-items:center; color:var(--muted); transition:transform .18s ease; }
.employer-time-account-week-toggle .icon { width:18px; height:18px; }
.employer-time-account-week[open]>summary { background:#edf6f4; }
.employer-time-account-week[open]>summary .employer-time-account-week-toggle { transform:rotate(180deg); }
.employer-time-account-week-body { padding:14px; border-top:1px solid var(--line); background:#f8faf9; }
.employer-time-account>.panel-heading { margin-bottom:9px; }
.employer-time-account-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:min(100%,810px); gap:8px; margin:0 0 9px; }
.employer-time-account-summary article { display:grid; align-content:start; min-width:0; min-height:78px; gap:2px; padding:9px 11px; border:1px solid var(--line); border-radius:8px; background:var(--surface-soft); }
.employer-time-account-summary article>span { font-size:.72rem; letter-spacing:.02em; }
.employer-time-account-summary article>strong { align-self:baseline; font-size:1.28rem; line-height:1.2; }
.employer-time-account-summary article>small { color:var(--muted); font-size:.75rem; line-height:1.25; white-space:normal; }
.employer-time-account-weeks { gap:5px; }
.employer-time-account-week { border-radius:7px; }
.employer-time-account-week>summary { grid-template-columns:auto auto 18px; justify-content:start; gap:14px; min-height:0; padding:8px 10px; }
.employer-time-account-week>summary::marker { content:""; }
.employer-time-account-week-title { display:flex; align-items:baseline; gap:7px; min-width:0; }
.employer-time-account-week-title strong { font-size:1.09rem; white-space:nowrap; }
.employer-time-account-week-title small { overflow:hidden; font-size:.87rem; text-overflow:ellipsis; white-space:nowrap; }
.employer-time-account-week-metrics { display:flex; align-items:center; justify-content:flex-start; gap:14px; }
.employer-time-account-week-metrics>span { display:inline-flex; align-items:baseline; gap:3px; white-space:nowrap; }
.employer-time-account-week-metrics small { font-size:.79rem; text-transform:none; }
.employer-time-account-week-metrics small::after { content:":"; }
.employer-time-account-week-metrics strong { font-size:.99rem; }
.employer-time-account-week-metrics .badge { min-height:0; padding:2px 7px; font-size:.81rem; line-height:1.2; }
.employer-time-account-week-metrics .badge::before { content:none; }
.employer-time-account-week-toggle .icon { width:16px; height:16px; }
.employer-time-account-week-body { padding:6px; }
.employer-time-account .staff-time-day-list { gap:5px; }
.employer-time-account .staff-time-day { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; border-radius:7px; }
.employer-time-account .staff-time-day-header { grid-column:1; justify-content:flex-start; flex-wrap:nowrap; gap:12px; padding:7px 9px; }
.employer-time-account .staff-time-day-date { gap:8px; }
.employer-time-account .staff-time-day-date>span { width:34px; height:34px; border-radius:7px; font-size:1.12rem; }
.employer-time-account .staff-time-day-date>div { display:flex; align-items:baseline; gap:7px; }
.employer-time-account .staff-time-day-date strong { font-size:1.04rem; }
.employer-time-account .staff-time-day-date small { font-size:.85rem; }
.employer-time-account .staff-time-day-metrics { justify-content:flex-start; gap:12px; }
.employer-time-account .staff-time-day-metrics span { display:inline-flex; align-items:baseline; gap:4px; font-size:.77rem; text-align:left; text-transform:none; }
.employer-time-account .staff-time-day-metrics b { font-size:.99rem; }
.employer-time-account .staff-time-day-content { display:flex; grid-column:2; align-items:center; flex-wrap:wrap; gap:7px 14px; min-width:0; padding:7px 5px; border-top:0; background:transparent; }
.employer-time-account .staff-time-day-blocks { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; }
.employer-time-account .staff-time-day-block { gap:11px; font-size:.99rem; }
.employer-time-account .staff-time-day-block strong { margin-left:0; }
.employer-time-account .staff-time-day-block .icon { width:16px; }
.employer-time-account .staff-time-day-allocation { gap:6px; }
.employer-time-account .staff-time-day-allocation span { padding:3px 7px; font-size:.87rem; }
.employer-time-account .staff-time-day-warnings,.employer-time-account .staff-time-day-ok { gap:6px; font-size:.9rem; }
.employer-time-account .staff-time-day-warnings { padding:5px 7px; }
.employer-time-account .staff-time-day-warnings .icon,.employer-time-account .staff-time-day-ok .icon { width:16px; }
.employer-time-account .staff-time-activities { display:grid; grid-column:1/-1; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:6px 9px 8px; border-top:1px solid var(--line); background:#fbfcfc; }
.employer-time-account .staff-time-activities>div { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:baseline; gap:6px; min-width:0; padding:5px 8px; }
.employer-time-account .staff-time-activities>div:only-child { grid-column:1/-1; }
.employer-time-account .staff-time-activities strong { font-size:.94rem; }
.employer-time-account .staff-time-activities p { min-width:0; margin:0; font-size:.94rem; line-height:1.3; }
.employer-time-account .staff-time-day-actions { grid-column:3; justify-content:flex-end; align-items:center; padding:7px 9px; background:transparent; }
.employer-time-account .staff-time-day-actions:has(.staff-time-edit-details[open]) { grid-column:1/-1; width:100%; }
.employer-time-account .staff-time-edit-details { width:auto; }
.employer-time-account .staff-time-edit-details[open] { width:100%; }
.employer-time-account .staff-time-day-actions .button { min-height:30px; padding:4px 9px; font-size:.88rem; }
.employer-time-account .staff-time-day-actions .icon { width:15px; }
.employer-time-account .staff-time-credit-note,.employer-time-account .staff-time-day>.flash { grid-column:1/-1; }
.employer-time-account .staff-time-credit-note { gap:7px; padding:7px 9px; font-size:.94rem; }
.employer-time-account .staff-time-credit-note>.icon { width:17px; }
.employer-time-account .staff-time-week-empty { padding:9px 11px; font-size:.99rem; }

@media (max-width: 1000px) {
    .staff-time-form,.staff-absence-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .staff-time-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .staff-time-account-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .employer-time-account-week-metrics { grid-template-columns:repeat(3,minmax(82px,1fr)); }
    .employer-time-account .staff-time-day { grid-template-columns:minmax(0,1fr) auto; }
    .employer-time-account .staff-time-day-header { grid-column:1/-1; }
    .employer-time-account .staff-time-day-content { grid-column:1; }
    .employer-time-account .staff-time-day-actions { grid-column:2; }
    .staff-admin-layout { grid-template-columns:1fr; }
    .staff-admin-sidebar { position:static; }
    .staff-admin-employee-list ul { grid-template-columns:repeat(2,minmax(0,1fr)); max-height:none; column-gap:8px; }
}

@media (max-width: 1100px) {
    .employer-work-rule-form { grid-template-columns:minmax(200px,1fr) minmax(360px,2fr); max-width:900px; }
    .switch-inline.employer-work-area-split { margin-top:0; }
    .employer-work-rule-form>.form-actions { padding-top:0; }
}

@media (max-width: 700px) {
    .staff-view-switcher label > span { display:none; }
    .staff-view-switcher select { width:min(35vw,150px);min-width:100px; }
    .staff-month-filter,.staff-admin-filter { width:100%;align-items:stretch;flex-direction:column; }
    .staff-time-form,.staff-absence-form,.staff-profile-form { grid-template-columns:1fr; }
    .staff-time-form .wide,.staff-absence-form .wide,.staff-profile-form .wide { grid-column:auto; }
    .staff-document-card { grid-template-columns:auto minmax(0,1fr) auto; }
    .staff-document-card>.badge { grid-column:2;justify-self:start; }
    .staff-decision-form { grid-template-columns:1fr; }
    .staff-time-heading { align-items:stretch; flex-direction:column; }
    .staff-year-tabs { width:100%; }
    .staff-year-tabs .button { flex:1; }
    .staff-time-summary-grid,.staff-time-core-fields,.staff-time-live-summary,.staff-time-area-reports,.staff-time-activities { grid-template-columns:1fr; }
    .staff-time-break-row { grid-template-columns:1fr 1fr auto; }
    .staff-time-break-row>span { grid-column:1/-1; }
    .staff-time-break-row output { grid-column:1/3; }
    .staff-time-allocation-heading,.staff-time-week>header,.staff-time-day-header { align-items:stretch; flex-direction:column; }
    .staff-time-allocation-slider { grid-template-columns:1fr; }
    .staff-time-allocation-slider output { min-width:0; text-align:left; }
    .staff-time-week-numbers,.staff-time-day-metrics { justify-content:flex-start; }
    .staff-time-day-metrics span { text-align:left; }
    .employer-work-rule-meta { grid-template-columns:1fr; }
    .employer-work-rule-form { grid-template-columns:1fr; max-width:none; }
    .employer-work-week { grid-template-columns:1fr; }
    .employer-work-rule-form>.form-actions { align-self:start; }
    .staff-time-account-summary,.staff-time-account-form { grid-template-columns:1fr; }
    .staff-time-account-form .wide,.staff-time-account-form .form-actions { grid-column:auto; }
    .employer-time-account-week>summary { grid-template-columns:minmax(0,1fr) 24px; }
    .employer-time-account-week-metrics { grid-column:1/-1; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .employer-time-account-week-toggle { grid-column:2; grid-row:1; }
    .employer-time-account-summary { width:100%; grid-template-columns:1fr; }
    .employer-time-account-week-title { align-items:flex-start; flex-direction:column; gap:1px; }
    .employer-time-account-week-metrics { flex-wrap:wrap; justify-content:flex-start; gap:5px 9px; }
    .employer-time-account-week-body { padding:5px; }
    .employer-time-account .staff-time-day { grid-template-columns:1fr; }
    .employer-time-account .staff-time-day-header,.employer-time-account .staff-time-day-content,.employer-time-account .staff-time-day-actions { grid-column:1; }
    .employer-time-account .staff-time-day-content { align-items:stretch; flex-direction:column; }
    .employer-time-account .staff-time-day-actions { justify-content:flex-start; }
    .employer-time-account .staff-time-activities { grid-template-columns:1fr; }
    .employer-time-account .staff-time-activities>div:only-child { grid-column:1; }
    .staff-time-planned-start { grid-template-columns:40px minmax(0,1fr); align-items:start; }
    .staff-time-planned-start-balance { grid-column:2; min-width:0; padding:8px 0 0; border-top:1px solid var(--line); border-left:0; text-align:left; }
    .staff-admin-employee-list ul { grid-template-columns:1fr; }
    .staff-admin-context { align-items:flex-start; flex-direction:column; }
    .payroll-batch-preview-heading,.payroll-batch-confirm { align-items:stretch;flex-direction:column; }
    .payroll-batch-confirm > div { margin-right:0; }
    .payroll-batch-confirm .check-inline { white-space:normal; }
    .payroll-batch-confirm .button { width:100%;min-width:0; }
    .staff-directory-create-grid { grid-template-columns:1fr; }
    .employer-payroll-upload { grid-template-columns:1fr; }
    .employer-payroll-document { grid-template-columns:auto minmax(0,1fr); }
    .employer-payroll-document>.badge,.employer-payroll-document-actions { grid-column:2;justify-self:start; }
}

/* Mitglieder */
.member-tiles { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:1rem; margin-bottom:1rem; }
.member-tile { min-height:118px; border:1px solid var(--border, #d8e1df); border-radius:14px; background:#fff; padding:1rem; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:.35rem; color:inherit; text-align:left; }
button.member-tile { cursor:pointer; font:inherit; }
button.member-tile:disabled { cursor:not-allowed; opacity:.72; }
.member-tile .icon { width:24px; height:24px; color:#14786a; }
.member-tile span { color:var(--muted, #66736f); font-size:.86rem; }
.member-tile-form { min-width:0; margin:0; }
.member-tile-form .member-tile { width:100%; height:100%; }
.member-tile-stat { display:flex!important; width:100%; justify-content:space-between; align-items:baseline; gap:.75rem; }
.member-tile-stat span { color:inherit; font-size:inherit; }
.member-tile-stat b { color:var(--text); font-variant-numeric:tabular-nums; }
.member-phplist-filter-link { appearance:none; margin:0; padding:0; border:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.member-phplist-filter-link:hover > span,.member-phplist-filter-link:focus-visible > span { text-decoration:underline; text-underline-offset:.16em; }
.member-phplist-filter-link:focus-visible { outline:none; }
.member-tile-active { border-color:#7eb8ad; box-shadow:0 4px 16px rgba(20,120,106,.09); }
.membership-application-dialog { position:fixed; inset:0; width:min(760px,calc(100vw - 32px)); max-width:760px; max-height:calc(100dvh - 32px); margin:auto; overflow:auto; color:var(--text); border:1px solid var(--line); border-radius:14px; box-shadow:0 24px 70px rgba(20,40,45,.22); }
.membership-application-dialog::backdrop { background:rgba(12,28,32,.46); }
.membership-application-dialog .panel-heading { align-items:flex-start; margin-bottom:16px; }
.membership-application-dialog .panel-heading h2 { margin:.35rem 0 0; }
.membership-application-dialog select[size] { min-height:220px; }
.membership-new-recipient { padding:14px; border:1px solid var(--line); border-radius:10px; background:var(--surface-soft); }
.membership-new-recipient[hidden] { display:none; }
.membership-new-recipient-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.membership-new-recipient-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.membership-new-recipient-grid .wide { grid-column:1 / -1; }
.membership-application-summary { display:grid; gap:6px; padding:12px 14px; border-left:4px solid var(--primary); border-radius:8px; background:#eef8f5; font-size:13px; }
.membership-application-template-admin { scroll-margin-top:90px; }
.membership-application-template-form textarea { min-height:260px; resize:vertical; }
.membership-template-placeholders { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:-4px; }
.membership-template-placeholders > span { font-size:13px; font-weight:700; color:var(--muted); }
.membership-template-placeholders small { flex-basis:100%; color:var(--muted); }
.membership-application-attachment-list { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }
.membership-application-attachment-list .panel-heading.compact { margin-bottom:10px; }
.membership-application-attachment-list h3 { margin:0 0 4px; }
.member-phplist-tile { justify-content:flex-start; }
.member-phplist-tile-heading { display:flex; width:100%; align-items:center; justify-content:space-between; gap:.6rem; }
.member-phplist-tile-title { display:inline-flex; align-items:center; gap:.45rem; color:var(--text)!important; font-size:inherit!important; }
.member-phplist-tile-title .icon { width:18px; height:18px; }
.member-phplist-check-form { width:auto; margin:0; }
.member-phplist-check-form .button { width:auto; min-height:28px; padding:.3rem .6rem; justify-content:center; }
.member-phplist-blacklist-form { width:100%; margin:0; }
.member-tile-row-button { appearance:none; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; padding:.4rem 0 0; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.member-tile-row-button:hover,.member-tile-row-button:focus-visible { color:var(--primary); outline:none; }
.panel.member-label-panel { position:fixed; inset:0; width:min(620px,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); margin:auto; overflow:auto; border:1px solid var(--line); border-radius:14px; box-shadow:0 24px 70px rgba(0,0,0,.24); }
.member-label-spec { display:grid; gap:.3rem; padding:1rem; border:1px solid var(--line); border-radius:12px; background:#f5f8f7; }
.member-label-spec span,.member-label-spec small { color:var(--muted); }
.panel.member-export-panel { position:fixed; inset:0; width:min(1180px,calc(100vw - 2rem)); max-height:90vh; margin:auto; overflow:auto; border:1px solid var(--line); border-radius:14px; box-shadow:0 24px 70px rgba(0,0,0,.24); }
.panel.member-export-panel[data-member-export-panel] { width:min(1600px,calc(100vw - 3rem)); height:min(900px,calc(100vh - 3rem)); height:min(900px,calc(100dvh - 3rem)); max-height:calc(100vh - 3rem); max-height:calc(100dvh - 3rem); overflow:hidden; }
.panel.member-export-panel[data-member-export-panel][open] { display:flex; flex-direction:column; }
.member-export-panel[data-member-export-panel] #member-export-form { display:flex; flex:1; min-height:0; flex-direction:column; }
.member-export-panel[data-member-export-panel] .member-export-fields { flex:1; min-height:260px; max-height:none; }
.member-export-drag-handle { cursor:move; touch-action:none; user-select:none; }
.member-export-drag-handle button { cursor:pointer; }
.member-export-panel.is-dragging { user-select:none; }
.member-export-panel::backdrop { background:rgba(20,34,31,.52); backdrop-filter:blur(2px); }
.member-export-options { display:flex; gap:2rem; align-items:flex-end; flex-wrap:wrap; }
.member-export-options fieldset { display:flex; gap:1rem; border:0; padding:0; margin:0; }
.member-export-additions { display:grid; gap:.55rem; margin:0; padding:.8rem; border:1px solid var(--line); border-radius:10px; background:var(--surface-soft); }
.member-export-additions > legend { padding:0 .3rem; font-weight:800; }
.member-export-additions > small { color:var(--muted); font-size:.76rem; font-weight:600; }
.member-export-addition-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.member-export-addition-card { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:start; gap:.65rem; min-width:0; padding:.7rem .8rem; border:1px solid var(--line); border-radius:9px; background:#fff; cursor:pointer; }
.member-export-addition-card:has(input:checked) { border-color:var(--primary); background:#edf8f5; }
.member-export-addition-card input { margin-top:.18rem; }
.member-export-addition-card span { display:grid; gap:.2rem; min-width:0; }
.member-export-addition-card strong { color:var(--text); font-size:.86rem; line-height:1.25; }
.member-export-addition-card small { color:var(--muted); font-size:.74rem; line-height:1.35; font-weight:500; }
.member-export-field-actions { display:flex; gap:.5rem; }
.member-export-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.55rem 1rem; max-height:360px; overflow:auto; padding:1rem; border:1px solid var(--border,#d8e1df); border-radius:10px; }
.member-export-fields .is-sensitive { color:#8a4f00; }
.panel.member-contact-transfer-dialog { width:min(1050px,calc(100vw - 2rem)); }
.member-contact-transfer-table { min-width:760px; }
.member-transfer-empty { color:var(--muted); font-style:italic; }
.member-sevdesk-status { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin-bottom:1rem; }
.member-sevdesk-status > div { display:grid; gap:.25rem; padding:.85rem 1rem; border:1px solid var(--line); border-radius:10px; background:var(--surface-soft); }
.member-sevdesk-status span { color:var(--muted); font-size:.78rem; font-weight:700; text-transform:uppercase; }
.member-sevdesk-status > .member-sevdesk-customer-number { display:flex; align-items:baseline; gap:.35rem; flex-wrap:wrap; }
.member-sevdesk-customer-number span { color:var(--text); font-size:.9rem; text-transform:none; }
.member-sevdesk-customer-number strong { margin:0; font-size:1rem; }
.member-sevdesk-message { margin:0; padding:.85rem 1rem; border-left:4px solid var(--warning); background:#fff8df; }
.member-sevdesk-message.is-error { border-left-color:var(--danger); color:var(--danger); background:#fff1f1; }
.member-sevdesk-actions { margin-top:1rem; }
.member-sevdesk-actions.is-inline-status { margin-top:0; }
.member-sevdesk-inline-message { color:var(--muted); font-size:.9rem; line-height:1.35; }
.member-sevdesk-sync-message { display:inline-flex; align-items:center; gap:.4rem; min-height:36px; padding:.4rem .7rem; border-radius:8px; font-size:.9rem; font-weight:700; line-height:1.3; }
.member-sevdesk-sync-message.is-success { color:var(--primary-dark); background:#e4f3f0; }
.member-sevdesk-sync-message.is-error { color:var(--danger); background:#fff1f1; }
.member-sevdesk-sync-message .icon { width:16px; height:16px; flex:0 0 auto; }
.member-sevdesk-actions form { margin:0; }
.member-sevdesk-invoices { margin-top:1.25rem; padding-top:1.1rem; border-top:1px solid var(--line); }
.member-sevdesk-invoice-heading { align-items:flex-end; }
.member-sevdesk-invoice-heading h3 { margin:0 0 .2rem; }
.member-sevdesk-invoice-table { min-width:1050px; }
.member-sevdesk-invoice-table td:first-child strong,
.member-sevdesk-invoice-table td:first-child small,
.member-sevdesk-invoice-applied { display:block; }
.member-sevdesk-invoice-table td:first-child small,
.member-sevdesk-invoice-applied { margin-top:.2rem; color:var(--muted); font-size:.72rem; }
.member-sevdesk-invoice-table td:last-child .button { margin-top:.4rem; }
.member-sevdesk-invoice-amount { text-align:right; white-space:nowrap; }
.member-sevdesk-run-progress { width:100%; height:14px; margin-top:.25rem; accent-color:var(--primary); }
.member-sevdesk-run-progress-label { margin:.35rem 0 1rem; }
.member-sevdesk-run-metrics { grid-template-columns:repeat(4,minmax(0,1fr)); }
.member-sevdesk-run-metrics .metric { padding:14px 16px; }
.member-sevdesk-run-metrics .metric strong { font-size:20px; }
.member-sevdesk-run-errors { margin-top:1rem; }
.member-sevdesk-run-errors ul { margin:.75rem 0 0; }
.member-sevdesk-run-actions { margin-top:1rem; }
.member-sevdesk-run-actions form { margin:0; }
.user-access-secondary { display:block; margin-top:.2rem; color:var(--muted); font-size:.75rem; }
.user-access-table form { margin:0; }
.user-access-table .button { white-space:nowrap; }
.user-access-table code,.user-login-log-table code { white-space:nowrap; }
.user-access-roles { margin-left:.3rem; color:var(--muted); font-size:.82rem; font-weight:700; }
.user-access-role.is-admin { color:var(--danger); }
.user-login-search { display:grid; gap:.45rem; margin:0 0 1rem; }
.user-login-search > label { color:var(--muted); font-size:.78rem; font-weight:800; }
.user-login-search-row { display:flex; gap:.6rem; align-items:center; }
.user-login-search-row input { width:min(560px,100%); }
.user-login-search-row .button { white-space:nowrap; }
@media (max-width:700px) {
    .user-login-search-row { align-items:stretch; flex-direction:column; }
    .user-login-search-row input,.user-login-search-row .button { width:100%; }
}
.member-contact-transfer-note { margin:1rem 0; padding:.85rem 1rem; border:1px solid var(--line); border-radius:10px; color:var(--muted); background:var(--surface-soft); }
.member-contact-transfer-dialog .form-actions form { margin:0; }
.member-delete-button { margin-left:auto; }
.member-deleted-icon { color:#7a8582; }
.member-files-table { min-width:1080px; }
.member-files-table td > small { display:block; margin-top:.2rem; color:var(--muted); }
.member-file-name-link { color:var(--primary-dark); text-decoration:none; text-underline-offset:3px; }
.member-file-name-link:hover,.member-file-name-link:focus-visible { color:var(--primary); text-decoration:underline; }
.member-files-table .form-actions { flex-wrap:nowrap; }
.member-files-table form { margin:0; }
.member-file-upload-form { display:grid; grid-template-columns:minmax(220px,1.2fr) minmax(180px,.8fr) minmax(280px,1.6fr) auto; gap:1rem; align-items:end; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line); }
.member-file-description textarea { min-height:42px; }
.backup-create-form { display:grid; grid-template-columns:minmax(280px,420px) auto; gap:.65rem; align-items:end; }
.backup-runs-table { min-width:1450px; }
.backup-runs-table td { vertical-align:top; }
.backup-retention-group { margin-top:.85rem; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.backup-retention-group > summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem; cursor:pointer; background:var(--surface-soft); }
.backup-retention-group > summary > span:first-child { display:grid; gap:.25rem; }
.backup-retention-group > summary > span:first-child::before { content:'▸'; margin-right:.4rem; grid-column:1; grid-row:1; }
.backup-retention-group[open] > summary > span:first-child::before { content:'▾'; }
.backup-retention-group > summary strong,.backup-retention-group > summary small { grid-column:2; }
.backup-retention-group > summary small,.backup-retention-detail { color:var(--muted); }
.backup-retention-group > summary .badge { flex-shrink:0; }
.backup-retention-group > summary::-webkit-details-marker { display:none; }
.backup-retention-detail { display:block; margin-top:.3rem; max-width:220px; }
.backup-file-details > summary { cursor:pointer; white-space:nowrap; color:var(--primary-dark); }
.backup-file-details[open] { max-width:480px; }
.backup-file-details code,.backup-file-details small { display:block; margin-top:.3rem; overflow-wrap:anywhere; }
.backup-storage-total { margin:1rem 0 0; padding-top:.85rem; border-top:1px solid var(--line); text-align:right; }
.backup-note-form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.35rem .45rem; margin:0; min-width:280px; }
.backup-note-form [hidden] { display:none!important; }
.backup-note-display { min-width:0; overflow-wrap:anywhere; }
.backup-note-display.is-empty { color:var(--muted); }
.backup-note-edit-button { width:34px; min-width:34px; height:34px; min-height:34px; padding:7px; }
.backup-note-edit-button .icon { width:16px; height:16px; }
.backup-note-form input { grid-column:1/-1; width:100%; min-width:240px; }
.backup-note-status { grid-column:1/-1; color:var(--muted); }
.backup-note-status[data-state="saving"] { color:var(--warning); }
.backup-note-status[data-state="error"] { color:var(--danger); }
@media (max-width:800px) {
    .backup-create-form { width:100%; grid-template-columns:1fr; }
}
.backup-error-message { display:block; max-width:520px; margin-top:.35rem; color:var(--danger); white-space:normal; }
.backup-restore-upload-form { display:grid; grid-template-columns:1fr; align-items:end; gap:1rem; }
.backup-set-inputs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:0; padding:1rem; border:1px solid var(--line); border-radius:10px; }
.backup-set-inputs legend { padding:0 .4rem; font-weight:700; }
.backup-chunk-progress { grid-column:1/-1; display:grid; grid-template-columns:minmax(220px,1fr) minmax(260px,1.5fr) auto; align-items:center; gap:.75rem; padding:.85rem 1rem; border:1px solid var(--line); border-radius:10px; background:var(--surface-soft); }
.backup-chunk-progress[hidden] { display:none; }
.backup-chunk-progress progress { width:100%; height:14px; accent-color:var(--primary); }
.backup-chunk-progress div { display:grid; gap:.15rem; }
.backup-chunk-progress small { color:var(--muted); }
.backup-chunk-progress[data-state="error"] { border-color:#e4b8b8; background:#fff2f2; }
.backup-chunk-progress[data-state="error"] strong { color:var(--danger); }
.backup-create-progress { grid-template-columns:minmax(220px,1fr) minmax(280px,1.5fr); }
.backup-create-progress[data-state="warning"] { border-color:#e8d49c; background:#fff9e8; }
.backup-create-progress[data-state="warning"] strong { color:#8b5c00; }
.backup-restore-preview { margin-bottom:1rem; padding:1rem; border:1px solid var(--line); border-radius:12px; background:var(--surface-soft); }
.backup-preview-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin:0; }
.backup-preview-grid > div { padding:.8rem; border:1px solid var(--line); border-radius:10px; background:#fff; }
.backup-preview-grid dt { color:var(--muted); font-size:.78rem; font-weight:700; text-transform:uppercase; }
.backup-preview-grid dd { margin:.25rem 0 0; font-weight:700; }
.backup-restore-confirm-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; align-items:end; }
.backup-restore-confirm-form > .muted { grid-column:1/-1; }
.backup-risk-confirmation { grid-column:1 / -1; }
.backup-restore-cancel-form { margin-top:1rem; }
.restore-progress-page { margin:0; padding:clamp(1rem,5vw,4rem); min-height:100vh; background:var(--bg); }
.restore-progress-panel { max-width:820px; margin:0 auto; padding:clamp(1.25rem,4vw,2.5rem); }
.restore-progress-eyebrow { color:var(--primary); font-size:.85rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.restore-progress-panel h1 { font-size:clamp(1.5rem,4vw,2rem); margin:.5rem 0 1.5rem; }
.restore-progress-panel [hidden] { display:none!important; }
.restore-progress-meter { margin:1.5rem 0; }
.restore-progress-meter progress { display:block; width:100%; height:18px; accent-color:var(--primary); border:1px solid var(--line); border-radius:9px; overflow:hidden; background:var(--surface-soft); }
.restore-progress-meter progress::-webkit-progress-bar { background:var(--surface-soft); }
.restore-progress-meter progress::-webkit-progress-value { background:var(--primary); }
.restore-progress-meter progress::-moz-progress-bar { background:var(--primary); }
.restore-progress-panel:is([data-state="failed"],[data-state="requires_recovery"],[data-state="interrupted"]) progress { accent-color:var(--danger); border-color:var(--danger); }
.restore-progress-panel:is([data-state="failed"],[data-state="requires_recovery"],[data-state="interrupted"]) progress::-webkit-progress-value { background:var(--danger); }
.restore-progress-panel:is([data-state="failed"],[data-state="requires_recovery"],[data-state="interrupted"]) progress::-moz-progress-bar { background:var(--danger); }
.restore-progress-reference { overflow-wrap:anywhere; font-size:.85rem; }
.restore-progress-count { font-weight:700; margin:.75rem 0 .4rem; }
.restore-progress-times { display:flex; flex-wrap:wrap; gap:1.5rem 3rem; padding-top:1rem; border-top:1px solid var(--line); }
.restore-progress-times dt { color:var(--muted); font-size:.85rem; }
.restore-progress-times dd { margin:.3rem 0 0; font-variant-numeric:tabular-nums; }
.restore-progress-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.5rem; }
.restore-progress-panel[data-state="complete"] h1 { color:var(--primary); }
.restore-progress-panel[data-state="failed"] h1,.restore-progress-panel[data-state="requires_recovery"] h1,.restore-progress-panel[data-state="interrupted"] h1 { color:var(--danger); }
.backup-restore-failure-details { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:.5rem 1rem; }
.panel.member-delete-dialog { position:fixed; inset:0; width:min(680px,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); margin:auto; overflow:auto; border:1px solid var(--line); border-radius:14px; box-shadow:0 24px 70px rgba(0,0,0,.24); }
.member-delete-dialog::backdrop { background:rgba(20,34,31,.58); backdrop-filter:blur(2px); }
.member-delete-notice { margin:0; padding:.8rem 1rem; border:1px solid #efd2d2; border-radius:10px; color:#7d2929; background:#fff2f2; }
.phplist-delete-dialog { position:fixed; inset:0; width:min(860px,calc(100vw - 2rem)); max-width:none; max-height:calc(100dvh - 2rem); margin:auto; padding:0; overflow:hidden; border:1px solid var(--line); border-radius:14px; color:var(--text); background:#fff; box-shadow:0 24px 70px rgba(0,0,0,.28); }
.phplist-delete-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.phplist-delete-dialog::backdrop { background:rgba(20,34,31,.62); backdrop-filter:blur(2px); }
.phplist-delete-dialog-header { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; padding:1.15rem 1.25rem 1rem; border-bottom:1px solid var(--line); }
.phplist-delete-dialog-header h2 { margin:.3rem 0 .2rem; font-size:1.25rem; }
.phplist-delete-dialog-header p { margin:0; color:var(--muted); }
.phplist-delete-dialog-body { min-height:180px; padding:1rem 1.25rem; overflow:auto; }
.phplist-delete-dialog-status { margin:0 0 .9rem; padding:.75rem .9rem; border:1px solid #b8ddd4; border-radius:10px; color:var(--primary-dark); background:#eef9f6; }
.phplist-delete-dialog-status[data-state="loading"] { color:var(--muted); border-color:var(--line); background:var(--surface-soft); }
.phplist-delete-dialog-status[data-state="error"] { color:#8d2020; border-color:#e4b8b8; background:#fff2f2; }
.phplist-delete-list { display:grid; gap:.9rem; }
.phplist-delete-email-group { display:grid; gap:.6rem; padding:.9rem; border:1px solid var(--line); border-radius:11px; background:var(--surface-soft); }
.phplist-delete-email-group > header { display:grid; gap:.12rem; }
.phplist-delete-email-group > header small { color:var(--muted); overflow-wrap:anywhere; }
.phplist-delete-email-lists { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; }
.phplist-delete-list-item { display:flex; align-items:flex-start; gap:.65rem; min-width:0; padding:.75rem; border:1px solid var(--line); border-radius:9px; background:#fff; cursor:pointer; }
.phplist-delete-list-item.is-selected { border-color:#d7a128; background:#fff5cf; }
.phplist-delete-list-item input { flex:0 0 auto; width:18px; height:18px; margin:.1rem 0 0; accent-color:var(--warning); }
.phplist-delete-list-item > span { display:grid; min-width:0; gap:.14rem; }
.phplist-delete-list-item small { color:var(--muted); overflow-wrap:anywhere; }
.phplist-delete-list-item [data-phplist-delete-selection-state] { color:var(--primary-dark); font-weight:700; }
.phplist-delete-list-item:not(.is-selected) [data-phplist-delete-selection-state] { color:var(--muted); }
.phplist-delete-dialog-hint { margin:.9rem 0 0; color:var(--muted); font-size:.88rem; }
.phplist-delete-dialog-actions { display:flex; justify-content:flex-end; gap:.6rem; padding:1rem 1.25rem; border-top:1px solid var(--line); background:var(--surface-soft); }
@media (max-width:720px) {
    .phplist-delete-email-lists { grid-template-columns:1fr; }
    .phplist-delete-dialog-actions { align-items:stretch; flex-direction:column; }
    .phplist-delete-dialog-actions .button { justify-content:center; width:100%; }
}
.member-deleted-list table { min-width:1050px; }
.member-deleted-year th { padding:12px; border-top:3px solid var(--primary); border-bottom:1px solid var(--line); color:var(--primary-dark); background:var(--surface-soft); font-size:14px; letter-spacing:.04em; }
.member-list-panel .member-search { width:520px; min-width:520px; }
.member-list-panel .member-criteria-filter { min-width:240px; }
.member-criteria-filter { display:grid; gap:.3rem; color:var(--muted); font-size:.78rem; font-weight:700; }
.member-criteria-filter select { width:100%; }
.member-list-panel { --member-table-head-top:170px; }
.member-sticky-controls { position:sticky; top:68px; z-index:9; margin:-20px -20px 14px; padding:14px 20px 10px; border-bottom:1px solid var(--line); border-radius:8px 8px 0 0; background:#fff; box-shadow:0 8px 16px rgba(24,36,34,.06); }
.member-sticky-controls .member-list-heading { margin-bottom:0; }
.member-list-heading { align-items:flex-end; }
.member-list-heading > div:first-child p { margin-bottom:0; line-height:1.25; }
.member-list-heading > div:first-child .muted { white-space:nowrap; }
.member-list-heading > div:first-child .muted + .muted { margin-top:.12rem; }
.member-filter-summary[data-active="0"] { visibility:hidden; }
.member-list-controls { display:flex; justify-content:flex-end; align-items:flex-end; gap:.8rem; flex-wrap:wrap; }
.member-list-controls form { margin:0; }
.member-list-panel .table-wrap { overflow-x:visible; }
.member-table { min-width:1700px; border-collapse:separate; border-spacing:0; }
.member-table thead th { position:sticky; top:var(--member-table-head-top); z-index:8; background:#fff; box-shadow:0 1px 0 var(--line); }
.member-sort-button { display:inline-flex; align-items:center; gap:.3rem; min-height:30px; margin:-5px -7px; padding:5px 7px; border:0; border-radius:7px; color:inherit; background:transparent; font:inherit; font-weight:inherit; text-transform:inherit; letter-spacing:inherit; cursor:pointer; }
.member-sort-button:hover,.member-sort-button:focus-visible { color:var(--primary-dark); background:var(--surface-soft); outline:none; }
.member-sort-icon { width:13px; height:13px; opacity:.35; transition:transform .15s ease,opacity .15s ease; }
.member-sort-button.is-active { color:var(--primary-dark); background:#e7f3f0; }
.member-sort-button.is-active .member-sort-icon { opacity:1; }
.member-sort-button[data-sort-direction="desc"] .member-sort-icon { transform:rotate(180deg); }
/* Row menus are moved to body while open so the scrolling table cannot clip them. */
.member-row-actions { display:inline-flex; }
.member-greeting-actions { display:flex; align-items:flex-end; gap:8px; margin:0 0 14px; padding:12px 0; border-block:1px solid var(--line); }
.member-greeting-actions .personal-greeting-form { flex:1; min-width:0; margin:0; padding:0; border:0; }
.member-greeting-actions > .member-row-actions { flex:none; }
.member-greeting-actions > .member-row-actions > button { width:38px; min-height:38px; padding:0; }
.member-actions-menu { position:fixed; z-index:120; display:grid; gap:2px; min-width:250px; max-width:calc(100vw - 16px); max-height:calc(100dvh - 16px); overflow-y:auto; margin:0; padding:6px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text); box-shadow:var(--shadow); }
.member-actions-menu[hidden] { display:none; }
.member-actions-menu form { margin:0; }
.member-actions-item { display:flex; align-items:center; gap:.65rem; width:100%; min-height:38px; margin:0; padding:9px 11px; border:0; border-radius:6px; background:transparent; color:inherit; text-align:left; text-decoration:none; font:inherit; font-size:.88rem; line-height:1.3; cursor:pointer; }
.member-actions-item .icon { flex:0 0 18px; }
.member-actions-item:hover:not(:disabled),.member-actions-item:focus-visible { background:var(--surface-soft); color:var(--primary-dark); outline:2px solid var(--primary); outline-offset:-2px; }
.member-actions-item:disabled { opacity:.5; cursor:not-allowed; }
.member-action-status { position:fixed; right:16px; bottom:16px; z-index:130; width:max-content; max-width:calc(100vw - 32px); margin:0; box-shadow:var(--shadow); }
.member-table tbody tr[data-member-row] { cursor:pointer; }
.member-table tbody tr[data-member-row]:hover, .member-table tbody tr[data-member-row]:focus { background:#edf8f5; outline:none; }
.member-table tbody tr[data-member-row].is-marked > td { background:#edf7f4; }
.member-table tbody tr[data-member-row].is-marked:hover > td, .member-table tbody tr[data-member-row].is-marked:focus > td { background:#e2f1ee; }
.member-table .icon-button.is-active,
.contact-table .icon-button.is-active { color:#fff; background:var(--accent); border-color:var(--accent); }
.member-table .member-contribution-cell { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.member-table .member-contribution-cell .member-sort-button { width:100%; justify-content:flex-end; text-align:right; }
.member-table tfoot th,.member-table tfoot td { padding-top:14px; padding-bottom:14px; border-top:2px solid var(--line); background:#f5f9f8; }
.member-table .member-contribution-total-label { color:var(--muted); font-size:.78rem; font-weight:800; text-align:right; text-transform:uppercase; }
.member-table .member-contribution-total { color:var(--primary-dark); font-size:1rem; font-weight:800; }
.member-table .member-contribution-prior-total-row th,.member-table .member-contribution-prior-total-row td { padding-top:8px; padding-bottom:8px; border-top:1px solid var(--line); }
.member-table .member-contribution-prior-total-row .member-contribution-total { font-size:.9rem; font-weight:700; }
.member-marker { display:inline-grid; place-items:center; width:22px; height:22px; color:var(--muted); }
.member-marker.is-active { color:var(--accent); }
.member-avatar { width:42px; height:42px; border-radius:50%; overflow:hidden; display:grid; place-items:center; background:#dbeee9; color:#176c60; font-weight:700; }
.member-avatar img { width:100%; height:100%; object-fit:contain; transform:translate(var(--avatar-x,0),var(--avatar-y,0)) scale(var(--avatar-zoom,1)); transform-origin:center; }
.member-comment-preview { max-width:220px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.member-profile-image { width:110px; height:110px; border-radius:18px; overflow:hidden; display:grid; place-items:center; background:#dbeee9; color:#176c60; font-size:2rem; font-weight:700; }
.member-profile-image.has-image { background:#fff; }
.member-profile-image a, .member-profile-image button, .member-profile-image img { width:100%; height:100%; display:block; object-fit:cover; }
.member-profile-image img { object-fit:contain; transform:translate(var(--avatar-x,0),var(--avatar-y,0)) scale(var(--avatar-zoom,1)); transform-origin:center; user-select:none; -webkit-user-drag:none; will-change:transform; }
.member-profile-image button { margin:0; padding:0; overflow:hidden; border:0; background:transparent; color:inherit; cursor:zoom-in; font:inherit; }
.member-profile-image.is-draggable { cursor:grab; touch-action:none; }
.member-profile-image.is-draggable.is-dragging { cursor:grabbing; }
.member-clarification.is-required { color:#a23d20; }
.member-detail-identity { padding-left:1.5rem; text-align:left; }
.member-detail-heading { padding-right:1.25rem; }
.member-detail-number { margin-bottom:0; font-size:1.3rem; line-height:1.35; }
.member-heading-actions { display:grid; justify-items:end; gap:.65rem; }
.member-heading-toggles { display:flex; justify-content:flex-end; align-items:center; gap:1rem; flex-wrap:wrap; }
.member-heading-toggles form { margin:0; }
.member-clarification-toggle { font-size:.82rem; }
.switch-inline.member-clarification-toggle input:checked + span { border-color:var(--warning); background:var(--warning); }
.member-clarification-toggle input:checked ~ strong { color:#8a5800; }
.member-marker-toggle { font-size:.82rem; }
.member-marker-toggle strong { display:inline-flex; align-items:center; gap:.3rem; }
.member-marker-toggle .icon { width:14px; height:14px; }
.switch-inline.member-marker-toggle input:checked + span { border-color:var(--accent); background:var(--accent); }
.member-marker-toggle input:checked ~ strong { color:var(--accent); }
.member-marker-filter-switch { min-height:36px; font-size:.86rem; }
.member-marker-filter-switch strong { display:inline-flex; align-items:center; gap:.3rem; }
.member-marker-filter-switch .icon { width:14px; height:14px; }
.switch-inline.member-marker-filter-switch input:checked + span { border-color:var(--accent); background:var(--accent); }
.member-marker-filter-switch input:checked ~ strong { color:var(--accent); }
.member-clarification-filter-switch { min-height:36px; font-size:.86rem; }
.switch-inline.member-clarification-filter-switch input:checked + span { border-color:var(--warning); background:var(--warning); }
.member-clarification-filter-switch input:checked ~ strong { color:#8a5800; }
.member-profile-marker {
    display:inline-block;
    flex:0 0 auto;
    width:18px;
    height:27px;
    background:var(--accent);
    clip-path:polygon(0 0,100% 0,100% 100%,50% 72%,0 100%);
    filter:drop-shadow(0 2px 2px rgba(98,24,48,.18));
}
.member-contact-panel { padding:1.25rem; }
.member-contact-layout { display:grid; grid-template-columns:minmax(220px,1fr) minmax(0,2fr); gap:1.5rem; align-items:stretch; }
.member-contact-photo-column { display:grid; width:100%; justify-items:stretch; align-content:start; gap:1rem; min-width:0; padding:.25rem 1.5rem .5rem .25rem; border-right:1px solid var(--line); }
.member-form.is-locked .member-contact-photo-column { height:100%; grid-template-rows:auto minmax(88px,1fr) auto; align-content:stretch; padding-bottom:0; }
.member-profile-contact-fields { display:grid; gap:.75rem; width:100%; }
.member-profile-link-field { display:grid; gap:6px; color:var(--muted); font-weight:700; }
.member-profile-email-link,
.member-profile-empty-value {
    display:flex;
    width:100%;
    min-height:40px;
    padding:9px 10px;
    align-items:center;
    gap:.5rem;
    border:1px solid #c7d1cf;
    border-radius:8px;
    background:#edf1f0;
}
.member-profile-email-link { color:var(--primary-dark); overflow-wrap:anywhere; }
.member-profile-email-link:hover,.member-profile-email-link:focus-visible { border-color:var(--primary); background:#e4f3f0; text-decoration:none; }
.member-profile-email-link:hover span,.member-profile-email-link:focus-visible span { text-decoration:underline; text-underline-offset:2px; }
.member-profile-email-link .icon { width:17px; height:17px; flex:0 0 auto; }
.member-profile-email-link span { min-width:0; overflow-wrap:anywhere; }
.member-profile-empty-value { color:var(--text); }
.member-table-profile-link { color:inherit; text-decoration:none; text-underline-offset:3px; }
.member-table-profile-link:hover,.member-table-profile-link:focus-visible { color:var(--primary-dark); text-decoration:underline; text-decoration-color:currentColor; }
.member-table-email-link { color:var(--primary-dark); font-weight:650; text-decoration:none; text-underline-offset:2px; }
.member-table-email-link:hover,.member-table-email-link:focus-visible { text-decoration:underline; text-decoration-color:currentColor; }
.member-profile-summary { width:100%; min-width:0; display:grid; grid-template-columns:minmax(150px,280px) minmax(130px,1fr); gap:1rem; align-items:start; }
.member-contact-photo-column .member-profile-image { width:min(100%,280px); height:auto; aspect-ratio:1; border:1px solid #d6dedc; border-radius:20px; box-shadow:0 2px 8px rgba(24,36,34,.06); font-size:clamp(2.2rem,5vw,4.5rem); }
.member-contact-photo-column .member-profile-number { font-size:clamp(1.35rem,3vw,2.75rem); }
.member-phplist-statuses { display:grid; width:100%; height:100%; grid-template-rows:auto repeat(3,minmax(0,1fr)); gap:.65rem; min-width:0; align-content:stretch; }
.member-profile-email-summary { padding-bottom:.65rem; border-bottom:1px solid var(--line); }
.member-interest-phplist-statuses { display:grid; width:100%; gap:.55rem; margin-top:.75rem; min-width:0; }
.member-interest-phplist-statuses.has-company-email { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; align-items:start; }
.member-interest-phplist-heading { display:grid; gap:.15rem; min-width:0; padding:.2rem .15rem .35rem; border-bottom:1px solid var(--line); }
.member-interest-phplist-heading strong { color:var(--text); font-size:.78rem; line-height:1.2; }
.member-interest-phplist-heading small { overflow:hidden; color:var(--muted); font-size:.68rem; font-weight:650; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.member-interest-phplist-statuses .member-phplist-status { border-color:#d7dfdd; background:#f7f9f8; color:var(--muted); }
.member-interest-phplist-statuses .member-phplist-status.has-action { border-color:#d7dfdd; background:#f7f9f8; }
.member-interest-phplist-statuses .member-phplist-status.is-subscribed { border-color:#dfc15c; background:#fff3bd; color:#765b00; }
.member-interest-phplist-statuses .member-phplist-status.is-subscribed .member-phplist-status-dot { background:#c79400; box-shadow:0 0 0 3px rgba(199,148,0,.15); }
.member-interest-phplist-statuses .member-phplist-status.is-subscribed strong { color:#5f4900; }
.member-interest-phplist-statuses .member-phplist-status.is-error { border-color:#d7dfdd; background:#f7f9f8; color:var(--muted); }
.member-interest-phplist-statuses .member-phplist-status.is-error .member-phplist-status-dot { background:#aeb9b6; box-shadow:0 0 0 3px rgba(174,185,182,.16); }
.member-interest-phplist-statuses .member-phplist-status.is-error strong { color:var(--text); }
.member-phplist-status { min-width:0; display:grid; grid-template-columns:10px minmax(0,1fr); gap:.55rem; align-items:start; padding:.65rem .7rem; border:1px solid #d7dfdd; border-radius:11px; background:#f7f9f8; color:var(--muted); }
.member-phplist-status-dot { width:9px; height:9px; margin-top:.22rem; border-radius:50%; background:#aeb9b6; box-shadow:0 0 0 3px rgba(174,185,182,.16); }
.member-phplist-status strong,.member-phplist-status small { display:block; overflow-wrap:anywhere; }
.member-phplist-status strong { color:var(--text); font-size:.8rem; line-height:1.2; }
.member-phplist-status small { margin-top:.2rem; color:inherit; font-size:.69rem; line-height:1.25; }
.member-phplist-status.is-subscribed { border-color:#81baa9; background:#e6f4ef; color:#176c60; }
.member-phplist-status.is-subscribed .member-phplist-status-dot { background:#19866f; box-shadow:0 0 0 3px rgba(25,134,111,.15); }
.member-phplist-status.is-subscribed strong { color:#125f54; }
.member-phplist-status.is-error { border-color:#e5c6bd; background:#fff5f2; color:#9d402b; }
.member-phplist-status.is-error .member-phplist-status-dot { background:#c65b43; box-shadow:0 0 0 3px rgba(198,91,67,.13); }
.member-phplist-status.has-action { grid-template-columns:10px minmax(0,1fr) auto; border-color:#d6b08b; background:#fff9f1; }
.member-phplist-status.is-blacklisted { border-color:var(--danger); background:#fff8f8; }
.member-phplist-status.is-blacklisted .member-phplist-status-dot { background:var(--danger); box-shadow:0 0 0 3px rgba(176,42,42,.14); }
.member-phplist-status.is-blacklisted [data-member-phplist-message] { color:var(--danger); font-weight:750; }
.member-sevdesk-summary-card.has-sevdesk-action { grid-template-columns:10px minmax(0,1fr) auto; align-items:center; }
.member-sevdesk-summary-button { align-self:center; min-height:30px; padding:.35rem .5rem; white-space:nowrap; }
.member-sevdesk-summary-button .icon { width:14px; height:14px; }
.member-phplist-subscribe { align-self:center; white-space:nowrap; padding:.4rem .55rem; }
.member-phplist-subscribe .icon { width:14px; height:14px; }
.member-phplist-status.is-loading { cursor:wait; opacity:.72; transform:none; }
.phplist-member-field-table td:first-child strong,.phplist-member-field-table td:first-child small { display:block; }
.phplist-member-field-table td:first-child small { margin-top:.15rem; color:var(--muted); font-size:.72rem; }
.phplist-member-field-table input { min-width:180px; }
.phplist-member-field-table .is-fixed td { background:#f4f8f7; }
.member-phplist-entered-at { color:#176c60!important; font-weight:700; }
.member-phplist-entered-at[hidden] { display:none; }
.member-image-dialog { width:min(1100px,calc(100vw - 2rem)); max-width:none; max-height:calc(100vh - 2rem); max-height:calc(100dvh - 2rem); margin:auto; padding:0; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 28px 80px rgba(0,0,0,.3); }
.member-image-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr); }
.member-image-dialog::backdrop { background:rgba(15,26,23,.72); backdrop-filter:blur(3px); }
.member-image-dialog-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1rem; border-bottom:1px solid var(--line); }
.member-image-dialog figure { display:grid; min-height:0; place-items:center; margin:0; padding:1rem; overflow:auto; background:#f2f5f4; }
.member-image-dialog figure img { display:block; width:auto; height:auto; max-width:100%; max-height:calc(100vh - 7rem); max-height:calc(100dvh - 7rem); border-radius:12px; object-fit:contain; box-shadow:0 4px 22px rgba(0,0,0,.16); }
.member-sevdesk-contact-dialog { position:fixed; inset:0; width:min(1040px,calc(100vw - 2rem)); max-width:none; height:min(860px,calc(100dvh - 2rem)); max-height:calc(100dvh - 2rem); margin:auto; padding:0; overflow:hidden; border:1px solid var(--line); border-radius:16px; color:var(--text); background:#fff; box-shadow:0 28px 80px rgba(0,0,0,.3); }
.member-sevdesk-contact-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.member-sevdesk-contact-dialog::backdrop { background:rgba(15,26,23,.66); backdrop-filter:blur(3px); }
.member-sevdesk-contact-dialog-header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1rem 1.15rem; border-bottom:1px solid var(--line); background:#fff; }
.member-sevdesk-contact-dialog-header > div { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:.25rem .65rem; min-width:0; }
.member-sevdesk-contact-dialog-header .badge { grid-row:1 / span 2; }
.member-sevdesk-contact-dialog-header h2 { margin:0; font-size:1.25rem; }
.member-sevdesk-contact-dialog-header p { grid-column:2; margin:0; color:var(--muted); font-size:.82rem; }
.member-sevdesk-contact-dialog-body { min-height:0; padding:1rem 1.15rem; overflow:auto; background:#f7f9f8; }
.member-sevdesk-contact-dialog > footer { display:flex; justify-content:flex-end; padding:.8rem 1.15rem; border-top:1px solid var(--line); background:#fff; }
.member-sevdesk-contact-dialog-status { margin:0 0 1rem; padding:.75rem .9rem; border-left:4px solid var(--line); border-radius:8px; color:var(--muted); background:#fff; line-height:1.4; }
.member-sevdesk-contact-dialog-status[data-state="loading"] { border-left-color:var(--primary); }
.member-sevdesk-contact-dialog-status[data-state="match"] { border-left-color:#23836e; color:#176455; background:#edf8f4; }
.member-sevdesk-contact-dialog-status[data-state="mismatch"],.member-sevdesk-contact-dialog-status[data-state="error"] { border-left-color:var(--danger); color:#9f2f2f; background:#fff1f1; }
.member-sevdesk-contact-dialog-content { display:grid; gap:1rem; }
.member-sevdesk-contact-warning { margin:0; }
.member-sevdesk-contact-warning strong { display:block; margin-bottom:.3rem; }
.member-sevdesk-contact-warning ul { margin:.3rem 0 0; padding-left:1.2rem; }
.member-sevdesk-contact-section { overflow:hidden; border:1px solid var(--line); border-radius:11px; background:#fff; }
.member-sevdesk-contact-section h3 { margin:0; padding:.7rem .85rem; border-bottom:1px solid var(--line); font-size:.95rem; background:#eef3f1; }
.member-sevdesk-contact-section .table-wrap { margin:0; }
.member-sevdesk-contact-table { width:100%; min-width:720px; table-layout:fixed; }
.member-sevdesk-contact-table th:first-child { width:25%; }
.member-sevdesk-contact-table th:nth-child(2),.member-sevdesk-contact-table th:nth-child(3) { width:37.5%; }
.member-sevdesk-contact-table td { overflow-wrap:anywhere; vertical-align:top; white-space:pre-wrap; }
.member-sevdesk-contact-table td:first-child { font-weight:700; }
.member-sevdesk-contact-table td:first-child small { display:block; margin-top:.2rem; color:var(--muted); font-size:.7rem; font-weight:600; }
.member-sevdesk-contact-table tr.is-mismatch td { color:#8f2727; background:#fff0f0; border-color:#efc7c7; }
.member-sevdesk-contact-table tr.is-mismatch td:first-child { box-shadow:inset 4px 0 0 #cf4e4e; }
.member-sevdesk-contact-table td:first-child .member-sevdesk-contact-mismatch-label { color:#b22f2f; font-weight:800; text-transform:uppercase; letter-spacing:.03em; }
.member-sevdesk-contact-dialog.is-loading { cursor:wait; }
.member-profile-controls { display:grid; gap:.75rem; width:100%; }
.member-profile-adjust-tools { display:grid; gap:.65rem; width:min(100%,280px); padding:.75rem; border:1px solid var(--line); border-radius:11px; background:var(--surface-soft); }
.member-profile-adjust-tools p { margin:0; color:var(--muted); font-size:.75rem; line-height:1.35; }
.member-profile-adjust-tools .profile-control-row { margin:0; }
.member-profile-adjust-tools .autosave-status { justify-self:start; }
.member-profile-upload-row { display:grid; width:min(100%,440px); grid-template-columns:minmax(0,1fr) auto; gap:.55rem; align-items:end; }
.member-profile-upload-row label { min-width:0; }
.member-profile-upload-button { min-height:40px; white-space:nowrap; }
.member-interests-notes { display:grid; justify-self:stretch; gap:.4rem; width:100%; max-width:none; text-align:left; }
.member-interests-notes textarea { display:block; width:100%; max-width:none; min-height:88px; box-sizing:border-box; resize:vertical; }
.member-interests-notes textarea,
.member-contact-notes-field textarea { font-weight:400!important; }
.member-form.is-locked .member-interests-notes { min-height:0; grid-template-rows:auto minmax(88px,1fr); }
.member-form.is-locked .member-interests-notes textarea { height:100%; }
.member-form.is-locked .member-interests-notes textarea:disabled { opacity:1; color:var(--text); border-color:#c7d1cf; background:#edf1f0; }
.member-contact-data-column { min-width:0; text-align:left; }
.member-contact-heading { align-items:flex-start; margin-bottom:1rem; }
.member-contact-status { display:flex; justify-content:flex-end; gap:.5rem; flex-wrap:wrap; }
.member-affiliation-options { display:flex; align-items:center; justify-content:flex-end; gap:.38rem; flex-wrap:wrap; }
.member-affiliation-option,
.member-affiliation-badge { display:inline-flex; align-items:center; gap:.26rem; min-height:18px; margin:0; padding:.08rem .4rem; border:1px solid transparent; border-radius:999px; font-size:.66rem; font-weight:700; line-height:1; white-space:nowrap; }
.member-affiliation-option { cursor:pointer; }
.member-affiliation-option input[type="hidden"] { display:none; }
.member-affiliation-option input[type="checkbox"] { width:12px; height:12px; margin:0; }
.member-affiliation-option.is-purple,
.member-affiliation-badge.is-purple { color:#5e3786; border-color:#bba2d3; background:#f0e9f7; }
.member-affiliation-option.is-purple input { accent-color:#754aa0; }
.member-affiliation-option.is-blue,
.member-affiliation-badge.is-blue { color:#175e85; border-color:#91bfd8; background:#e6f2f8; }
.member-affiliation-option.is-blue input { accent-color:#2479a9; }
.member-affiliation-option.is-yellow,
.member-affiliation-badge.is-yellow { color:#765600; border-color:#dfc35d; background:#fff6c9; }
.member-affiliation-option.is-yellow input { accent-color:#c99400; }
.member-affiliation-option.is-orange,
.member-affiliation-badge.is-orange { color:#8b4514; border-color:#e6a36d; background:#fff0e2; }
.member-affiliation-option.is-orange input { accent-color:#d46c20; }
.member-form-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.member-contact-fields { grid-template-columns:repeat(12,minmax(0,1fr)); text-align:left; }
.member-contact-fields > label { grid-column:span 4; }
.member-contact-fields .member-number-field,
.member-contact-fields .member-type-field,
.member-contact-fields .member-addressing-field,
.member-contact-fields .member-salutation-field { grid-column:span 3; }
.member-contact-wide,
.member-contact-fields .member-contact-wide { grid-column:1 / -1; }
.member-contact-fields .member-organization-field { grid-column:1 / span 8; }
.member-contact-fields .member-position-field { grid-column:9 / span 4; }
.member-contact-fields .member-street-field,
.member-contact-fields .member-address-extra-field { grid-column:span 6; }
.member-contact-fields .member-greeting-field,
.member-contact-fields .member-website-field,
.member-contact-fields .member-birth-or-foundation-field { grid-column:span 4; }
.member-contact-fields .member-phone-field,
.member-contact-fields .member-mobile-field,
.member-contact-fields .member-fax-field,
.member-contact-fields .member-email2-field { grid-column:span 3; }
.member-contact-fields:not(.is-create) .member-website-field,
.member-contact-fields:not(.is-create) .member-birth-or-foundation-field { grid-column:span 6; }
.member-contact-fields .member-contact-notes-field { grid-column:1 / -1; }
.member-contact-notes-field textarea { min-height:88px; resize:vertical; }
.member-field-label { display:flex; align-items:baseline; gap:.5rem; }
.member-field-label small { color:var(--muted); font-size:.74rem; font-weight:500; }
.member-membership-date-action { display:grid; grid-template-columns:minmax(0,1fr) max-content; min-width:0; gap:.5rem; align-items:end; align-content:start; }
.member-membership-date-action > label { grid-column:1; grid-row:1; min-width:0; }
.member-membership-date-action > label > input,
.member-document-action > .button { height:40px; min-height:40px; }
.member-document-action { position:relative; grid-column:2; grid-row:1; display:inline-flex; align-self:end; }
.member-document-action > .button { width:100%; white-space:nowrap; }
.member-document-action[data-tooltip] > .button:disabled { pointer-events:none; }
.member-document-action[data-tooltip]::before,
.member-document-action[data-tooltip]::after { position:absolute; z-index:30; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .13s ease,transform .13s ease,visibility .13s; }
.member-document-action[data-tooltip]::before { content:""; top:calc(100% + 3px); right:18px; border-right:5px solid transparent; border-bottom:5px solid #203b53; border-left:5px solid transparent; transform:translateY(-3px); }
.member-document-action[data-tooltip]::after { content:attr(data-tooltip); top:calc(100% + 8px); right:0; width:max-content; max-width:min(310px,calc(100vw - 32px)); padding:7px 9px; border-radius:7px; color:#fff; background:#203b53; box-shadow:0 8px 20px rgba(22,44,62,.24); font-size:11.5px; font-weight:600; line-height:1.35; text-align:left; white-space:normal; transform:translateY(-3px); }
.member-document-action[data-tooltip]:hover::before,
.member-document-action[data-tooltip]:hover::after,
.member-document-action[data-tooltip]:focus-visible::before,
.member-document-action[data-tooltip]:focus-visible::after { opacity:1; visibility:visible; transform:translateY(0); }
.member-greeting-field input[readonly] { color:var(--muted); background:var(--surface-soft); cursor:not-allowed; pointer-events:none; }
.member-form-grid .wide { grid-column:span 2; }
.member-number-edit-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem; align-items:stretch; }
.member-number-edit-row .member-number-unlock { min-height:42px; white-space:nowrap; }
.member-number-field > input[type="hidden"] { display:none; }
.member-form.is-locked input:not([type="checkbox"]):not([type="radio"]):disabled,
.member-form.is-locked input:not([type="checkbox"]):not([type="radio"])[readonly],
.member-form.is-locked select:disabled,
.member-form.is-locked textarea:disabled {
    opacity:1;
    color:var(--text);
    border-color:#c7d1cf;
    background:#edf1f0;
    box-shadow:inset 0 0 0 1px rgba(91,108,103,.04);
    cursor:not-allowed;
    -webkit-text-fill-color:var(--text);
}
.member-form.is-locked .member-form-grid > label:not(.check-inline):has(input:disabled,input[readonly],select:disabled,textarea:disabled),
.member-form.is-locked .member-form-grid > .member-membership-date-action > label:has(input:disabled,input[readonly]) { position:relative; }
.member-form.is-locked .member-form-grid > label:not(.check-inline):has(input:disabled,input[readonly],select:disabled,textarea:disabled)::after,
.member-form.is-locked .member-form-grid > .member-membership-date-action > label:has(input:disabled,input[readonly])::after {
    content:"";
    position:absolute;
    top:1px;
    right:2px;
    width:14px;
    height:14px;
    opacity:.72;
    background:no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2366756f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='10' width='14' height='11' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");
    pointer-events:none;
}
.member-organization-field { grid-column:1 / span 2; }
.member-position-field { grid-column:span 2; }
.member-billing-classification { display:grid; grid-template-columns:minmax(280px,2fr) minmax(170px,1fr) auto minmax(190px,1fr); gap:1rem; align-items:end; margin-bottom:1rem; }
.member-contribution-custom-toggle { min-height:42px; align-self:end; white-space:nowrap; }
.member-contribution-discount-reason { grid-column:1 / -1; }
.member-billing-subheading { margin:0 0 .65rem; font-size:.92rem; }
.member-billing-options { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.75rem; margin-bottom:1rem; }
.member-billing-card { position:relative; display:grid; grid-template-columns:38px minmax(0,1fr) 23px; align-items:center; gap:.65rem; min-height:78px; padding:.7rem .8rem; border:1px solid var(--line); border-radius:12px; color:var(--text); background:linear-gradient(145deg,#fff,#f8fbfa); font-weight:500; cursor:pointer; transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease; }
.member-billing-card:hover { border-color:#8abbb3; box-shadow:0 8px 22px rgba(15,107,95,.09); transform:translateY(-1px); }
.member-billing-card > input { position:absolute; width:1px; height:1px; min-height:0; margin:0; padding:0; opacity:0; pointer-events:none; }
.member-billing-card:focus-within { outline:3px solid rgba(15,107,95,.16); outline-offset:2px; }
.member-billing-card-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; color:var(--primary); background:#e8f4f1; }
.member-billing-card-icon .icon { width:19px; height:19px; }
.member-billing-card-copy { display:grid; gap:.3rem; min-width:0; }
.member-billing-card-copy strong { color:var(--text); font-size:.94rem; }
.member-billing-card-copy small { color:var(--muted); font-size:.78rem; line-height:1.3; font-weight:500; }
.member-billing-card-state { display:grid; place-items:center; width:22px; height:22px; border:2px solid #b8c7c3; border-radius:50%; color:transparent; background:#fff; transition:all .18s ease; }
.member-billing-card-state .icon { width:13px; height:13px; }
.member-billing-card:has(input:checked) { border-color:var(--primary); background:linear-gradient(145deg,#f3fbf8,#e8f5f1); box-shadow:0 8px 24px rgba(15,107,95,.13); }
.member-billing-card:has(input:checked) .member-billing-card-icon { color:#fff; background:var(--primary); }
.member-billing-card:has(input:checked) .member-billing-card-state { border-color:var(--primary); color:#fff; background:var(--primary); }
.member-billing-card:has(input:disabled) { cursor:default; }
.member-billing-card:has(input:disabled):hover { transform:none; }
.member-billing-card:has(input:disabled):not(:has(input:checked)) { opacity:.58; box-shadow:none; }
.member-bank-fields[hidden], .member-company-section[hidden] { display:none; }
.member-bank-lookup-action { align-self:end; }
.member-bank-lookup-action .button { min-height:42px; width:100%; }
.member-bank-lookup-result { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.65rem .8rem; border:1px solid; border-radius:8px; font-size:.9rem; font-weight:600; }
.member-bank-lookup-result[hidden] { display:none; }
.member-bank-lookup-result.is-different,
.member-bank-lookup-result.is-error { color:#9f2d2d; border-color:#efb5b5; background:#fff0f0; }
.member-bank-lookup-result.is-match { color:#0f6b5f; border-color:#a8d6cd; background:#edf8f5; }
.member-bank-lookup-result .button { flex:0 0 auto; }
.member-billing-details { margin-top:1rem; }
.member-year-table { min-width:1050px; }
.member-contribution-table { min-width:1360px; }
.member-year-table input { min-width:110px; }
.member-year-table td:first-child { width:70px; }
.member-employee-table { min-width:1320px; }
.member-saxony-location-heading { width:240px; max-width:240px; line-height:1.35; white-space:normal; }
.member-saxony-location-cell { text-align:center; vertical-align:middle; }
.member-saxony-location-check { position:relative; display:inline-grid; width:26px; height:26px; place-items:center; cursor:pointer; }
.member-saxony-location-check:has(input:disabled) { cursor:default; }
.member-year-table .member-saxony-location-check input[type="checkbox"] { position:absolute; inset:0; width:100%; min-width:0; height:100%; min-height:0; margin:0; padding:0; opacity:0; cursor:inherit; }
.member-saxony-location-box { position:relative; display:block; width:22px; height:22px; border:1px solid #747a78; border-radius:4px; background:#d2d5d4; box-shadow:inset 0 1px 2px rgba(0,0,0,.12); }
.member-saxony-location-check input:checked + .member-saxony-location-box::after { content:""; position:absolute; left:6px; top:2px; width:6px; height:11px; border:solid #080808; border-width:0 3px 3px 0; transform:rotate(45deg); }
.member-saxony-location-check:has(input:focus-visible) .member-saxony-location-box { outline:3px solid rgba(15,107,95,.25); outline-offset:2px; }
.member-form-actions { padding:1rem; background:rgba(255,255,255,.96); border:1px solid var(--border,#d8e1df); border-radius:12px; box-shadow:0 6px 24px rgba(0,0,0,.08); }
.member-contribution-category-table { min-width:900px; }
.member-contribution-category-table td:first-child { width:58%; }
.member-contribution-category-table td:last-child { width:120px; }
.member-contribution-category-table input { width:100%; }
.member-admin-euro-field { display:grid; grid-template-columns:minmax(110px,1fr) auto; align-items:center; gap:.5rem; }
.member-admin-euro-field strong { color:var(--muted); font-size:.86rem; }
.phplist-member-list-form { display:grid; grid-template-columns:repeat(2,minmax(220px,1fr)); gap:1rem; align-items:end; }
.phplist-member-list-form label { min-width:0; }
.phplist-member-list-mapping { display:grid; gap:.5rem; min-width:0; padding:.7rem; border:1px solid var(--line); border-radius:9px; background:var(--surface-soft); }
.phplist-show-for-contacts { margin:0; }
.phplist-member-list-form > .button { grid-column:1/-1; justify-self:start; }
.phplist-member-list-note { margin:.85rem 0 0; }
.member-contribution-category-create { display:grid; grid-template-columns:minmax(280px,2fr) minmax(180px,1fr) auto; align-items:end; gap:1rem; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line); }
.bank-directory-actions form { margin:0; }
.bank-directory-metrics .metric strong { margin-top:5px; font-size:18px; font-weight:600; line-height:1.3; }
.bank-directory-note { margin:.75rem 0 0; font-size:.82rem; }
.bank-directory-history { margin-top:1rem; }
.bank-directory-history > summary { cursor:pointer; font-weight:700; color:var(--primary); }
.member-create-actions { position:static; margin-top:.25rem; }
.member-edit-actions { position:static; margin:1rem 0; }
.member-related-tree { display:grid; }
.member-related-company-root { display:flex; align-items:center; gap:.65rem; min-height:54px; padding:.55rem .7rem; border:1px solid #bcd5cf; border-left:3px solid var(--primary); border-radius:9px; background:#edf7f4; }
.member-related-company-icon { display:grid; place-items:center; width:32px; height:32px; flex:0 0 auto; border-radius:50%; color:var(--primary-dark); background:#d8ece7; }
.member-related-company-icon .icon { width:17px; height:17px; }
.member-related-company-heading,.member-related-company-meta { display:flex; align-items:center; gap:.35rem .7rem; flex-wrap:wrap; }
.member-related-company-heading > strong { color:var(--text); font-size:.92rem; }
.member-related-company-heading .badge { font-size:.63rem; }
.member-related-company-meta { margin-top:.15rem; color:var(--muted); font-size:.75rem; }
.member-related-company-meta > span,.member-related-company-meta > a { display:inline-flex; align-items:center; gap:.3rem; color:inherit; }
.member-related-company-meta .icon { width:13px; height:13px; }
.member-related-children { position:relative; margin-left:16px; padding:.55rem 0 0 1.55rem; border-left:1px solid #b7cbc7; }
.member-related-list { display:grid; gap:.45rem; }
.member-related-list > article,.member-related-list > .member-related-empty,.member-related-list > .member-related-distribution-preview { position:relative; }
.member-related-list > article::before,.member-related-list > .member-related-empty::before,.member-related-list > .member-related-distribution-preview::before { content:""; position:absolute; top:26px; right:100%; width:1.6rem; border-top:1px solid #b7cbc7; }
.member-related-list article { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.35rem .75rem; align-items:start; border:1px solid var(--border,#d8e1df); border-radius:8px; padding:.6rem .7rem; background:#fff; }
.member-related-list article.is-branch { border-color:#b9d4df; background:#f5fafc; }
.member-related-list p { margin:.3rem 0 0; color:var(--muted,#66736f); }
.member-related-card-main { display:grid; grid-column:1; grid-row:1; min-width:0; gap:.25rem; }
.member-related-list article:has(> .member-related-distributions) .member-related-card-main { padding-right:clamp(300px,34vw,470px); }
.member-related-card-heading { display:flex; align-items:center; gap:.55rem; flex-wrap:wrap; }
.member-related-card-heading > strong { font-size:1rem; }
.member-related-member-link { color:var(--primary); font-size:1rem; font-weight:800; text-decoration:underline; text-decoration-color:color-mix(in srgb,currentColor 45%,transparent); text-underline-offset:3px; }
.member-related-member-link:hover,.member-related-member-link:focus-visible { color:var(--primary-dark); text-decoration-color:currentColor; }
.member-company-affiliation-field { display:grid; gap:.35rem; min-width:0; }
.member-company-affiliation-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:1rem; min-width:0; }
.member-company-affiliation-row.is-single { grid-template-columns:1fr; }
.member-company-affiliation-row > label { min-width:0; margin:0; }
.member-company-affiliation-field > .member-field-label { color:var(--text); font-weight:700; }
.member-company-affiliation-link,.member-company-affiliation-empty { display:flex; align-items:center; gap:.5rem; min-height:42px; padding:.55rem .7rem; border:1px solid var(--line); border-radius:8px; background:#fff; }
.member-company-affiliation-link { color:var(--primary-dark); font-weight:800; text-decoration:none; }
.member-company-affiliation-link:hover,.member-company-affiliation-link:focus-visible { border-color:var(--primary); background:var(--surface-soft); text-decoration:underline; text-underline-offset:3px; }
.member-company-affiliation-link .icon { width:16px; height:16px; flex:0 0 auto; }
.member-company-affiliation-link small { margin-left:auto; color:var(--muted); font-weight:700; }
.member-company-affiliation-empty { color:var(--muted); background:#f8faf9; }
.member-company-affiliation-field > small { color:var(--muted); font-size:.78rem; font-weight:600; }
.member-company-affiliation-row[hidden] { display:none; }
[data-member-company-hint][data-state="selected"] { color:var(--primary-dark); }
.member-related-membership-badge.is-company { color:#176c60; background:#e6f4ef; }
.member-related-membership-badge.is-personal { color:#765b00; background:#fff3bd; }
.member-related-membership-badge.is-branch { color:#245b70; background:#dfeff5; }
.member-related-card-meta { display:flex; align-items:center; gap:.3rem .75rem; flex-wrap:wrap; color:var(--muted); font-size:.78rem; }
.member-related-card-meta > span,.member-related-card-meta > a { display:inline-flex; align-items:center; gap:.35rem; min-width:0; color:inherit; }
.member-related-card-meta > a:hover { color:var(--primary); text-decoration:underline; }
.member-related-card-meta .icon { width:14px; height:14px; flex:0 0 auto; }
.member-related-no-distributions { color:#52717d; font-weight:700; }
.member-related-empty { display:flex; align-items:center; gap:.7rem; padding:.7rem; border:1px dashed var(--line); border-radius:8px; color:var(--muted); background:var(--surface-soft); }
.member-related-empty > .icon { width:24px; height:24px; flex:0 0 auto; color:var(--primary); }
.member-related-empty strong { color:var(--text); }
.member-related-empty p { margin:.15rem 0 0; }
.member-related-actions { display:flex; grid-column:2; grid-row:1; align-self:end; justify-self:end; align-items:flex-end; gap:.5rem; }
.member-related-list article:has(> .member-related-distributions) .member-related-actions { margin-top:2rem; }
.member-related-actions details > summary { list-style:none; }
.member-related-actions details > form,.member-related-actions details > .stack { position:absolute; right:2rem; z-index:4; min-width:300px; background:#fff; border:1px solid var(--border,#d8e1df); border-radius:10px; padding:1rem; box-shadow:0 8px 28px rgba(0,0,0,.14); }
.member-related-distributions { grid-column:1 / -1; grid-row:2; width:100%; min-width:0; margin:0; color:var(--text); }
.member-related-distributions[open] { width:100%; margin:0; }
.member-related-distributions-heading { position:absolute; z-index:2; top:.6rem; right:.7rem; display:flex; align-items:center; justify-content:flex-end; gap:.45rem; width:max-content; max-width:calc(100% - 1.4rem); min-height:26px; margin:0; padding:.2rem .4rem; border:1px solid var(--line); border-radius:6px; color:var(--primary-dark); background:var(--surface-soft); cursor:pointer; list-style:none; white-space:nowrap; }
.member-related-distributions-heading::-webkit-details-marker { display:none; }
.member-related-distributions-heading > span:first-child { display:inline-flex; align-items:center; gap:.3rem; font-weight:700; }
.member-related-distributions-heading .icon { width:13px; height:13px; color:var(--primary); }
.member-related-distributions-heading .badge { padding:2px 6px; font-size:.64rem; }
.member-related-distribution-summary-counts { display:inline-flex; align-items:center; gap:.3rem; }
.member-related-distribution-email-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; margin-top:.65rem; }
.member-related-distribution-email-group { min-width:0; padding:.6rem; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.member-related-distribution-email-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:.6rem; }
.member-related-distribution-email-heading > span:first-child { display:grid; gap:.1rem; min-width:0; }
.member-related-distribution-email-heading strong,.member-related-distribution-email-heading small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.member-related-distribution-email-heading small { color:var(--muted); font-size:.72rem; }
.member-related-distribution-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; margin-top:.65rem; }
.member-related-distribution-grid .member-phplist-status { min-height:62px; }
.member-related-distribution-preview { padding:.55rem .7rem; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.member-related-distribution-preview > summary { display:flex; align-items:center; justify-content:space-between; gap:.5rem; cursor:pointer; list-style:none; }
.member-related-distribution-preview > summary::-webkit-details-marker { display:none; }
.member-related-toolbar { display:flex; align-items:flex-start; gap:.6rem; flex-wrap:wrap; margin-top:1rem; }
.member-related-add { margin:0; }
.member-related-add[open] { flex:1 1 760px; }
.member-related-add > summary { display:inline-flex; list-style:none; }
.member-related-add form { margin-top:1rem; }
.member-related-add-grid { grid-template-columns:minmax(300px,2fr) minmax(340px,1.4fr); margin-top:1rem; }
.member-related-branch-add .member-related-add-grid { grid-template-columns:1fr; }
.member-related-contact-search { position:relative; display:block; }
.member-related-contact-suggestions { position:absolute; z-index:40; top:calc(100% + 6px); right:0; left:0; display:grid; gap:3px; max-height:280px; overflow-y:auto; padding:6px; border:1px solid var(--line); border-radius:8px; background:var(--surface); box-shadow:var(--shadow); }
.member-related-contact-suggestions[hidden] { display:none; }
.member-related-contact-suggestion { display:grid; gap:2px; width:100%; padding:9px 10px; border:0; border-radius:6px; color:var(--text); background:transparent; font:inherit; text-align:left; cursor:pointer; }
.member-related-contact-suggestion:hover,.member-related-contact-suggestion[data-active="true"] { color:var(--primary-dark); background:var(--surface-soft); }
.member-related-contact-suggestion small,.member-related-contact-empty,.member-related-contact-hint { color:var(--muted); font-size:.78rem; font-weight:500; }
.member-related-contact-empty { display:block; padding:9px 10px; }
.member-related-contact-hint { display:block; margin-top:.3rem; }
.member-related-contact-hint[data-state="selected"] { color:var(--primary); }
.member-related-contact-hint[data-state="error"] { color:var(--danger,#b42318); }
.member-related-manual-action { display:flex; align-items:end; }
.member-related-create-dialog { width:min(980px,calc(100vw - 2rem)); max-height:min(860px,calc(100vh - 2rem)); max-height:min(860px,calc(100dvh - 2rem)); margin:auto; padding:1.1rem; overflow:auto; border:1px solid var(--line); border-radius:14px; background:var(--surface); box-shadow:0 24px 70px rgba(0,0,0,.24); }
.member-related-create-dialog::backdrop { background:rgba(20,34,31,.56); backdrop-filter:blur(2px); }
.member-related-detail-dialog { width:min(2320px,calc(100vw - 16px)); max-width:calc(100vw - 16px); height:calc(100dvh - 16px); max-height:calc(100dvh - 16px); margin:auto; padding:0; overflow:hidden; border:1px solid #9fc8c0; border-radius:14px; background:#fff; box-shadow:0 24px 80px rgba(0,0,0,.3); }
.member-related-detail-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr); }
.member-related-detail-dialog::backdrop { background:rgba(17,42,38,.48); backdrop-filter:blur(1px); }
.member-related-detail-dialog-header { display:flex; min-height:68px; padding:.7rem 1rem; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid #b9d7d1; background:#edf7f5; }
.member-related-detail-dialog-header > div:first-child { display:grid; grid-template-columns:auto minmax(0,1fr); gap:1px .65rem; align-items:baseline; min-width:0; }
.member-related-detail-dialog-header > div:first-child > span { grid-row:1 / span 2; align-self:center; padding:3px 7px; border-radius:999px; color:#176b5f; background:#dfeeea; font-size:.65rem; font-weight:850; letter-spacing:.055em; text-transform:uppercase; }
.member-related-detail-dialog-header h2 { min-width:0; margin:0; overflow:hidden; color:#173d38; font-size:1.1rem; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.member-related-detail-dialog-header small { color:var(--muted); font-size:.72rem; font-weight:700; }
.member-related-detail-dialog-actions { display:flex; align-items:center; gap:.5rem; flex:0 0 auto; }
.member-related-detail-edit[hidden] { display:none; }
.member-related-detail-frame { width:100%; height:100%; border:0; background:#fff; }
.member-related-choice-dialog { width:min(680px,calc(100vw - 2rem)); }
.member-related-choice-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1rem; margin:1.25rem 0; }
.member-related-choice { display:flex; align-items:center; gap:1rem; min-height:110px; padding:1.1rem; border:1px solid var(--line); border-radius:12px; color:var(--text); background:var(--surface); text-align:left; cursor:pointer; }
.member-related-choice:hover,.member-related-choice:focus-visible { border-color:var(--primary); background:var(--surface-soft); }
.member-related-choice > .icon { width:30px; height:30px; color:var(--primary); }
.member-related-choice span { display:grid; gap:.25rem; }
.member-related-choice strong { font-size:1rem; }
.member-related-choice small { color:var(--muted); }
.member-related-create-form { margin-top:1rem; }
.member-manual-fields[hidden] { display:none; }
[data-related-contact][hidden],[data-related-member][hidden],[data-related-manual][hidden] { display:none; }
.member-history-list { display:grid; gap:.75rem; }
.member-comments { scroll-margin-top:1rem; }
.member-history-summary { cursor:pointer; list-style:none; margin:0; }
.member-history-summary::-webkit-details-marker { display:none; }
.member-history-summary::after { content:"▾"; color:var(--muted); font-size:1rem; transition:transform .16s ease; }
.member-history[open] > .member-history-summary::after { transform:rotate(180deg); }
.member-history[open] > .member-history-summary { margin-bottom:1rem; }
.member-history-header-controls { display:flex; align-items:center; justify-content:flex-end; gap:1rem; margin-left:auto; }
.member-history-marker-switch { color:var(--muted); }
.member-history-marker-switch:has(input:checked) { color:var(--primary); }
.member-history-list [hidden] { display:none; }
.member-history-list details { border:1px solid var(--border,#d8e1df); border-radius:10px; overflow:hidden; }
.member-history-list summary { cursor:pointer; display:flex; justify-content:space-between; gap:1rem; padding:.9rem 1rem; background:#f7faf9; }
.member-history-event-meta { display:flex; align-items:center; justify-content:flex-end; gap:.65rem; flex-wrap:wrap; }
.member-history-event-meta .button { white-space:nowrap; }
.member-history-event-title { display:grid; gap:.2rem; min-width:0; }
.member-history-event-title small { color:var(--muted); font-size:.75rem; font-weight:500; line-height:1.35; }
.member-history-list details > .table-wrap { padding:.75rem; }
.member-history-table { table-layout:fixed; }
.member-history-table th:first-child,.member-history-field { width:24%; }
.member-history-table th,.member-history-table td { vertical-align:top; }
.member-history-field { font-weight:700; }
.member-history-value-list { display:grid; gap:.45rem; }
.member-history-value-list > div { display:grid; gap:.08rem; }
.member-history-value-list span { color:var(--muted); font-size:.7rem; font-weight:700; line-height:1.25; text-transform:uppercase; letter-spacing:.025em; }
.member-history-value-list strong { font-size:.86rem; font-weight:600; line-height:1.35; overflow-wrap:anywhere; }
.member-history-value-list .is-empty strong { color:var(--muted); font-style:italic; font-weight:500; }
.member-comments { margin-top:1rem; }
.sevdesk-env-example { margin:1rem 0; padding:1rem; overflow:auto; border:1px solid var(--line); border-radius:10px; color:#dcebe7; background:#19332e; line-height:1.65; }
.sevdesk-account-selection { margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line); }
.sevdesk-account-selection .button { justify-self:start; }
@media (max-width:1200px) { .member-tiles{grid-template-columns:repeat(3,1fr)} .member-export-fields{grid-template-columns:repeat(3,1fr)} .member-form-grid,.member-billing-classification{grid-template-columns:repeat(2,minmax(0,1fr))} .member-contact-fields>label{grid-column:auto} .member-contact-fields>.member-contact-wide{grid-column:1 / -1} .member-contribution-discount-reason{grid-column:1 / -1} .member-organization-field{grid-column:1} .member-position-field{grid-column:2} .member-contact-fields .member-organization-field{grid-column:1} .member-contact-fields .member-position-field{grid-column:2} }
@media (max-width:1200px) { .member-contact-fields .member-street-field,.member-contact-fields .member-address-extra-field{grid-column:auto} }
@media (max-width:1200px) { .member-contact-fields .member-greeting-field,.member-contact-fields .member-website-field,.member-contact-fields .member-birth-or-foundation-field,.member-contact-fields:not(.is-create) .member-website-field,.member-contact-fields:not(.is-create) .member-birth-or-foundation-field{grid-column:auto} }
@media (max-width:1200px) { .member-contact-fields .member-phone-field,.member-contact-fields .member-mobile-field,.member-contact-fields .member-fax-field,.member-contact-fields .member-email2-field{grid-column:auto} }
@media (max-width:1180px) { .member-sticky-controls{top:106px} .member-list-panel .table-wrap{overflow-x:auto} .member-table thead th{top:var(--member-table-head-top)} }
@media (max-width:1500px) { .member-billing-options{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:900px), (hover:none) and (pointer:coarse) and (max-width:1000px) and (max-height:600px) { .member-contact-layout{grid-template-columns:1fr} .member-contact-photo-column,.member-form.is-locked .member-contact-photo-column{height:auto;grid-template-rows:none;align-content:start;padding:0 0 1.25rem;border-right:0;border-bottom:1px solid var(--line)} .member-form.is-locked .member-interests-notes{grid-template-rows:auto auto}.member-form.is-locked .member-interests-notes textarea{height:auto}.member-contact-photo-column .member-profile-image{width:min(240px,70vw)} }
@media (max-width:900px), (hover:none) and (pointer:coarse) and (max-width:1000px) and (max-height:600px) { .member-list-heading{align-items:stretch;flex-direction:column} .member-list-heading>div:first-child .muted{white-space:normal} .member-list-controls{justify-content:flex-start} }
@media (max-width:900px), (hover:none) and (pointer:coarse) and (max-width:1000px) and (max-height:600px) { .member-file-upload-form{grid-template-columns:1fr;align-items:stretch} }
@media (max-width:900px), (hover:none) and (pointer:coarse) and (max-width:1000px) and (max-height:600px) { .member-sevdesk-status{grid-template-columns:1fr} }
@media (max-width:900px), (hover:none) and (pointer:coarse) and (max-width:1000px) and (max-height:600px) { .backup-restore-upload-form,.backup-restore-confirm-form,.backup-chunk-progress,.backup-set-inputs{grid-template-columns:1fr;align-items:stretch}.backup-preview-grid{grid-template-columns:1fr 1fr} }
@media (max-width:720px) { .member-tiles{grid-template-columns:repeat(2,1fr)} .member-export-fields,.member-export-addition-grid{grid-template-columns:1fr} .member-profile-image{width:80px;height:80px} .member-form-grid,.member-company-affiliation-row{grid-template-columns:1fr} .member-form-grid .wide,.member-organization-field,.member-position-field,.member-contact-wide,.member-contact-fields .member-organization-field,.member-contact-fields .member-position-field{grid-column:auto} .member-contact-heading{display:block} .member-contact-status{justify-content:flex-start;margin-top:.75rem} .member-billing-classification,.member-contribution-category-create{grid-template-columns:1fr} .member-contribution-discount-reason{grid-column:auto} .member-billing-options{grid-template-columns:1fr} .member-history-list summary{display:block} .member-history-table{min-width:720px} }
@media (max-width:720px) { .member-interest-phplist-statuses.has-company-email{grid-template-columns:1fr} }
@media (max-width:720px) { .membership-new-recipient-grid{grid-template-columns:1fr}.membership-new-recipient-grid .wide{grid-column:auto}.membership-application-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)} }
@media (max-width:1100px) { .member-related-distribution-email-groups{grid-template-columns:1fr} }
@media (max-width:720px) { .member-related-list article{grid-template-columns:1fr;align-items:stretch}.member-related-card-main,.member-related-actions,.member-related-distributions{grid-column:1;grid-row:auto}.member-related-actions{justify-self:end;justify-content:flex-end}.member-related-distributions-heading{width:100%;justify-content:space-between}.member-related-choice-grid,.member-related-distribution-grid,.member-related-add-grid{grid-template-columns:1fr}.member-related-distribution-summary-counts{display:none} }
@media (max-width:720px) { .member-related-list article:has(> .member-related-distributions) .member-related-card-main{padding-right:0}.member-related-list article:has(> .member-related-distributions) .member-related-actions{margin-top:0}.member-related-distributions-heading{position:static;max-width:100%;margin-left:auto} }
@media (max-width:800px) { .member-related-detail-dialog { width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; border:0; border-radius:0; } .member-related-detail-dialog-header { min-height:58px; padding:.55rem .65rem; } .member-related-detail-dialog-header > div:first-child > span,.member-related-detail-dialog-header small { display:none; } .member-related-detail-dialog-header > div:first-child { display:block; } .member-related-detail-dialog-actions > a { display:none; } }
@media (max-width:720px) { .phplist-member-list-form{grid-template-columns:1fr} }
@media (max-width:520px) { .member-profile-summary{grid-template-columns:1fr} .member-phplist-statuses{width:min(100%,280px);height:auto;grid-template-rows:none} }
@media (max-width:520px) {
    .member-membership-date-action { grid-template-columns:1fr; }
    .member-membership-date-action > label,
    .member-membership-date-action > .member-document-action { grid-column:1; grid-row:auto; }
    .member-document-action { display:flex; }
}

* {
    box-sizing: border-box;
}

html {
    overflow-y: scroll;
    scrollbar-gutter: stable;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
    margin: 0;
    color: var(--text);
    background: var(--bg);
    font-size: 15px;
}

body.has-dialog-open {
    overflow: hidden;
}

body.staff-viewing-other {
    --bg: #fbefef;
    --surface-soft: #f8e9e9;
    --line: #ead3d3;
}

body.staff-viewing-other .section-submenu {
    background: rgba(248, 233, 233, .97);
}

img,
svg {
    max-width: 100%;
}

a {
    color: var(--primary);
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 68px;
    padding-block: 10px;
    padding-inline: max(var(--content-gutter), calc((100vw - var(--content-max)) / 2));
    border-bottom: 1px solid var(--line);
    background: #fff;
    backdrop-filter: blur(12px);
}

.brand {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    flex: 0 0 auto;
    color: var(--text);
    font-weight: 800;
}

.brand-picture {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    line-height: 0;
}

.brand-logo {
    display: block;
    width: auto;
    height: 34px;
    max-width: 180px;
    object-fit: contain;
}

.brand-mark {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    color: #fff;
    background: var(--primary);
    border-radius: 8px;
}

.main-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    min-width: 0;
    flex: 1 1 auto;
    overflow: visible;
}

.nav-entry {
    position: relative;
    flex: 0 0 auto;
}

.main-nav a,
.logout-form button {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 40px;
    padding: 8px 10px;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--muted);
    background: transparent;
    font: inherit;
    white-space: nowrap;
}

.nav-notification-dot {
    position: absolute;
    top: 5px;
    right: 5px;
    width: 9px;
    height: 9px;
    border: 2px solid var(--surface);
    border-radius: 50%;
    background: #d92d20;
    box-shadow: 0 0 0 1px rgba(161, 43, 43, .12);
}

.main-nav a.active,
.main-nav a:hover,
.logout-form button:hover {
    color: var(--primary-dark);
    background: var(--surface-soft);
    text-decoration: none;
}

.has-submenu > a::after {
    content: "";
    width: 6px;
    height: 6px;
    margin-left: 2px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-1px);
}

.submenu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 230px;
    max-height: calc(100vh - 90px);
    overflow-y: auto;
    padding: 6px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity .12s ease, transform .12s ease, visibility .12s ease;
}

.submenu::before {
    content: "";
    position: absolute;
    inset: -10px 0 auto 0;
    height: 10px;
}

.nav-entry:hover .submenu,
.nav-entry:focus-within .submenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.submenu a {
    display: flex;
    width: 100%;
    min-height: 36px;
    justify-content: flex-start;
    color: var(--text);
}

.logout-form {
    margin: 0;
}

.staff-view-switcher-bar {
    display: flex;
    min-height: 50px;
    align-items: center;
    justify-content: flex-end;
    padding: 6px max(var(--content-gutter), calc((100vw - var(--content-max)) / 2));
    border-bottom: 1px solid var(--line);
    background: rgba(255, 255, 255, .97);
    backdrop-filter: blur(10px);
}

.staff-view-switcher {
    width: min(440px, 100%);
    margin: 0;
}

.staff-view-switcher label {
    display: grid;
    grid-template-columns: auto minmax(180px, 1fr);
    align-items: center;
    gap: 10px;
    margin: 0;
}

.staff-view-switcher label > span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
}

.staff-view-switcher select {
    width: 100%;
    min-width: 0;
    min-height: 36px;
    padding-block: 5px;
    border-color: var(--line);
    background: var(--surface);
    font-size: 13px;
    font-weight: 700;
}

body.staff-viewing-other .staff-view-switcher-bar {
    background: rgba(248, 233, 233, .97);
}

body.staff-viewing-other .staff-view-switcher select {
    border-color: #cf9696;
    color: #7c2d2d;
    background: #fff7f7;
}

.user-view-switcher-bar {
    border-bottom-color: #cf9696;
    background: rgba(255, 229, 229, .98);
    box-shadow: inset 0 -1px 0 rgba(161, 43, 43, .12), 0 4px 12px rgba(112, 24, 24, .08);
}

.user-view-switcher label > span {
    color: #8d2525;
}

.user-view-switcher select {
    border-color: #c87979;
    color: #722626;
    background: #fffafa;
}

.user-view-mode-form {
    margin: 0;
}

.user-view-mode-switch input:checked + span {
    border-color: var(--danger);
    background: var(--danger);
}

.user-view-mode-switch input:checked ~ strong {
    color: var(--danger);
}

@media (max-width: 700px) {
    .staff-view-switcher-bar {
        padding-inline: var(--content-gutter);
    }

    .staff-view-switcher {
        width: 100%;
    }

    .staff-view-switcher label {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .staff-view-switcher label > span {
        display: block;
    }
}

.logout-form button {
    width: 40px;
    padding-inline: 0;
    justify-content: center;
}

.page-shell {
    flex: 1 0 auto;
    width: min(var(--content-max), calc(100% - (var(--content-gutter) * 2)));
    margin: 24px auto 34px;
}

.app-footer {
    flex-shrink: 0;
    width: min(var(--content-max), calc(100% - (var(--content-gutter) * 2)));
    margin: 0 auto 0;
    padding: 12px 0 max(18px, env(safe-area-inset-bottom));
    color: #486178;
    font-size: 13px;
    font-weight: 400;
    text-align: center;
}

.auth-shell {
    flex: 1 0 auto;
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
}

.auth-card {
    width: min(430px, 100%);
    padding: 34px 36px 32px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.auth-logo {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    margin-bottom: 18px;
    border-radius: 8px;
    color: #fff;
    background: var(--primary);
}

.auth-card h1 + .stack {
    margin-top: 16px;
}

.auth-card-otp {
    width: min(420px, 100%);
    padding: 38px 32px 34px;
}

.auth-card-otp .auth-logo {
    width: 48px;
    height: 48px;
    margin: 0 0 20px;
}

.auth-card-otp h1 {
    margin-bottom: 10px;
    text-align: left;
}

.auth-card-otp h1 + .stack {
    margin-top: 0;
}

.page-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.accounting-heading-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.accounting-heading-actions form {
    margin: 0;
}

.accounting-year-form { display:flex; align-items:center; gap:.5rem; }
.accounting-year-form label { margin:0; white-space:nowrap; }

.section-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: -4px 0 18px;
}

.calls-admin-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}

.calls-admin-actions form {
    margin: 0;
}

.subpage-heading {
    margin: 6px 0 18px;
}

.subpage-heading span {
    display: block;
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.subpage-heading h2 {
    margin-bottom: 4px;
    font-size: 26px;
}

.subpage-heading p {
    color: var(--muted);
}

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

h1 {
    margin-bottom: 6px;
    font-size: 30px;
    line-height: 1.2;
}

h2 {
    margin-bottom: 14px;
    font-size: 18px;
}

.page-heading p,
.muted {
    color: var(--muted);
}

.panel {
    padding: 20px;
    margin-bottom: 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 1px 2px rgba(24, 36, 34, .03);
}

.panel-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.panel-heading h2 {
    margin-bottom: 0;
}

.panel-stack {
    display: grid;
    gap: 18px;
    margin-bottom: 18px;
}

.panel-stack > .panel {
    margin-bottom: 0;
}

.collapsible-panel {
    padding: 0;
    overflow: hidden;
}

.collapsible-panel summary {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 58px;
    padding: 18px 20px;
    font-size: 18px;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.collapsible-panel summary::-webkit-details-marker {
    display: none;
}

.collapsible-panel summary::after {
    content: "";
    width: 8px;
    height: 8px;
    margin-left: 4px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transition: transform .14s ease;
}

.collapsible-panel[open] summary::after {
    transform: rotate(225deg) translateY(-2px);
}

.collapsible-panel summary .account-panel-status {
    margin-left: auto;
    color: var(--muted);
    font-size: 13px;
    font-weight: 500;
}

.account-calendar-info-button {
    display: inline-grid;
    width: 25px;
    height: 25px;
    padding: 0;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid #9ec8c0;
    border-radius: 50%;
    color: var(--todo-green-dark, #0b5a50);
    background: #eff8f6;
    font: 800 14px/1 sans-serif;
    cursor: pointer;
}

.account-calendar-info-button:hover,
.account-calendar-info-button:focus-visible {
    border-color: #0f6b5f;
    color: #fff;
    background: #0f6b5f;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(15,107,95,.14);
}

.account-calendar-info-dialog {
    width: min(680px, calc(100vw - 32px));
    max-width: 100%;
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    margin: auto;
    padding: 0;
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 12px;
    color: var(--text);
    background: var(--surface);
    box-shadow: 0 24px 70px rgba(18,36,32,.28);
}

.account-calendar-info-dialog::backdrop { background: rgba(20,36,32,.52); }
.account-calendar-info-dialog > header {
    display: flex;
    min-height: 70px;
    padding: 16px 18px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 1px solid var(--line);
}
.account-calendar-info-dialog > header > div { display: grid; gap: 4px; }
.account-calendar-info-dialog h2 { margin: 0; font-size: 20px; }
.account-calendar-info-content { display: grid; padding: 18px; gap: 14px; }
.account-calendar-info-content > p { margin: 0; }
.account-calendar-info-content dl { display: grid; margin: 0; gap: 10px; }
.account-calendar-info-content dl > div { display: grid; grid-template-columns: 165px minmax(0,1fr); gap: 12px; align-items: baseline; }
.account-calendar-info-content dt { color: var(--muted); font-size: 13px; font-weight: 800; }
.account-calendar-info-content dd { min-width: 0; margin: 0; font-weight: 650; }
.account-calendar-info-content code { display: inline-block; max-width: 100%; padding: 3px 6px; overflow-wrap: anywhere; border-radius: 5px; background: var(--surface-soft); font-size: 12px; }
.account-calendar-info-dialog > footer { display: flex; padding: 14px 18px; justify-content: flex-end; border-top: 1px solid var(--line); }

.collapsible-panel form {
    padding: 0 20px 20px;
}

.collapsible-panel .account-calendar-conflicts {
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

.account-dashboard-calendar-intro {
    padding: 0 20px 18px;
    color: var(--muted);
}

.account-dashboard-calendar-intro p,
.account-dashboard-calendar-status {
    margin: 0;
}

.account-dashboard-calendar-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 0 20px 18px;
}

.account-dashboard-calendar-card {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.account-dashboard-calendar-card.is-new {
    margin: 0 20px 20px;
}

.account-dashboard-calendar-card > h3 {
    margin: 0 0 14px;
}

.collapsible-panel .account-dashboard-calendar-card form {
    padding: 0;
}

.account-dashboard-calendar-status {
    color: var(--muted);
    font-size: 12px;
}

.account-dashboard-calendar-delete {
    margin-top: 12px;
    padding-top: 12px !important;
    border-top: 1px solid var(--line);
}

.account-info-mail-intro {
    padding: 0 20px 18px;
    color: var(--muted);
}

.account-info-mail-intro p {
    margin: 0;
}

.account-info-mail-form {
    display: grid;
    gap: 18px;
}

.account-info-mail-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 18px;
    min-width: 0;
    margin: 0;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.account-info-mail-options legend {
    padding: 0 7px;
    font-weight: 800;
}

.account-info-mail-options .check-inline {
    max-width: none;
    margin: 0;
}

.account-info-mail-schedule-heading h3,
.account-info-mail-schedule-heading p {
    margin: 0;
}

.account-info-mail-schedule-heading p {
    margin-top: 3px;
    color: var(--muted);
    font-size: 13px;
}

.account-info-mail-schedules {
    display: grid;
    gap: 9px;
}

.account-info-mail-schedule {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    transition: border-color .14s ease, background .14s ease;
}

.account-info-mail-schedule.is-disabled {
    border-color: #d8dfdd;
    background: #f8faf9;
}

.account-info-mail-schedule-top {
    display: grid;
    grid-template-columns: minmax(145px, 190px) minmax(0, 1fr) auto;
    align-items: end;
    gap: 12px;
}

.account-info-mail-time {
    display: grid;
    gap: 5px;
}

.account-info-mail-time > span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.account-info-mail-last-send {
    display: grid;
    align-self: center;
    gap: 3px;
    color: var(--muted);
    font-size: 13px;
}

.account-info-mail-last-send strong {
    color: var(--text);
    font-size: 13px;
}

.account-info-mail-schedule.is-disabled .account-info-mail-last-send strong {
    color: var(--muted);
}

.account-info-mail-last-send small {
    color: var(--danger);
    font-weight: 750;
}

.account-info-mail-switches {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 24px;
    padding: 12px 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.account-info-mail-switches .switch-inline {
    display: inline-flex;
    white-space: normal;
}

.account-info-mail-switches > small {
    flex-basis: 100%;
    color: var(--muted);
}

.account-info-mail-content {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.collapsible-panel .account-info-mail-content > summary {
    display: flex;
    align-items: center;
    min-height: 0;
    padding: 13px 16px;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.collapsible-panel .account-info-mail-content > summary:hover {
    background: rgba(15, 107, 95, .05);
}

.collapsible-panel .account-info-mail-content > summary::after {
    margin-left: auto;
    transform: rotate(45deg) translateY(-2px);
}

.collapsible-panel .account-info-mail-content[open] > summary::after {
    transform: rotate(225deg) translateY(-2px);
}

.account-info-mail-schedule .account-info-mail-options {
    width: 100%;
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
}

.account-info-mail-add-row {
    display: flex;
    justify-content: flex-start;
}

.account-info-mail-add-row [hidden] {
    display: none;
}

@media (max-width: 720px) {
    .account-info-mail-options {
        grid-template-columns: 1fr;
    }

    .account-info-mail-schedule-top {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .account-info-mail-schedule .button {
        width: 100%;
        justify-content: center;
    }
}

.inventory-movement-panel[open] {
    min-height: 340px;
    overflow-x: hidden;
    overflow-y: auto;
    resize: vertical;
}

.inventory-movement-panel .tree-select-menu {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    resize: vertical;
}

.inline-collapsible {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}

.inline-collapsible summary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    color: var(--text);
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.inline-collapsible summary::-webkit-details-marker {
    display: none;
}

.inline-collapsible summary::after {
    content: "";
    width: 7px;
    height: 7px;
    margin-left: 4px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transition: transform .14s ease;
}

.inline-collapsible[open] summary::after {
    transform: rotate(225deg) translateY(-2px);
}

.inline-collapsible form {
    margin-top: 14px;
}

.split {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(420px, 1fr);
    gap: 18px;
}

.consumable-types-list {
    order: 1;
}

.consumable-type-create {
    order: 2;
}

.inventory-location-list {
    order: 1;
}

.inventory-location-create {
    order: 2;
}

.inventory-location-role-list {
    display: grid;
    min-width: 360px;
    gap: 6px;
}

.inventory-location-role-row {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) auto auto;
    align-items: center;
    gap: 8px 14px;
    padding: 6px 0;
    border-bottom: 1px solid var(--line);
}

.inventory-location-role-row:last-child {
    border-bottom: 0;
}

.inventory-location-role-row label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.inventory-location-role-row input[type="checkbox"] {
    width: auto;
    min-height: auto;
}

.side-stack {
    display: grid;
    gap: 18px;
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.dashboard-metric-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr));
    grid-auto-rows: 1fr;
}

#tools-grid.tools-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    grid-auto-flow: row;
    grid-auto-rows: auto !important;
    align-items: stretch;
}

#tools-grid > .tools-tile {
    width: auto;
    min-width: 0;
    height: auto;
    align-self: stretch;
}

#tools-grid > .tools-grid-heading {
    grid-column: 1 / -1;
    margin: 10px 0 0;
}

.dashboard-metric-grid > .metric {
    min-width: 0;
    height: 100%;
}

.tools-tile {
    min-height: 150px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    color: inherit;
}

a.tools-tile {
    border-color: #a9d0c9;
    box-shadow: 0 4px 16px rgba(20, 120, 106, .08);
}

a.tools-tile:hover,
a.tools-tile:focus-visible {
    border-color: var(--primary);
    color: inherit;
    text-decoration: none;
    transform: translateY(-1px);
}

.metric .tools-tile-icon {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    color: var(--primary);
    background: var(--surface-soft);
    border-radius: 8px;
}

.metric .tools-tile-icon .icon {
    width: 21px;
    height: 21px;
}

.metric.tools-tile strong {
    margin: 0;
    font-size: 16px;
    line-height: 1.35;
}

.metric.tools-tile > span {
    line-height: 1.4;
}

.tools-tile-link {
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
    margin-top: auto;
    color: var(--primary) !important;
    font-weight: 700;
}

.tools-tile-link .icon {
    width: 15px;
    height: 15px;
}

.tools-statistics-map-tile {
    border-color: #9fc9c2;
    background: linear-gradient(145deg, #fff 0%, #f2f9f7 100%);
    box-shadow: 0 4px 16px rgba(20, 120, 106, .08);
}

.tools-statistics-map-actions {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: auto;
}

.tools-phplist-tile {
    border-color: #9fc9c2;
    background: linear-gradient(145deg, #fff 0%, #f2f9f7 100%);
    box-shadow: 0 4px 16px rgba(20, 120, 106, .08);
}

.tools-phplist-tile > p {
    margin: 0;
    line-height: 1.45;
}

.tools-phplist-admin-link {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.tools-phplist-admin-link > span {
    color: var(--text);
    font-size: .78rem;
    font-weight: 700;
}

.tools-phplist-admin-link > a {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 4px;
    color: var(--primary);
    font-size: .75rem;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.tools-phplist-admin-link .icon {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
}

.tools-phplist-tile > .button {
    margin-top: auto;
}

.tools-phplist-dialog {
    width: min(760px, calc(100vw - 32px));
    max-width: 100%;
    max-height: calc(100dvh - 32px);
    margin: auto;
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 12px;
    color: var(--text);
    background: var(--surface);
    box-shadow: 0 24px 70px rgba(18, 36, 32, .28);
}

.tools-phplist-entry-dialog {
    width: min(1180px, calc(100vw - 32px));
}

.tools-phplist-entry-dialog.is-positioned {
    position: fixed;
    inset: auto;
    max-width: none;
    max-height: none;
    margin: 0;
}

.tools-phplist-dialog[open] {
    display: flex;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
}

.tools-phplist-dialog::backdrop {
    background: rgba(12, 28, 32, .5);
    backdrop-filter: blur(2px);
}

.tools-phplist-dialog .panel-heading {
    flex: 0 0 auto;
    align-items: flex-start;
    margin-bottom: 16px;
}

.tools-phplist-dialog .panel-heading p {
    margin: 4px 0 0;
}

.tools-phplist-entry-dialog-heading {
    cursor: grab;
    user-select: none;
    touch-action: none;
}

.tools-phplist-dialog-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
}

.tools-phplist-list-selection {
    display: grid;
    flex: 1 1 auto;
    min-height: 0;
    gap: 10px;
    overflow: auto;
}

.tools-phplist-list-option {
    display: flex;
    width: 100%;
    min-height: 66px;
    padding: 12px 14px;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    border: 1px solid #c9dcd8;
    border-radius: 10px;
    color: var(--text);
    background: #fbfdfc;
    cursor: pointer;
    text-align: left;
}

.tools-phplist-list-option:hover,
.tools-phplist-list-option:focus-visible {
    border-color: var(--primary);
    background: #f0f8f6;
    box-shadow: 0 3px 12px rgba(20, 120, 106, .08);
}

.tools-phplist-list-option > span {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.tools-phplist-list-option strong {
    overflow-wrap: anywhere;
    font-size: 15px;
}

.tools-phplist-list-option small {
    color: var(--muted);
    font-size: 12px;
}

.tools-phplist-list-option > .icon {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    color: var(--primary);
}

.tools-phplist-status {
    margin: 0;
    padding: 12px 14px;
    border: 1px solid #cbdcd8;
    border-radius: 9px;
    color: #315c55;
    background: #f2f8f6;
}

.tools-phplist-status[data-state="success"] {
    color: #176447;
    border-color: #aad5c2;
    background: #edf8f2;
}

.tools-phplist-status[data-state="warning"] {
    color: #78520d;
    border-color: #e5cc96;
    background: #fff8e8;
}

.tools-phplist-status[data-state="error"] {
    color: #8e2f2f;
    border-color: #e5b3b3;
    background: #fff1f1;
}

.tools-phplist-entry-toolbar {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
}

.tools-phplist-entry-toolbar[hidden] {
    display: none;
}

.tools-phplist-entry-search {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    align-items: center;
}

.tools-phplist-entry-search > .icon {
    position: absolute;
    left: 12px;
    z-index: 1;
    width: 17px;
    height: 17px;
    color: var(--muted);
    pointer-events: none;
}

.tools-phplist-entry-search input {
    width: 100%;
    min-width: 0;
    padding-left: 39px;
}

.tools-phplist-entry-toolbar > .button {
    flex: 0 0 auto;
    white-space: nowrap;
}

.tools-phplist-email-dialog {
    width: min(660px, calc(100vw - 32px));
}

.tools-phplist-email-list-text {
    width: 100%;
    min-height: min(420px, 52dvh);
    padding: 12px 14px;
    resize: vertical;
    color: var(--text);
    background: #fbfdfc;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .9rem;
    line-height: 1.55;
    white-space: pre;
}

.tools-phplist-email-list-actions {
    display: flex;
    min-height: 40px;
    margin-top: 12px;
    align-items: center;
    gap: 12px;
}

.tools-phplist-email-list-copy-status {
    margin: 0;
    color: #176447;
    font-size: .88rem;
    font-weight: 700;
}

.tools-phplist-email-list-copy-status[data-state="error"] {
    color: var(--danger);
}

.tools-phplist-entry-table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 12px;
    overflow: auto;
}

.tools-phplist-entry-table {
    min-width: 860px;
}

.tools-phplist-entry-table th {
    position: sticky;
    z-index: 1;
    top: 0;
    background: var(--surface-soft);
}

.tools-phplist-entry-table :is(th, td) {
    padding: 9px 11px;
    vertical-align: top;
}

.tools-phplist-entry-table td {
    overflow-wrap: anywhere;
}

.tools-phplist-entry-table td:first-child {
    font-weight: 750;
}

.tools-phplist-entry-table a {
    color: var(--primary);
    font-weight: 700;
    text-underline-offset: 2px;
}

.tools-phplist-entry-resize-handle {
    position: fixed;
    z-index: 3;
    display: block;
    width: 26px;
    height: 26px;
    border-radius: 0 0 11px 0;
    cursor: nwse-resize;
    touch-action: none;
}

.tools-phplist-entry-resize-handle::after {
    content: "";
    position: absolute;
    right: 5px;
    bottom: 5px;
    width: 10px;
    height: 10px;
    border-right: 2px solid #4f6d67;
    border-bottom: 2px solid #4f6d67;
    opacity: .8;
}

.tools-phplist-entry-resize-handle[hidden] {
    display: none;
}

.tools-phplist-entry-dialog.is-dragging .tools-phplist-entry-dialog-heading {
    cursor: grabbing;
}

.tools-phplist-entry-dialog.is-dragging,
.tools-phplist-entry-dialog.is-resizing {
    user-select: none;
}

@media (max-width: 800px) {
    .tools-phplist-dialog-actions [data-tools-phplist-entry-popout],
    .tools-phplist-entry-resize-handle {
        display: none;
    }
}

@media (max-width: 700px) {
    .tools-phplist-dialog,
    .tools-phplist-entry-dialog {
        width: calc(100vw - 16px);
        max-height: calc(100dvh - 16px);
    }

    .tools-phplist-dialog .panel-heading,
    .tools-phplist-dialog-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .tools-phplist-dialog-actions .button {
        justify-content: center;
    }

    .tools-phplist-entry-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .tools-phplist-entry-toolbar > .button {
        justify-content: center;
    }
}

.app-tools-phplist-popup {
    min-width: 0;
    overflow: hidden;
    background: var(--surface);
}

.app-tools-phplist-popup .popup-shell {
    width: 100%;
    min-height: 100dvh;
    padding: 0;
}

.app-tools-phplist-popup .page-heading,
.app-tools-phplist-popup #tools-grid {
    display: none;
}

.app-tools-phplist-popup .tools-phplist-entry-dialog {
    position: fixed;
    inset: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    max-height: none !important;
    min-width: 0;
    min-height: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.app-tools-phplist-popup .tools-phplist-entry-dialog::backdrop {
    background: var(--surface);
    backdrop-filter: none;
}

.app-tools-phplist-popup .tools-phplist-entry-dialog-heading {
    cursor: default;
    touch-action: auto;
}

.app-tools-phplist-popup [data-tools-phplist-entry-back],
.app-tools-phplist-popup [data-tools-phplist-entry-popout],
.app-tools-phplist-popup .tools-phplist-entry-resize-handle {
    display: none !important;
}

.tools-email-match-tile {
    border-color: #9fc9c2;
    background: linear-gradient(145deg, #fff 0%, #f2f9f7 100%);
    box-shadow: 0 4px 16px rgba(20, 120, 106, .08);
}

.tools-email-match-tile > p {
    margin: 0;
    color: var(--muted);
    line-height: 1.45;
}

.tools-email-match-tile > .button {
    margin-top: auto;
}

.tools-email-match-dialog {
    width: min(1120px, calc(100vw - 32px));
    max-width: none;
    height: min(900px, calc(100dvh - 32px));
    max-height: calc(100dvh - 32px);
    margin: auto;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 14px;
    color: var(--text);
    background: var(--surface);
    box-shadow: 0 24px 70px rgba(18, 36, 32, .28);
}

.tools-email-match-dialog[open] {
    display: grid;
    min-height: 0;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
}

.tools-email-match-dialog.is-positioned {
    position: fixed;
    inset: auto;
    margin: 0;
}

.tools-email-match-dialog::backdrop {
    background: rgba(12, 28, 32, .5);
    backdrop-filter: blur(2px);
}

.tools-email-match-dialog .panel-heading {
    margin: 0;
    padding: 16px 18px;
    align-items: flex-start;
    border-bottom: 1px solid var(--line);
    background: #fff;
}

.tools-email-match-dialog .panel-heading h2 {
    margin: 0;
}

.tools-email-match-dialog .panel-heading p {
    margin: 4px 0 0;
}

.tools-email-match-dialog-heading {
    cursor: grab;
    user-select: none;
    touch-action: none;
}

.tools-email-match-dialog-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
}

.tools-email-match-status {
    margin: 14px 18px 0;
    padding: 11px 13px;
    border: 1px solid #cbdcd8;
    border-radius: 9px;
    color: #315c55;
    background: #f2f8f6;
}

.tools-email-match-status[data-state="success"] {
    color: #176447;
    border-color: #aad5c2;
    background: #edf8f2;
}

.tools-email-match-status[data-state="warning"] {
    color: #78520d;
    border-color: #e5cc96;
    background: #fff8e8;
}

.tools-email-match-status[data-state="error"] {
    color: #8e2f2f;
    border-color: #e5b3b3;
    background: #fff1f1;
}

.tools-email-match-body {
    display: grid;
    min-height: 0;
    gap: 14px;
    padding: 14px 18px 18px;
    overflow: auto;
    background: #f7faf9;
}

.tools-email-match-section {
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: #fff;
}

.tools-email-match-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
}

.tools-email-match-section-heading h3 {
    margin: 0;
    font-size: 1rem;
}

.tools-email-match-section-heading p {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: .86rem;
}

.tools-email-match-section-heading .badge {
    max-width: min(440px, 50%);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tools-email-match-upload {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 10px;
}

.tools-email-match-upload label,
.tools-email-match-selection label {
    min-width: 0;
    margin: 0;
}

.tools-email-match-upload input,
.tools-email-match-selection select {
    width: 100%;
}

.tools-email-match-selection {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}

.tools-email-match-email-section textarea {
    width: 100%;
    min-height: 220px;
    resize: vertical;
    color: var(--text);
    background: #fbfdfc;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .9rem;
    line-height: 1.55;
    white-space: pre;
}

.tools-email-match-email-summary {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: .86rem;
    font-weight: 700;
}

.tools-email-match-save-state {
    min-height: 20px;
    color: var(--muted);
    font-size: .8rem;
    font-weight: 750;
    white-space: nowrap;
}

.tools-email-match-save-state[data-state="success"] {
    color: #176447;
}

.tools-email-match-save-state[data-state="error"] {
    color: var(--danger);
}

.tools-email-match-result[hidden] {
    display: none;
}

.tools-email-match-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.tools-email-match-metrics > div {
    display: grid;
    min-width: 0;
    padding: 12px;
    border: 1px solid #c9ddd8;
    border-radius: 9px;
    background: #f2f8f6;
}

.tools-email-match-metrics strong {
    color: var(--primary-dark);
    font-size: 1.4rem;
    line-height: 1.1;
}

.tools-email-match-metrics span {
    margin-top: 4px;
    color: var(--muted);
    font-size: .8rem;
    font-weight: 700;
}

.tools-email-match-result-lists {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 12px;
}

.tools-email-match-result-lists > section {
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fbfdfc;
}

.tools-email-match-result-lists h4 {
    margin: 0 0 8px;
    font-size: .9rem;
}

.tools-email-match-result-lists p {
    margin: 0;
    color: var(--muted);
    font-size: .84rem;
}

.tools-email-match-result-lists ul {
    max-height: 210px;
    margin: 0;
    padding-left: 20px;
    overflow: auto;
}

.tools-email-match-result-lists li {
    margin: 3px 0;
    overflow-wrap: anywhere;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .82rem;
}

.tools-email-match-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 18px;
    border-top: 1px solid var(--line);
    background: #fff;
}

.tools-email-match-footer > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tools-email-match-footer .button.disabled {
    pointer-events: auto;
}

.tools-email-match-resize-handle {
    position: fixed;
    z-index: 3;
    display: block;
    width: 26px;
    height: 26px;
    border-radius: 0 0 11px 0;
    cursor: nwse-resize;
    touch-action: none;
}

.tools-email-match-resize-handle::after {
    content: "";
    position: absolute;
    right: 5px;
    bottom: 5px;
    width: 10px;
    height: 10px;
    border-right: 2px solid #4f6d67;
    border-bottom: 2px solid #4f6d67;
    opacity: .8;
}

.tools-email-match-resize-handle[hidden] {
    display: none;
}

.tools-email-match-dialog.is-dragging .tools-email-match-dialog-heading {
    cursor: grabbing;
}

.tools-email-match-dialog.is-dragging,
.tools-email-match-dialog.is-resizing {
    user-select: none;
}

@media (max-width: 800px) {
    .tools-email-match-dialog {
        inset: 0 !important;
        width: 100vw;
        height: 100dvh;
        max-height: none;
        border: 0;
        border-radius: 0;
    }

    .tools-email-match-dialog-actions [data-tools-email-match-popout],
    .tools-email-match-resize-handle {
        display: none !important;
    }

    .tools-email-match-upload,
    .tools-email-match-selection,
    .tools-email-match-result-lists {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .tools-email-match-dialog .panel-heading,
    .tools-email-match-dialog-actions,
    .tools-email-match-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .tools-email-match-dialog-actions .button,
    .tools-email-match-footer .button {
        justify-content: center;
        width: 100%;
    }

    .tools-email-match-footer > div {
        display: grid;
    }

    .tools-email-match-metrics {
        grid-template-columns: 1fr;
    }
}

.app-tools-email-match-popup {
    min-width: 0;
    overflow: hidden;
    background: var(--surface);
}

.app-tools-email-match-popup .popup-shell {
    width: 100%;
    min-height: 100dvh;
    padding: 0;
}

.app-tools-email-match-popup .page-heading,
.app-tools-email-match-popup #tools-grid {
    display: none;
}

.app-tools-email-match-popup .tools-email-match-dialog {
    position: fixed;
    inset: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    max-height: none !important;
    min-width: 0;
    min-height: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.app-tools-email-match-popup .tools-email-match-dialog::backdrop {
    background: var(--surface);
    backdrop-filter: none;
}

.app-tools-email-match-popup .tools-email-match-dialog-heading {
    cursor: default;
    touch-action: auto;
}

.app-tools-email-match-popup [data-tools-email-match-popout],
.app-tools-email-match-popup .tools-email-match-resize-handle {
    display: none !important;
}

.tools-excel-compare-tile {
    border-color: #e0bf75;
    background: linear-gradient(145deg, #fff 0%, #fff9e9 100%);
    box-shadow: 0 4px 16px rgba(145, 102, 18, .08);
}

.tools-excel-compare-tile > p {
    margin: 0;
    color: var(--muted);
    line-height: 1.45;
}

.tools-excel-compare-tile > .button {
    margin-top: auto;
}

.tools-excel-compare-dialog {
    width: min(1320px, calc(100vw - 32px));
    max-width: none;
    height: min(920px, calc(100dvh - 32px));
    max-height: calc(100dvh - 32px);
    margin: auto;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 14px;
    color: var(--text);
    background: var(--surface);
    box-shadow: 0 24px 70px rgba(18, 36, 32, .28);
}

.tools-excel-compare-dialog[open] {
    display: grid;
    min-height: 0;
    grid-template-rows: auto auto minmax(0, 1fr);
}

.tools-excel-compare-dialog.is-positioned {
    position: fixed;
    inset: auto;
    margin: 0;
}

.tools-excel-compare-dialog::backdrop {
    background: rgba(12, 28, 32, .5);
    backdrop-filter: blur(2px);
}

.tools-excel-compare-dialog .panel-heading {
    margin: 0;
    padding: 16px 18px;
    align-items: flex-start;
    border-bottom: 1px solid var(--line);
    background: #fff;
}

.tools-excel-compare-dialog .panel-heading h2,
.tools-excel-compare-result-heading h3,
.tools-excel-compare-file-card h3 {
    margin: 0;
}

.tools-excel-compare-dialog .panel-heading p {
    margin: 4px 0 0;
}

.tools-excel-compare-dialog-heading {
    cursor: grab;
    user-select: none;
    touch-action: none;
}

.tools-excel-compare-dialog-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
}

.tools-excel-compare-status {
    margin: 14px 18px 0;
    padding: 11px 13px;
    border: 1px solid #cbdcd8;
    border-radius: 9px;
    color: #315c55;
    background: #f2f8f6;
}

.tools-excel-compare-status[data-state="success"] {
    color: #176447;
    border-color: #aad5c2;
    background: #edf8f2;
}

.tools-excel-compare-status[data-state="warning"] {
    color: #78520d;
    border-color: #e5cc96;
    background: #fff8e8;
}

.tools-excel-compare-status[data-state="error"] {
    color: #8e2f2f;
    border-color: #e5b3b3;
    background: #fff1f1;
}

.tools-excel-compare-form {
    display: grid;
    min-height: 0;
    grid-template-rows: minmax(0, 1fr) auto;
}

.tools-excel-compare-body {
    min-height: 0;
    padding: 14px 18px 18px;
    overflow: auto;
    background: #f7faf9;
}

.tools-excel-compare-files {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.tools-excel-compare-file-card {
    display: grid;
    min-width: 0;
    gap: 11px;
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: #fff;
}

.tools-excel-compare-file-card[data-side="left"] {
    border-top: 4px solid #c0392b;
}

.tools-excel-compare-file-card[data-side="right"] {
    border-top: 4px solid #238b57;
}

.tools-excel-compare-file-card label {
    min-width: 0;
    margin: 0;
}

.tools-excel-compare-file-card [hidden],
.tools-excel-compare-mapping[hidden],
.tools-excel-compare-unmapped[hidden] {
    display: none !important;
}

.tools-excel-compare-file-card input,
.tools-excel-compare-file-card select {
    width: 100%;
}

.tools-excel-compare-mapping {
    margin-top: 14px;
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: #fff;
}

.tools-excel-compare-mapping-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.tools-excel-compare-mapping-heading h3,
.tools-excel-compare-mapping-heading p {
    margin: 0;
}

.tools-excel-compare-mapping-heading p {
    margin-top: 4px;
    color: var(--muted);
}

.tools-excel-compare-mapping-heading > span {
    flex: 0 0 auto;
    padding: 5px 9px;
    border: 1px solid #bdd7d1;
    border-radius: 999px;
    color: var(--primary-dark);
    background: #edf7f4;
    font-size: .78rem;
    font-weight: 800;
}

.tools-excel-compare-mapping-table {
    margin-top: 13px;
    overflow: hidden;
    border: 1px solid #d6e1de;
    border-radius: 9px;
}

.tools-excel-compare-mapping-header,
.tools-excel-compare-mapping-row {
    display: grid;
    grid-template-columns: minmax(210px, 1fr) 32px minmax(210px, 1fr);
    align-items: center;
    gap: 8px;
}

.tools-excel-compare-mapping-header {
    padding: 9px 11px;
    color: #315c55;
    background: #edf5f3;
}

.tools-excel-compare-mapping-header > span,
.tools-excel-compare-mapping-row > span {
    text-align: center;
}

.tools-excel-compare-mapping-row {
    padding: 8px 11px;
    border-top: 1px solid #e3ebe9;
}

.tools-excel-compare-mapping-row:nth-child(even) {
    background: #fafcfb;
}

.tools-excel-compare-mapping-column {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tools-excel-compare-mapping-row select {
    width: 100%;
    min-width: 0;
}

.tools-excel-compare-unmapped {
    margin: 10px 0 0;
    padding: 9px 11px;
    border: 1px solid #e5cc96;
    border-radius: 8px;
    color: #78520d;
    background: #fff8e8;
}

.tools-excel-compare-result {
    margin-top: 14px;
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: #fff;
}

.tools-excel-compare-result[hidden] {
    display: none;
}

.tools-excel-compare-result-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.tools-excel-compare-result-heading p {
    margin: 4px 0 0;
    color: var(--muted);
}

.tools-excel-compare-legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
}

.tools-excel-compare-legend span,
.tools-excel-compare-row header span {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 3px 8px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: .76rem;
    font-weight: 750;
}

.tools-excel-compare-legend span[data-state="changed"],
.tools-excel-compare-row.is-changed header span {
    color: #6b5200;
    border-color: #e6cf69;
    background: #ffeb9c;
}

.tools-excel-compare-legend span[data-state="only-left"],
.tools-excel-compare-row.is-only-left header span {
    color: #9c0006;
    border-color: #e3a2a6;
    background: #ffc7ce;
}

.tools-excel-compare-legend span[data-state="only-right"],
.tools-excel-compare-row.is-only-right header span {
    color: #006100;
    border-color: #94cd9e;
    background: #c6efce;
}

.tools-excel-compare-metrics {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 9px;
    margin-top: 14px;
}

.tools-excel-compare-metrics > div {
    display: grid;
    min-width: 0;
    padding: 11px;
    border: 1px solid #c9ddd8;
    border-radius: 9px;
    background: #f2f8f6;
}

.tools-excel-compare-metrics strong {
    color: var(--primary-dark);
    font-size: 1.25rem;
    line-height: 1.1;
}

.tools-excel-compare-metrics span {
    margin-top: 4px;
    color: var(--muted);
    font-size: .76rem;
    font-weight: 700;
}

.tools-excel-compare-differences {
    display: grid;
    gap: 11px;
    margin-top: 14px;
}

.tools-excel-compare-row {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
}

.tools-excel-compare-row > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 11px;
    border-bottom: 1px solid var(--line);
    background: #f8faf9;
}

.tools-excel-compare-row table {
    min-width: 900px;
    table-layout: fixed;
}

.tools-excel-compare-row th:nth-child(1),
.tools-excel-compare-row td:nth-child(1) {
    width: 78px;
}

.tools-excel-compare-row th:nth-child(2),
.tools-excel-compare-row td:nth-child(2) {
    width: 190px;
}

.tools-excel-compare-row th:nth-child(5),
.tools-excel-compare-row td:nth-child(5) {
    width: 140px;
}

.tools-excel-compare-row tbody tr.is-changed td {
    color: #6b5200;
    background: #fff8d8;
}

.tools-excel-compare-row tbody tr.is-only-left td {
    color: #8d1016;
    background: #fff0f1;
}

.tools-excel-compare-row tbody tr.is-only-right td {
    color: #075b18;
    background: #edf9ef;
}

.tools-excel-compare-value {
    overflow-wrap: anywhere;
    white-space: pre-wrap;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .82rem;
}

.tools-excel-compare-empty {
    margin: 14px 0 0;
    padding: 16px;
    border: 1px solid #aad5c2;
    border-radius: 9px;
    color: #176447;
    background: #edf8f2;
}

.tools-excel-compare-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 18px;
    border-top: 1px solid var(--line);
    background: #fff;
}

.tools-excel-compare-footer > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tools-excel-compare-resize-handle {
    position: fixed;
    z-index: 3;
    display: block;
    width: 26px;
    height: 26px;
    border-radius: 0 0 11px 0;
    cursor: nwse-resize;
    touch-action: none;
}

.tools-excel-compare-resize-handle::after {
    content: "";
    position: absolute;
    right: 5px;
    bottom: 5px;
    width: 10px;
    height: 10px;
    border-right: 2px solid #4f6d67;
    border-bottom: 2px solid #4f6d67;
    opacity: .8;
}

.tools-excel-compare-resize-handle[hidden] {
    display: none;
}

.tools-excel-compare-dialog.is-dragging .tools-excel-compare-dialog-heading {
    cursor: grabbing;
}

.tools-excel-compare-dialog.is-dragging,
.tools-excel-compare-dialog.is-resizing {
    user-select: none;
}

@media (max-width: 1000px) {
    .tools-excel-compare-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
    .tools-excel-compare-dialog {
        inset: 0 !important;
        width: 100vw;
        height: 100dvh;
        max-height: none;
        border: 0;
        border-radius: 0;
    }

    .tools-excel-compare-dialog-actions [data-tools-excel-compare-popout],
    .tools-excel-compare-resize-handle {
        display: none !important;
    }

    .tools-excel-compare-files {
        grid-template-columns: 1fr;
    }

    .tools-excel-compare-result-heading,
    .tools-excel-compare-mapping-heading,
    .tools-excel-compare-dialog .panel-heading,
    .tools-excel-compare-dialog-actions,
    .tools-excel-compare-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .tools-excel-compare-legend {
        justify-content: flex-start;
    }

    .tools-excel-compare-mapping-header,
    .tools-excel-compare-mapping-row {
        grid-template-columns: minmax(150px, 1fr) 24px minmax(150px, 1fr);
    }
}

@media (max-width: 620px) {
    .tools-excel-compare-metrics {
        grid-template-columns: 1fr 1fr;
    }

    .tools-excel-compare-dialog-actions .button,
    .tools-excel-compare-footer .button {
        justify-content: center;
        width: 100%;
    }

    .tools-excel-compare-footer > div {
        display: grid;
    }

    .tools-excel-compare-mapping-header {
        display: none;
    }

    .tools-excel-compare-mapping-row {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .tools-excel-compare-mapping-row > span {
        transform: rotate(90deg);
    }
}

.app-tools-excel-compare-popup {
    min-width: 0;
    overflow: hidden;
    background: var(--surface);
}

.app-tools-excel-compare-popup .popup-shell {
    width: 100%;
    min-height: 100dvh;
    padding: 0;
}

.app-tools-excel-compare-popup .page-heading,
.app-tools-excel-compare-popup #tools-grid {
    display: none;
}

.app-tools-excel-compare-popup .tools-excel-compare-dialog {
    position: fixed;
    inset: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    max-height: none !important;
    min-width: 0;
    min-height: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.app-tools-excel-compare-popup .tools-excel-compare-dialog::backdrop {
    background: var(--surface);
    backdrop-filter: none;
}

.app-tools-excel-compare-popup .tools-excel-compare-dialog-heading {
    cursor: default;
    touch-action: auto;
}

.app-tools-excel-compare-popup [data-tools-excel-compare-popout],
.app-tools-excel-compare-popup .tools-excel-compare-resize-handle {
    display: none !important;
}

.tools-board-tile > p {
    margin: 0;
    color: var(--muted);
}

.tools-board-tile > .button {
    margin-top: auto;
}

.tools-board-dialog {
    width: min(1440px, calc(100vw - 32px));
    max-width: 100%;
    max-height: calc(100dvh - 32px);
    margin: auto;
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 12px;
    color: var(--text);
    background: var(--surface);
    box-shadow: 0 24px 70px rgba(18,36,32,.28);
}

.tools-board-dialog::backdrop {
    background: rgba(12,28,32,.5);
    backdrop-filter: blur(2px);
}

.tools-board-dialog[open] {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.tools-board-dialog.is-positioned {
    position: fixed;
    inset: auto;
    max-width: none;
    max-height: none;
    margin: 0;
}

.tools-board-dialog-heading {
    flex: 0 0 auto;
    align-items: flex-start;
    cursor: grab;
    user-select: none;
    touch-action: none;
}

.tools-board-dialog-heading p {
    margin: 4px 0 0;
}

.tools-board-dialog-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex: 0 0 auto;
}

.tools-board-dialog-actions .button {
    white-space: nowrap;
}

.tools-board-dialog > [data-tools-board-form] {
    display: grid;
    flex: 1 1 auto;
    grid-template-rows: minmax(0, 1fr) auto auto;
    min-height: 0;
    overflow: hidden;
}

.tools-board-dialog-resize-handle {
    position: fixed;
    z-index: 3;
    display: block;
    width: 26px;
    height: 26px;
    border-radius: 0 0 11px 0;
    cursor: nwse-resize;
    touch-action: none;
}

.tools-board-dialog-resize-handle::after {
    content: "";
    position: absolute;
    right: 5px;
    bottom: 5px;
    width: 10px;
    height: 10px;
    border-right: 2px solid #4f6d67;
    border-bottom: 2px solid #4f6d67;
    opacity: .8;
}

.tools-board-dialog-resize-handle[hidden] {
    display: none;
}

.tools-board-dialog.is-dragging .tools-board-dialog-heading {
    cursor: grabbing;
}

.tools-board-dialog.is-dragging,
.tools-board-dialog.is-resizing {
    user-select: none;
}

.tools-board-contact-picker {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto auto;
    grid-template-rows: auto auto auto auto;
    align-items: start;
    column-gap: 10px;
    row-gap: 5px;
    margin-bottom: 16px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--surface-soft);
}

.tools-board-contact-search {
    display: contents;
    min-width: 260px;
}

.tools-board-contact-search > label {
    display: block;
    grid-column: 1;
    grid-row: 1;
    margin: 0;
    font-weight: 600;
}

.tools-board-contact-search > small {
    display: block;
    grid-column: 1;
    grid-row: 3;
    margin: 0;
    color: var(--muted);
}

.tools-board-contact-search-field {
    position: relative;
    grid-column: 1;
    grid-row: 2;
}

.tools-board-contact-picker > [data-tools-board-contact-add],
.tools-board-contact-picker > [data-tools-board-add] {
    grid-row: 2;
    align-self: stretch;
}

.tools-board-contact-search-field > input {
    width: 100%;
}

.tools-board-contact-suggestions {
    position: absolute;
    z-index: 20;
    top: calc(100% + 4px);
    right: 0;
    left: 0;
    max-height: min(320px, 45vh);
    overflow-y: auto;
    padding: 5px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 12px 30px rgba(20, 43, 38, .18);
}

.tools-board-contact-suggestions[hidden] {
    display: none;
}

.tools-board-contact-suggestion {
    display: flex;
    width: 100%;
    padding: 9px 10px;
    border: 0;
    border-radius: 6px;
    flex-direction: column;
    gap: 2px;
    color: var(--text);
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.tools-board-contact-suggestion:hover,
.tools-board-contact-suggestion:focus,
.tools-board-contact-suggestion.is-active {
    outline: none;
    background: var(--surface-soft);
}

.tools-board-contact-suggestion small {
    color: var(--muted);
}

.tools-board-contact-suggestion-heading {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.tools-board-contact-suggestion-source {
    flex: 0 0 auto;
    padding: 2px 7px;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    background: var(--surface);
    font-size: .75rem;
    font-weight: 600;
}

.tools-board-contact-no-results {
    margin: 0;
    padding: 9px 10px;
    color: var(--muted);
}

.tools-board-contact-picker > p {
    grid-column: 1 / -1;
    grid-row: 4;
    min-height: 20px;
    margin: 0;
    color: var(--muted);
}

.tools-board-contact-picker > p[data-state="success"] { color: var(--primary-dark); }
.tools-board-contact-picker > p[data-state="warning"] { color: #795400; }
.tools-board-contact-picker > p[data-state="error"] { color: var(--danger); }

.tools-board-table-wrap {
    min-height: 0;
    max-height: min(58vh, 620px);
    overflow: auto;
}

.tools-board-dialog > [data-tools-board-form] .tools-board-table-wrap {
    max-height: none;
}

.tools-board-table {
    min-width: 1300px;
}

.tools-board-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--surface-soft);
}

.tools-board-table :is(th, td) {
    padding: 8px;
    vertical-align: middle;
}

.tools-board-table input {
    min-width: 120px;
}

.tools-board-table td:nth-child(5) input,
.tools-board-table td:nth-child(6) input,
.tools-board-table td:nth-child(7) input {
    min-width: 210px;
}

.tools-board-table td:first-child input {
    min-width: 170px;
}

.tools-board-row-action {
    width: 44px;
    text-align: center;
}

.tools-board-empty {
    margin: 4px 0 0;
    color: var(--muted);
}

@media (max-width: 800px) {
    .tools-board-dialog-actions [data-tools-board-popout],
    .tools-board-dialog-resize-handle {
        display: none;
    }
}

@media (max-width: 700px) {
    .tools-board-dialog {
        width: calc(100vw - 16px);
        max-height: calc(100dvh - 16px);
    }

    .tools-board-contact-picker {
        display: flex;
        flex-wrap: wrap;
        align-items: stretch;
    }

    .tools-board-contact-search {
        display: block;
    }

    .tools-board-contact-search > label {
        margin-bottom: 5px;
    }

    .tools-board-contact-search > small {
        margin-top: 5px;
    }

    .tools-board-contact-picker > :is(.tools-board-contact-search, .button) {
        width: 100%;
    }
}

.app-tools-board-popup {
    min-width: 0;
    overflow: hidden;
    background: var(--surface);
}

.app-tools-board-popup .popup-shell {
    width: 100%;
    min-height: 100dvh;
    padding: 0;
}

.app-tools-board-popup .page-heading,
.app-tools-board-popup #tools-grid {
    display: none;
}

.app-tools-board-popup .tools-board-dialog {
    position: fixed;
    inset: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    max-height: none !important;
    min-width: 0;
    min-height: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.app-tools-board-popup .tools-board-dialog::backdrop {
    background: var(--surface);
    backdrop-filter: none;
}

.app-tools-board-popup .tools-board-dialog-heading {
    cursor: default;
    touch-action: auto;
}

.app-tools-board-popup [data-tools-board-popout],
.app-tools-board-popup .tools-board-dialog-resize-handle {
    display: none !important;
}

.tools-statistics-map-actions .button {
    flex: 1 1 84px;
    justify-content: center;
}

.tools-statistics-map-actions .icon {
    width: 15px;
    height: 15px;
}

.tools-subpage-heading {
    align-items: flex-end;
}

.tools-subpage-heading > .button .icon {
    transform: rotate(180deg);
}

.tools-member-statistics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tools-member-statistics .metric {
    display: grid;
    gap: 5px;
}

.tools-member-statistics .metric > span,
.tools-member-statistics .metric > small {
    color: var(--muted);
}

.tools-member-statistics .metric > strong {
    color: var(--primary);
    font-size: clamp(1.8rem, 4vw, 2.65rem);
}

.tools-statistics-map-link {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
}

.tools-statistics-map-link h2,
.tools-statistics-map-link p {
    margin: 0;
}

.tools-statistics-map-link p {
    margin-top: 4px;
    color: var(--muted);
}

.tools-member-map-panel {
    overflow: hidden;
    padding: 0;
}

.tools-member-map-toolbar {
    display: flex;
    min-height: 86px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--line);
    background: linear-gradient(135deg, #f4faf8, #fff);
}

.tools-member-map-toolbar label {
    display: grid;
    width: min(100%, 420px);
    gap: 6px;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 800;
}

.tools-member-map-toolbar select {
    min-height: 43px;
    color: var(--text);
    background: #fff;
    font-size: .94rem;
    font-weight: 700;
}

.tools-member-map-summary {
    max-width: 520px;
    color: var(--muted);
    font-size: .86rem;
    font-weight: 700;
    line-height: 1.4;
    text-align: right;
}

.tools-member-map-status {
    display: grid;
    justify-items: end;
    gap: 8px;
    padding-bottom: 2px;
}

.tools-member-map-legend {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 7px 15px;
    margin: 0;
    padding: 0;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 700;
    line-height: 1.25;
    list-style: none;
}

.tools-member-map-legend li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.tools-member-map-legend-dot {
    width: 12px;
    height: 12px;
    flex: 0 0 auto;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #007569;
    box-shadow: 0 0 0 1px rgba(23, 61, 56, .2);
}

.tools-member-map-legend-dot.is-company {
    background: #086f64;
}

.tools-member-map-legend-dot.is-private {
    background: #e5810d;
}

.tools-member-map-legend-dot.is-mixed {
    background: linear-gradient(90deg, #086f64 0 50%, #e5810d 50% 100%);
}

.tools-member-map-summary[data-state="error"] {
    color: var(--danger);
}

.tools-member-map-unresolved-link {
    display: inline;
    padding: 0;
    border: 0;
    color: var(--primary);
    background: transparent;
    cursor: pointer;
    font: inherit;
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
}

.tools-member-map-unresolved-link:hover,
.tools-member-map-unresolved-link:focus-visible {
    color: var(--primary-dark);
}

.tools-member-map-unresolved-dialog {
    width: min(760px, calc(100vw - 32px));
    max-width: none;
    max-height: min(760px, calc(100vh - 32px));
    margin: auto;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: 0 24px 70px rgba(23, 61, 56, .25);
}

.tools-member-map-unresolved-dialog::backdrop {
    background: rgba(15, 35, 32, .48);
    backdrop-filter: blur(2px);
}

.tools-member-map-unresolved-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 22px 18px;
    border-bottom: 1px solid var(--line);
    background: linear-gradient(135deg, #f4faf8, #fff);
}

.tools-member-map-unresolved-heading h2,
.tools-member-map-unresolved-heading p,
.tools-member-map-unresolved-item h3,
.tools-member-map-unresolved-item p {
    margin: 0;
}

.tools-member-map-unresolved-heading p {
    margin-top: 5px;
    color: var(--muted);
    font-size: .86rem;
    line-height: 1.45;
}

.tools-member-map-unresolved-list {
    display: grid;
    max-height: calc(min(760px, 100vh - 32px) - 103px);
    gap: 12px;
    padding: 16px;
    overflow-y: auto;
    background: #f7f9f8;
}

.tools-member-map-unresolved-item {
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
}

.tools-member-map-unresolved-item h3 {
    color: #173d38;
    font-size: 1rem;
}

.tools-member-map-unresolved-query,
.tools-member-map-unresolved-reason,
.tools-member-map-unresolved-meta {
    margin-top: 5px !important;
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.45;
}

.tools-member-map-unresolved-reason {
    color: var(--danger);
}

.tools-member-map-unresolved-meta {
    font-weight: 800;
}

.tools-member-map-unresolved-members {
    display: grid;
    gap: 7px;
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}

.tools-member-map-unresolved-members li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding-top: 7px;
    border-top: 1px solid #e7eceb;
}

.tools-member-map-unresolved-members strong {
    overflow-wrap: anywhere;
    color: #173d38;
    font-size: .84rem;
}

.tools-member-map-unresolved-members span {
    flex: 0 0 auto;
    color: var(--muted);
    font-size: .72rem;
}

.tools-member-map-wrap {
    position: relative;
    min-height: 560px;
    background: #e7eeec;
}

.tools-member-map {
    width: 100%;
    height: clamp(560px, 68vh, 820px);
    min-height: 560px;
    z-index: 0;
}

.tools-member-map-loading {
    position: absolute;
    inset: 0;
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #184c45;
    background: rgba(242, 248, 246, .88);
    font-weight: 800;
    backdrop-filter: blur(2px);
}

.tools-member-map-loading[hidden] {
    display: none;
}

.tools-member-map-spinner {
    width: 22px;
    height: 22px;
    border: 3px solid rgba(0, 117, 105, .2);
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: tools-member-map-spin .8s linear infinite;
}

@keyframes tools-member-map-spin {
    to { transform: rotate(360deg); }
}

.tools-member-map-footer {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 11px 18px 13px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    background: #fff;
    font-size: .72rem;
    line-height: 1.45;
}

.tools-member-map-footer span:last-child {
    text-align: right;
}

.tools-member-map .leaflet-control-attribution {
    font-size: 10px;
}

.tools-member-map .leaflet-bar a,
.tools-member-map .leaflet-bar button {
    color: #173d38;
}

.tools-member-map-reset {
    display: grid;
    width: 30px;
    height: 30px;
    padding: 0;
    place-items: center;
    border: 0;
    color: #173d38;
    background: #fff;
    cursor: pointer;
    font: 800 18px/1 system-ui, sans-serif;
}

.tools-member-map-reset:hover,
.tools-member-map-reset:focus-visible {
    color: var(--primary);
    background: #eef6f4;
}

.tools-member-map-marker-shell {
    min-width: 0 !important;
    min-height: 0 !important;
    border: 0 !important;
    background: transparent !important;
    line-height: 0;
}

.tools-member-map-marker {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 1;
    border: 2.5px solid #fff;
    border-radius: 50%;
    background: #086f64;
    box-shadow: 0 1px 4px rgba(12, 42, 37, .35);
}

.tools-member-map-marker.is-private {
    background: #e5810d;
}

.tools-member-map-marker.is-mixed {
    background: linear-gradient(90deg, #086f64 0 50%, #e5810d 50% 100%);
}

.tools-member-map-popup {
    display: grid;
    min-width: 270px;
    max-width: 360px;
    gap: 8px;
}

.tools-member-map-popup > strong {
    color: #173d38;
    font-size: .98rem;
}

.tools-member-map-popup > small {
    color: #657571;
}

.tools-member-map-popup-list {
    display: grid;
    max-height: 315px;
    gap: 0;
    margin: 0;
    padding: 0;
    overflow-y: auto;
    list-style: none;
}

.tools-member-map-popup-list li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3px 8px;
    padding: 7px 0;
    border-top: 1px solid #e7eceb;
}

.tools-member-map-popup-list strong {
    min-width: 0;
    overflow-wrap: anywhere;
    color: #173d38;
    font-size: .84rem;
}

.tools-member-map-popup-list span {
    grid-column: 1;
    color: #687975;
    font-size: .72rem;
}

.tools-member-map-popup-list small {
    grid-column: 2;
    grid-row: 1 / 3;
    align-self: center;
    padding: 3px 6px;
    border-radius: 999px;
    font-size: .67rem;
    font-weight: 800;
}

.tools-member-map-popup-list small.is-company {
    color: #0b665c;
    background: #e3f2ef;
}

.tools-member-map-popup-list small.is-private {
    color: #9a4e00;
    background: #fff0dc;
}

.tools-member-map-member-link {
    min-width: 0;
    overflow-wrap: anywhere;
    color: #075f55;
    font-size: .84rem;
    font-weight: 800;
    text-decoration: none;
    text-underline-offset: 2px;
}

.tools-member-map-member-link:hover,
.tools-member-map-member-link:focus-visible {
    color: #034b43;
    text-decoration: underline;
    text-decoration-color: currentColor;
}

.tools-member-detail-backdrop {
    position: fixed;
    z-index: 1390;
    inset: 0;
    background: rgba(17, 42, 38, .48);
    backdrop-filter: blur(1px);
}

.tools-member-detail-backdrop[hidden],
.tools-member-detail-popup[hidden] {
    display: none;
}

.tools-member-detail-popup {
    position: fixed;
    z-index: 1400;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: min(var(--content-max), calc(100vw - 2rem));
    min-width: 520px;
    height: calc(100dvh - 2rem);
    min-height: 420px;
    overflow: hidden;
    border: 1px solid #9fc8c0;
    border-radius: 12px;
    background: #f3f9f7;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .3);
}

.tools-member-detail-popup-header {
    display: flex;
    min-height: 68px;
    padding: .7rem 1rem;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid #b9d7d1;
    background: #edf7f5;
    cursor: grab;
    user-select: none;
    touch-action: none;
}

.tools-member-detail-popup-heading {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1px .65rem;
    align-items: baseline;
    min-width: 0;
}

.tools-member-detail-popup-heading > span {
    grid-row: 1 / span 2;
    align-self: center;
    padding: 3px 7px;
    border-radius: 999px;
    color: #176b5f;
    background: #dfeeea;
    font-size: .65rem;
    font-weight: 850;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.tools-member-detail-popup-heading h2 {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: #173d38;
    font-size: 1.1rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tools-member-detail-popup-heading small {
    color: var(--muted);
    font-size: .72rem;
    font-weight: 700;
}

.tools-member-detail-popup-actions {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex: 0 0 auto;
}

.tools-member-detail-popup-actions .button {
    white-space: nowrap;
}

.tools-member-detail-frame {
    width: 100%;
    height: 100%;
    border: 0;
    background: #fff;
}

.tools-member-detail-resize-handle {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 0;
    display: block;
    width: 26px;
    height: 26px;
    border-radius: 0 0 11px 0;
    cursor: nwse-resize;
    touch-action: none;
}

.tools-member-detail-resize-handle::after {
    content: "";
    position: absolute;
    right: 5px;
    bottom: 5px;
    width: 10px;
    height: 10px;
    border-right: 2px solid #4f6d67;
    border-bottom: 2px solid #4f6d67;
    opacity: .8;
}

.tools-member-detail-popup.is-dragging .tools-member-detail-popup-header {
    cursor: grabbing;
}

.tools-member-detail-popup.is-dragging,
.tools-member-detail-popup.is-resizing {
    user-select: none;
}

.tools-member-detail-popup.is-resizing .tools-member-detail-frame {
    pointer-events: none;
}

body.has-tools-member-detail-popup {
    overflow: hidden;
}

@media (max-width: 800px) {
    .tools-member-detail-popup {
        inset: 4px !important;
        width: calc(100vw - 8px) !important;
        min-width: 0;
        height: calc(100dvh - 8px) !important;
        min-height: 0;
    }

    .tools-member-detail-popup-header {
        min-height: 58px;
        padding: .55rem .65rem;
    }

    .tools-member-detail-popup-heading > span,
    .tools-member-detail-popup-heading small,
    .tools-member-detail-resize-handle {
        display: none;
    }

    .tools-member-detail-popup-heading {
        display: block;
    }
}

@media (max-width: 900px) {
    .tools-member-statistics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tools-member-map-toolbar,
    .tools-member-map-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .tools-member-map-summary,
    .tools-member-map-footer span:last-child {
        padding-bottom: 0;
        text-align: left;
    }

    .tools-member-map-status {
        justify-items: start;
        padding-bottom: 0;
    }

    .tools-member-map-legend {
        justify-content: flex-start;
    }
}

@media (max-width: 620px) {
    .tools-subpage-heading {
        align-items: stretch;
    }

    .tools-subpage-heading > .button {
        width: 100%;
        justify-content: center;
    }

    .tools-member-statistics,
    .tools-statistics-map-link {
        grid-template-columns: 1fr;
    }

    .tools-statistics-map-link .tools-tile-icon {
        display: none;
    }

    .tools-member-map-wrap,
    .tools-member-map {
        min-height: 480px;
    }

    .tools-member-map {
        height: 64vh;
    }

    .tools-member-map-legend li {
        white-space: normal;
    }
}

.tool-note-text {
    margin: 0;
    line-height: 1.5;
    white-space: normal;
}

.tool-note-editor {
    width: 100%;
    margin-top: auto;
}

.tool-note-editor > summary {
    width: fit-content;
    list-style: none;
    cursor: pointer;
}

.tool-note-editor > summary::-webkit-details-marker {
    display: none;
}

.tool-note-editor form {
    display: grid;
    gap: 10px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}

.tool-note-editor label,
.tool-note-editor label > span {
    display: grid;
    gap: 5px;
}

.tool-note-editor textarea {
    width: 100%;
    min-height: 92px;
    resize: vertical;
}

.tool-note-editor .form-actions {
    margin: 0;
}

.tools-calendar-response-tile {
    border-color: #a9d0c9;
    box-shadow: 0 4px 16px rgba(20,120,106,.08);
}

.tools-calendar-response-tile > form {
    display: flex;
    width: 100%;
    min-width: 0;
    flex-direction: column;
    gap: 9px;
}

.tools-calendar-response-tile > form label {
    display: grid;
    gap: 4px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.tools-calendar-response-tile > form input {
    width: 100%;
    min-width: 0;
    min-height: 36px;
    padding: 6px 7px;
    font-size: 13px;
}

.tools-calendar-response-tile > form .button {
    justify-self: flex-start;
    align-self: flex-start;
}

.tools-calendar-tile-message {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.4;
}

.tools-calendar-tile-message:empty {
    display: none;
}

.tools-calendar-tile-message[data-state="success"] {
    color: var(--primary-dark);
}

.tools-calendar-tile-message[data-state="error"] {
    color: var(--danger);
}

.tools-calendar-response-result {
    display: grid;
    width: 100%;
    gap: 11px;
    margin-top: 2px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}

.tools-calendar-response-result[hidden] {
    display: none;
}

.tools-calendar-document-fields {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto minmax(220px, 1fr);
    gap: 12px;
    align-items: end;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface-soft);
}

.tools-calendar-document-fields > label:not(.tools-calendar-online-field) {
    display: grid;
    gap: 6px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 750;
}

.tools-calendar-document-fields input[type="date"] {
    width: 100%;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--text);
    background: #fff;
    font: inherit;
}

.tools-calendar-online-field {
    display: inline-flex;
    min-height: 42px;
    gap: 8px;
    align-items: center;
    padding: 8px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--text);
    background: #fff;
    font-size: 13px;
    font-weight: 750;
    cursor: pointer;
}

.tools-calendar-online-field input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--primary);
}

.tools-calendar-selected-event {
    display: grid;
    gap: 3px;
}

.tools-calendar-selected-event > span {
    font-weight: 750;
    line-height: 1.35;
}

.tools-calendar-selected-event > small {
    color: var(--muted);
    line-height: 1.35;
}

.tools-calendar-response-grid {
    max-height: min(52vh, 520px);
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.tools-calendar-response-table {
    width: 100%;
    min-width: 900px;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
}

.tools-calendar-response-table th:nth-child(1) {
    width: 32%;
}

.tools-calendar-response-table th:nth-child(2),
.tools-calendar-response-table th:nth-child(3) {
    width: 15%;
}

.tools-calendar-response-table th:nth-child(4),
.tools-calendar-response-table th:nth-child(5) {
    width: 19%;
}

.tools-calendar-response-table thead th {
    position: sticky;
    z-index: 2;
    top: 0;
    padding: 11px 12px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    color: var(--primary-dark);
    background: var(--surface-soft);
    font-size: 12px;
    letter-spacing: .02em;
    text-align: left;
    text-transform: uppercase;
}

.tools-calendar-response-manual-heading span,
.tools-calendar-response-manual-heading small {
    display: block;
}

.tools-calendar-response-manual-heading small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: normal;
    line-height: 1.2;
    text-transform: none;
}

.tools-calendar-response-table thead th:last-child,
.tools-calendar-response-table tbody :is(th, td):last-child {
    border-right: 0;
}

.tools-calendar-response-table tbody :is(th, td) {
    height: 58px;
    padding: 9px 12px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: #fff;
    font-size: 14px;
    line-height: 1.3;
    vertical-align: middle;
}

.tools-calendar-response-table tbody tr:last-child :is(th, td) {
    border-bottom: 0;
}

.tools-calendar-response-name {
    font-weight: 500;
    letter-spacing: normal;
    text-align: left;
    text-transform: none;
    overflow-wrap: anywhere;
}

.tools-calendar-response-name strong {
    display: block;
    color: var(--text);
}

.tools-calendar-response-source,
.tools-calendar-response-manual,
.tools-calendar-response-result-cell {
    text-align: center;
}

.tools-calendar-response-table tbody .tools-calendar-response-manual {
    background: #f8fbfa;
}

.tools-calendar-response-teams:empty {
    min-height: 58px;
}

.tools-calendar-response-badge,
.tools-calendar-response-toggle {
    display: inline-flex;
    min-width: 98px;
    min-height: 32px;
    padding: 5px 10px;
    align-items: center;
    justify-content: center;
    border: 1px solid #d2dcda;
    border-radius: 999px;
    color: var(--muted);
    background: #f5f7f7;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
}

.tools-calendar-response-badge:empty {
    border-color: transparent;
    background: transparent;
}

.tools-calendar-response-toggle {
    min-width: 136px;
    gap: 8px;
    border-width: 2px;
    box-shadow: 0 1px 2px rgba(24,36,34,.08);
    font-family: inherit;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.tools-calendar-response-toggle::after {
    content: "Ändern";
    padding-left: 8px;
    border-left: 1px solid currentColor;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .04em;
    line-height: 1;
    opacity: .72;
    text-transform: uppercase;
}

.tools-calendar-response-toggle:hover,
.tools-calendar-response-toggle:focus-visible {
    border-color: var(--primary);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(15,107,95,.14), 0 4px 10px rgba(24,36,34,.12);
    transform: translateY(-1px);
}

.tools-calendar-response-toggle:active {
    box-shadow: 0 0 0 2px rgba(15,107,95,.12);
    transform: translateY(0);
}

.tools-calendar-response-table [data-response-status="accepted"] {
    border-color: #a8d9c0;
    color: #176a45;
    background: #edf8f2;
}

.tools-calendar-response-table [data-response-status="declined"] {
    border-color: #ebbbbb;
    color: var(--danger);
    background: #fff1f1;
}

.tools-calendar-response-table [data-response-status="tentative"] {
    border-color: #ead59d;
    color: #8a5b00;
    background: #fff8e7;
}

.tools-calendar-response-table [data-response-status="pending"] {
    border-color: #d2dcda;
    color: #52615e;
    background: #f1f5f4;
}

.tools-calendar-response-final {
    box-shadow: inset 0 0 0 1px rgba(24,36,34,.04);
}

.tools-calendar-response-empty td {
    height: 90px !important;
    color: var(--muted);
    text-align: center;
}

.tools-calendar-response-result > .button {
    justify-self: start;
}

.tools-calendar-dialog-result {
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 14px;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    overflow: hidden;
}

.tools-calendar-dialog .tools-calendar-selected-event > span {
    font-size: 17px;
}

.tools-calendar-dialog {
    width: min(1180px, calc(100vw - 32px));
    max-width: 100%;
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    margin: auto;
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 12px;
    color: var(--text);
    background: var(--surface);
    box-shadow: 0 24px 70px rgba(18,36,32,.28);
}

.tools-calendar-dialog[open] {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.tools-calendar-dialog > .tools-calendar-event-list {
    flex: 1 1 auto;
    min-height: 0;
    align-content: start;
    overflow: auto;
}

.tools-calendar-dialog .tools-calendar-response-grid {
    min-height: 0;
    max-height: none;
}

.tools-calendar-dialog .tools-calendar-response-table thead th {
    padding: 8px 10px;
    font-size: 11px;
}

.tools-calendar-dialog .tools-calendar-response-table tbody :is(th, td) {
    height: 46px;
    padding: 6px 10px;
    font-size: 13px;
}

.tools-calendar-dialog .tools-calendar-response-badge,
.tools-calendar-dialog .tools-calendar-response-toggle {
    min-height: 28px;
    padding-block: 4px;
    font-size: 11px;
}

.tools-calendar-dialog .tools-calendar-response-toggle {
    min-width: 130px;
}

.tools-calendar-dialog.is-positioned {
    position: fixed;
    inset: auto;
    max-width: none;
    max-height: none;
    margin: 0;
}

.tools-calendar-dialog::backdrop {
    background: rgba(12,28,32,.5);
    backdrop-filter: blur(2px);
}

.tools-calendar-dialog .panel-heading {
    flex: 0 0 auto;
    align-items: flex-start;
    margin-bottom: 16px;
}

.tools-calendar-dialog-heading {
    cursor: grab;
    user-select: none;
    touch-action: none;
}

.tools-calendar-dialog-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex: 0 0 auto;
}

.tools-calendar-dialog-actions .button {
    white-space: nowrap;
}

.tools-calendar-dialog-resize-handle {
    position: fixed;
    z-index: 3;
    display: block;
    width: 26px;
    height: 26px;
    border-radius: 0 0 11px 0;
    cursor: nwse-resize;
    touch-action: none;
}

.tools-calendar-dialog-resize-handle::after {
    content: "";
    position: absolute;
    right: 5px;
    bottom: 5px;
    width: 10px;
    height: 10px;
    border-right: 2px solid #4f6d67;
    border-bottom: 2px solid #4f6d67;
    opacity: .8;
}

.tools-calendar-dialog-resize-handle[hidden] {
    display: none;
}

.tools-calendar-dialog.is-dragging .tools-calendar-dialog-heading {
    cursor: grabbing;
}

.tools-calendar-dialog.is-dragging,
.tools-calendar-dialog.is-resizing {
    user-select: none;
}

.tools-calendar-dialog .panel-heading p {
    margin: 4px 0 0;
}

@media (max-width: 800px) {
    .tools-calendar-dialog-actions [data-tools-calendar-popout],
    .tools-calendar-dialog-resize-handle {
        display: none;
    }
}

@media (max-width: 700px) {
    .tools-calendar-dialog {
        width: calc(100vw - 16px);
        max-height: calc(100dvh - 16px);
    }

    .tools-calendar-response-grid {
        max-height: 56vh;
    }

    .tools-calendar-document-fields {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .tools-calendar-online-field {
        justify-self: start;
    }
}

.app-tools-calendar-popup {
    min-width: 0;
    overflow: hidden;
    background: var(--surface);
}

.app-tools-calendar-popup .popup-shell {
    width: 100%;
    min-height: 100dvh;
    padding: 0;
}

.app-tools-calendar-popup .page-heading,
.app-tools-calendar-popup #tools-grid {
    display: none;
}

.app-tools-calendar-popup .tools-calendar-dialog {
    position: fixed;
    inset: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    max-height: none !important;
    min-width: 0;
    min-height: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.app-tools-calendar-popup .tools-calendar-dialog::backdrop {
    background: var(--surface);
    backdrop-filter: none;
}

.app-tools-calendar-popup .tools-calendar-dialog-heading {
    cursor: default;
    touch-action: auto;
}

.app-tools-calendar-popup [data-tools-calendar-popout],
.app-tools-calendar-popup .tools-calendar-dialog-resize-handle {
    display: none !important;
}

.tools-calendar-dialog-status {
    margin: 0;
    padding: 12px 14px;
    border-radius: 8px;
    color: var(--muted);
    background: var(--surface-soft);
}

.tools-calendar-dialog-status[data-state="success"] {
    color: var(--primary-dark);
    background: #edf8f5;
}

.tools-calendar-dialog-status[data-state="warning"] {
    color: #795400;
    background: #fff8e7;
}

.tools-calendar-dialog-status[data-state="error"] {
    color: var(--danger);
    background: #fff1f1;
}

.tools-calendar-event-list {
    display: grid;
    gap: 8px;
    margin-top: 14px;
}

.tools-calendar-event-list[hidden] {
    display: none;
}

.tools-calendar-event-option {
    display: grid;
    grid-template-columns: minmax(92px, auto) minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 9px;
    color: var(--text);
    text-align: left;
    background: #fff;
    cursor: pointer;
}

.tools-calendar-event-option:hover,
.tools-calendar-event-option:focus-visible {
    border-color: var(--primary);
    background: var(--surface-soft);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(20,120,106,.12);
}

.tools-calendar-event-option:disabled {
    cursor: wait;
    opacity: .65;
}

.tools-calendar-event-time {
    color: var(--primary-dark);
    font-weight: 750;
    font-variant-numeric: tabular-nums;
}

.tools-calendar-event-content {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.tools-calendar-event-title {
    overflow-wrap: anywhere;
    font-weight: 750;
}

.tools-calendar-event-content small {
    color: var(--muted);
}

.tools-finance-tile {
    border-color: #a9d0c9;
    box-shadow: 0 4px 16px rgba(20,120,106,.08);
}

.tools-finance-tile > form {
    display: flex;
    width: 100%;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    gap: 10px;
}

.tools-finance-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.tools-finance-fields label {
    display: grid;
    min-width: 0;
    gap: 4px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.tools-finance-fields input {
    width: 100%;
    min-width: 0;
    min-height: 36px;
    padding: 6px 7px;
    font-size: 13px;
}

.tools-finance-tile .button {
    align-self: flex-start;
    margin-top: auto;
}

.tools-finance-tile-message {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.tools-finance-tile-message:empty {
    display: none;
}

.tools-finance-tile-message[data-state="error"] {
    color: var(--danger);
}

.tools-finance-dialog {
    width: min(900px, calc(100vw - 32px));
    max-width: 100%;
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    margin: auto;
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 12px;
    color: var(--text);
    background: var(--surface);
    box-shadow: 0 24px 70px rgba(18,36,32,.28);
}

.tools-finance-dialog::backdrop {
    background: rgba(12,28,32,.5);
    backdrop-filter: blur(2px);
}

.tools-finance-dialog .panel-heading {
    align-items: flex-start;
    margin-bottom: 16px;
}

.tools-finance-dialog .panel-heading p {
    margin: 4px 0 0;
}

.tools-finance-dialog-status {
    margin: 0;
    padding: 12px 14px;
    border-radius: 8px;
    color: var(--muted);
    background: var(--surface-soft);
}

.tools-finance-dialog-status[data-state="error"] {
    color: var(--danger);
    background: #fff1f1;
}

.tools-finance-dialog-status[data-state="success"] {
    color: var(--primary-dark);
    background: #edf8f5;
}

.tools-finance-results {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
}

.tools-finance-results[hidden] {
    display: none;
}

.tools-finance-account {
    min-width: 0;
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}

.tools-finance-account h3 {
    margin: 0 0 10px;
    font-size: 18px;
}

.tools-finance-account h3 small {
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}

.tools-finance-account > p {
    margin: 0;
}

.tools-finance-balance-lines {
    display: grid;
    gap: 7px;
    margin-top: 13px;
    padding-top: 13px;
    border-top: 1px solid var(--line);
}

.tools-finance-balance-lines p {
    margin: 0;
}

.tools-finance-balance-lines span,
.tools-finance-cash > p span {
    font-variant-numeric: tabular-nums;
}

.tools-finance-cash {
    grid-column: 1 / -1;
}

.tools-finance-dialog-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}

.tools-finance-dialog-actions[hidden] {
    display: none;
}

.tools-finance-copy-status {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.tools-finance-copy-status:empty {
    display: none;
}

.tools-upcoming-events-tile {
    border-color: #a9d0c9;
    box-shadow: 0 4px 16px rgba(20,120,106,.08);
}

.tools-upcoming-events-tile > p {
    margin: 0;
    color: var(--muted);
}

.tools-upcoming-events-tile .button {
    align-self: flex-start;
    margin-top: auto;
}

.tools-upcoming-events-dialog {
    width: min(960px, calc(100vw - 32px));
    max-width: 100%;
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    margin: auto;
    overflow-x: hidden;
    overflow-y: auto;
    border: 1px solid var(--line);
    border-radius: 12px;
    color: var(--text);
    background: var(--surface);
    box-shadow: 0 24px 70px rgba(18,36,32,.28);
}

.tools-upcoming-events-dialog::backdrop {
    background: rgba(12,28,32,.5);
    backdrop-filter: blur(2px);
}

.tools-upcoming-events-dialog .panel-heading {
    align-items: flex-start;
    margin-bottom: 16px;
}

.tools-upcoming-events-dialog .panel-heading p {
    margin: 4px 0 0;
}

.tools-upcoming-events-list {
    display: grid;
    min-width: 0;
    gap: 10px;
    max-height: min(620px, calc(100dvh - 210px));
    overflow-x: hidden;
    overflow-y: auto;
    padding-right: 3px;
}

.tools-upcoming-event {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}

.tools-upcoming-event > header {
    display: flex;
    justify-content: flex-end;
    min-height: 38px;
    padding: 8px 12px;
    border-bottom: 1px solid var(--line);
    background: var(--surface-soft);
}

.tools-upcoming-event-switch {
    font-size: 12px;
}

.tools-upcoming-event dl {
    display: grid;
    gap: 0;
    margin: 0;
}

.tools-upcoming-event dl > div {
    display: grid;
    grid-template-columns: 195px minmax(0,1fr);
    min-width: 0;
    border-top: 1px solid #edf1f0;
}

.tools-upcoming-event dl > div:first-child {
    border-top: 0;
}

.tools-upcoming-event dt,
.tools-upcoming-event dd {
    min-width: 0;
    margin: 0;
    padding: 9px 12px;
}

.tools-upcoming-event dt {
    color: var(--muted);
    background: #fbfcfc;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.tools-upcoming-event dd {
    overflow-wrap: anywhere;
    font-size: 13px;
}

.tools-upcoming-event dd > strong,
.tools-upcoming-event dd > span {
    display: block;
}

.tools-upcoming-event dd > span {
    margin-top: 2px;
    color: var(--muted);
    font-size: 12px;
}

.tools-upcoming-events-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}

.tools-upcoming-events-actions p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.tools-upcoming-events-actions p[data-state="success"] {
    color: var(--primary-dark);
}

.tools-upcoming-events-actions p[data-state="error"] {
    color: var(--danger);
}

@media (max-width: 620px) {
    .tools-upcoming-events-dialog {
        width: calc(100vw - 16px);
        max-height: calc(100dvh - 16px);
    }

    .tools-upcoming-event dl > div {
        grid-template-columns: 1fr;
    }

    .tools-upcoming-event dt {
        padding-bottom: 3px;
    }

    .tools-upcoming-event dd {
        padding-top: 3px;
    }
}

.tools-finance-copy-status[data-state="success"] {
    color: var(--primary-dark);
}

.tools-finance-copy-status[data-state="error"] {
    color: var(--danger);
}

@media (max-width: 700px) {
    .tools-calendar-event-option {
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
    }

    .tools-finance-fields,
    .tools-finance-results {
        grid-template-columns: minmax(0, 1fr);
    }

    .tools-finance-cash {
        grid-column: auto;
    }

    .tools-finance-dialog-actions {
        align-items: flex-start;
        flex-direction: column;
    }
}

.thunderbird-bridge-tile {
    position: relative;
    border-color: #a9d0c9;
    box-shadow: 0 4px 16px rgba(20,120,106,.08);
}
.thunderbird-bridge-tile > strong { padding-right:28px; }
.thunderbird-bridge-tile .bridge-help-button { position:absolute; top:12px; right:12px; width:32px; height:32px; min-width:32px; padding:6px; border-radius:50%; }

.bridge-status-line {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-weight: 700;
}

.bridge-status-dot {
    width: 10px;
    height: 10px;
    flex: 0 0 auto;
    border-radius: 999px;
    background: #8b949e;
    box-shadow: 0 0 0 3px rgba(139,148,158,.14);
}

.thunderbird-bridge-tile[data-state="running"] .bridge-status-dot { background:#198754; box-shadow:0 0 0 3px rgba(25,135,84,.15); }
.thunderbird-bridge-tile[data-state="stopped"] .bridge-status-dot { background:#d99a00; box-shadow:0 0 0 3px rgba(217,154,0,.16); }
.thunderbird-bridge-tile[data-state="thunderbird_missing"] .bridge-status-dot,
.thunderbird-bridge-tile[data-state="unavailable"] .bridge-status-dot { background:var(--danger); box-shadow:0 0 0 3px rgba(180,35,45,.14); }

.dashboard-bridge-status {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 8px;
    min-height: 34px;
    margin-top: 2px;
    padding: 7px 12px;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--text);
    background: var(--surface);
    box-shadow: 0 1px 3px rgba(24, 36, 34, .05);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

.dashboard-page-heading {
    margin-bottom: 24px;
}

.dashboard-page-heading p {
    margin-bottom: 0;
}

.dashboard-bridge-status:hover,
.dashboard-bridge-status:focus-visible {
    border-color: #8fc2b8;
    background: #f6fbfa;
    box-shadow: 0 2px 8px rgba(20, 120, 106, .10);
}

.dashboard-bridge-status[data-state="running"] {
    border-color: #a9d0c9;
    background: #f4faf8;
}

.dashboard-bridge-status[data-state="running"] .bridge-status-dot {
    background: #198754;
    box-shadow: 0 0 0 3px rgba(25, 135, 84, .15);
}

.dashboard-bridge-status[data-state="update_available"] {
    color: #8a5500;
    border-color: #e0ad4f;
    background: #fff8e8;
}

.dashboard-bridge-status[data-state="update_available"] .bridge-status-dot {
    background: #d99a00;
    box-shadow: 0 0 0 3px rgba(217, 154, 0, .16);
}

.dashboard-bridge-status[data-state="stopped"],
.dashboard-bridge-status[data-state="thunderbird_missing"],
.dashboard-bridge-status[data-state="not_connected"],
.dashboard-bridge-status[data-state="unavailable"] {
    color: var(--danger);
    border-color: rgba(180, 35, 45, .38);
    background: #fff5f5;
}

.dashboard-bridge-status[data-state="stopped"] .bridge-status-dot,
.dashboard-bridge-status[data-state="thunderbird_missing"] .bridge-status-dot,
.dashboard-bridge-status[data-state="not_connected"] .bridge-status-dot,
.dashboard-bridge-status[data-state="unavailable"] .bridge-status-dot {
    background: var(--danger);
    box-shadow: 0 0 0 3px rgba(180, 35, 45, .14);
}

.dashboard-bridge-summary {
    display: grid;
    min-width: 0;
    align-self: flex-start;
    justify-items: end;
    gap: 4px;
}

.dashboard-current-date {
    color: var(--muted);
    font-size: 11px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

.bridge-tile-message {
    min-height: 1.4em;
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.bridge-tile-message[data-state="error"],
.bridge-compose-status[data-state="error"] { color:var(--danger); }
.bridge-tile-message[data-state="success"],
.bridge-compose-status[data-state="success"] { color:var(--primary-dark); }

.bridge-tile-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: auto;
}

.thunderbird-bridge-update-dialog,
.thunderbird-bridge-help-dialog {
    position: fixed;
    inset: 0;
    width: min(620px, calc(100vw - 32px));
    max-width: 620px;
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    margin: auto;
    overflow: auto;
    color: var(--text);
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: 0 24px 70px rgba(20,40,45,.22);
}

.thunderbird-bridge-update-dialog::backdrop,
.thunderbird-bridge-help-dialog::backdrop { background:rgba(12,28,32,.46); }
.bridge-compose-status { min-height:1.5em; font-weight:650; }
.thunderbird-bridge-update-dialog .panel-heading { margin-bottom:16px; }
.thunderbird-bridge-update-dialog > p { margin:0 0 14px; }
.bridge-update-steps { display:grid; gap:10px; margin:0 0 20px; padding-left:22px; line-height:1.45; }
.bridge-update-actions { justify-content:flex-end; }
.thunderbird-bridge-help-dialog { width:min(720px,calc(100vw - 32px)); max-width:720px; line-height:1.5; }
.thunderbird-bridge-help-dialog .panel-heading { margin-bottom:16px; }
.thunderbird-bridge-help-dialog h3 { margin:22px 0 10px; }
.thunderbird-bridge-help-dialog > p { margin:0 0 14px; }
.thunderbird-bridge-help-dialog details { margin:18px 0; }
.thunderbird-bridge-help-dialog summary { cursor:pointer; font-weight:650; }
.thunderbird-bridge-help-dialog details p { margin:10px 0 0; }
.thunderbird-bridge-help-dialog .form-actions { justify-content:flex-end; margin-top:20px; }

.dashboard-empty-metric p {
    margin: 8px 0 0;
    color: var(--muted);
}

.dashboard-data-metric {
    padding: 18px;
}

.dashboard-data-heading {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.dashboard-data-heading .icon {
    width: 17px;
    height: 17px;
    color: var(--primary);
}

.metric .dashboard-data-heading strong {
    margin: 0;
    font-size: 16px;
}

.dashboard-data-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin: 0;
}

.dashboard-data-grid > div {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 7px 0;
    border-top: 1px solid #e0e7e5;
    background: transparent;
}

.dashboard-data-grid > div:first-child { border-top:0; }

.dashboard-data-grid dt {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 7px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 650;
    line-height: 1.25;
}

.dashboard-data-grid dt .icon {
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
    color: var(--primary);
}

.metric .dashboard-data-grid dt span {
    display: inline;
    color: inherit;
    font-size: 12px;
}

.metric .dashboard-data-grid dt .dashboard-data-label { display:grid; gap:2px; }
.metric .dashboard-data-grid .dashboard-data-last-resolved { color:var(--muted); font-size:11px; font-weight:400; line-height:1.35; }

.dashboard-data-grid dd {
    margin: 0;
    color: var(--text);
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.dashboard-data-grid .dashboard-data-alert dt,
.dashboard-data-grid .dashboard-data-alert dt .icon,
.dashboard-data-grid .dashboard-data-alert dd,
.dashboard-data-grid .dashboard-data-alert .dashboard-data-last-resolved {
    color: var(--danger);
}

.dashboard-accounting-metric .dashboard-data-grid a {
    color: inherit;
}

.dashboard-accounting-metric .dashboard-data-grid a:hover {
    color: var(--primary);
    text-decoration: underline;
}

.dashboard-accounting-request-status {
    margin: 8px 0 0;
    padding-top: 9px;
    border-top: 1px solid #e0e7e5;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.4;
}

.budget-summary-tile.dashboard-budget-balance-metric {
    gap: 9px;
    padding: 14px 18px;
}

.dashboard-budget-balance-metric .budget-tile-heading {
    gap: 8px;
}

.dashboard-budget-balance-metric .budget-tile-heading > span {
    width: 32px;
    height: 32px;
}

.dashboard-budget-balance-metric .budget-tile-heading .icon {
    width: 17px;
    height: 17px;
}

.metric.dashboard-budget-balance-metric .budget-tile-heading strong {
    margin: 0;
    font-size: 14px;
    line-height: 1.2;
}

.dashboard-budget-balance-metric .budget-tile-heading a {
    color: inherit;
}

.dashboard-budget-balance-metric .budget-tile-heading a:hover {
    color: var(--primary);
    text-decoration: underline;
}

.dashboard-budget-balance-metric .budget-tile-heading small,
.dashboard-budget-balance-metric > small {
    font-size: 10px;
}

.dashboard-budget-balance-metric .budget-summary-list > div {
    padding: 3px 0;
}

.dashboard-budget-balance-metric .budget-summary-list dt {
    font-size: 11px;
}

.dashboard-budget-balance-metric .budget-summary-list dd {
    font-size: 13px;
}

.dashboard-budget-balance-metric .budget-summary-list .budget-summary-total {
    padding-top: 6px;
}

.metric {
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.metric span {
    display: block;
    color: var(--muted);
    font-size: 13px;
}

.metric strong {
    display: block;
    margin-top: 8px;
    font-size: 28px;
}

.dashboard-status-metric {
    min-width: 0;
}

.dashboard-today-tasks-metric {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 14px 16px;
}

.dashboard-today-tasks-metric .dashboard-status-heading {
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 8px;
}

.dashboard-today-tasks-metric .dashboard-status-heading > span {
    color: var(--text);
    font-size: 14px;
    font-weight: 750;
    line-height: 1.25;
}

.dashboard-today-tasks-metric .dashboard-status-heading > a { flex: 0 0 auto; }

.dashboard-today-task-list {
    display: grid;
    align-content: start;
    gap: 4px;
    max-height: 142px;
    overflow-y: auto;
    scrollbar-width: thin;
}

.dashboard-today-task {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding: 7px 8px;
    color: #1f6558;
    border: 1px solid #c4ddd8;
    border-left: 3px solid #187769;
    border-radius: 5px;
    background: #edf7f5;
    text-decoration: none;
}

.dashboard-today-task:first-child {
    margin-top: 0;
}

.dashboard-today-task.is-work-step {
    color: #4f477d;
    border-color: #ccc6e3;
    border-left-color: #766ca8;
    background: #f4f2fa;
}

.dashboard-today-task:hover,
.dashboard-today-task:focus-visible {
    color: var(--primary);
    text-decoration: none;
}

.metric .dashboard-today-task > strong {
    display: block;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-task-type-symbol { margin-right: 4px; font-style: normal; }

.dashboard-today-task > time {
    color: var(--muted);
    font-size: 10.5px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.dashboard-today-task.is-overdue > strong,
.dashboard-today-task.is-overdue > time {
    color: var(--danger);
}

.dashboard-today-task.is-overdue {
    border-color: #e3aeb2;
    border-left-color: var(--danger);
    background: #fff0f1;
}

.dashboard-today-task-empty {
    margin: 18px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.4;
}

.dashboard-status-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.dashboard-status-heading > span {
    display: flex;
    align-items: center;
    gap: 7px;
}

.dashboard-status-heading .icon {
    width: 15px;
    height: 15px;
}

.dashboard-status-heading a {
    color: var(--primary);
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.dashboard-status-heading a:hover {
    text-decoration: underline;
}

.metric .dashboard-status-text {
    font-size: 17px;
    line-height: 1.3;
}

.dashboard-status-list {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 12px;
    margin: 9px 0 0;
    padding: 9px 0 0;
    border-top: 1px solid rgba(166, 107, 0, .2);
    list-style: none;
}

.dashboard-status-list li {
    color: var(--text);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
}

.dashboard-status-list li::before {
    content: "\2022";
    margin-right: 5px;
    color: var(--warning);
}

.dashboard-callback-names {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
}

.dashboard-inventory-list {
    display: grid;
    gap: 6px;
    border-top-color: rgba(161, 43, 43, .2);
}

.dashboard-inventory-list li::before {
    color: var(--danger);
}

.dashboard-inventory-list small {
    display: block;
    margin: 2px 0 0 13px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 400;
}

.dashboard-callback-empty {
    margin: 9px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.dashboard-planner-section {
    margin-bottom: 18px;
}

.dashboard-planner-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    align-items: stretch;
}

.dashboard-planner-grid.is-calendar-only {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dashboard-planner-grid.is-calendar-only .dashboard-week-panel {
    grid-column: auto;
}

.dashboard-week-panel {
    grid-column: span 2;
    min-width: 0;
    padding: 16px;
}

.dashboard-open-todos-panel {
    min-width: 0;
    padding: 16px;
}
.dashboard-planner-sidebar{display:grid;grid-column:span 1;align-content:start;gap:14px;min-width:0}.dashboard-staff-presence-panel{min-width:0;padding:16px}.dashboard-staff-presence-list{display:grid;gap:8px}.dashboard-staff-presence-list>div{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:8px 0;border-bottom:1px solid var(--line)}.dashboard-staff-presence-list>div:last-child{border-bottom:0}.dashboard-staff-presence-list strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.presence-status{flex:0 0 auto;padding:4px 8px;border-radius:999px;font-size:.75rem;font-weight:800;background:#dff1ed;color:#086a5e}.presence-status.is-vacation{background:#e6edf8;color:#315b91}.presence-status.is-sickness{background:#fde4e4;color:#9c2525}.presence-status.is-child_sickness{background:#fff0c7;color:#7a5600}

.dashboard-planner-heading {
    display: flex;
    min-height: 34px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 14px;
}

.dashboard-planner-heading h3 {
    margin: 0;
    font-size: 17px;
    line-height: 1.25;
}

.dashboard-planner-heading > div > span {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 11px;
    font-variant-numeric: tabular-nums;
}

.dashboard-planner-heading > .icon {
    width: 20px;
    height: 20px;
    color: var(--primary);
}

.dashboard-planner-heading .icon-button {
    width: 30px;
    height: 30px;
    min-height: 30px;
}

.dashboard-week-days {
    display: grid;
    grid-template-columns: 1fr;
    min-height: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: var(--surface);
}

.dashboard-week-column-headings {
    display: grid;
    grid-template-columns: 82px minmax(0, .9fr) minmax(0, 1.1fr);
    min-height: 34px;
    color: var(--muted);
    border-bottom: 1px solid var(--line);
    background: #f7faf9;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.dashboard-week-column-headings > span {
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
    padding: 8px 7px;
    border-right: 1px solid var(--line);
}

.dashboard-week-column-headings > span:last-child { border-right: 0; }

.dashboard-week-column-headings .icon {
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
    color: var(--primary);
}

.dashboard-calendar-day {
    position: relative;
    display: grid;
    grid-template-columns: 82px minmax(0, .9fr) minmax(0, 1.1fr);
    min-width: 0;
    border-top: 1px solid var(--line);
    background: #fff;
}

.dashboard-calendar-day:first-child { border-top: 0; }
.dashboard-calendar-day.is-weekend { background: #fafcfb; }

.dashboard-calendar-day.is-today {
    z-index: 1;
}

.dashboard-calendar-day.is-today::after {
    position: absolute;
    z-index: 3;
    inset: 0;
    border: 2px solid var(--primary);
    content: "";
    pointer-events: none;
}

.dashboard-calendar-day > header {
    display: flex;
    min-height: 84px;
    align-content: center;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
    padding: 7px 6px;
    border-right: 1px solid var(--line);
    color: var(--muted);
    background: #f7faf9;
    font-size: 10px;
}

.dashboard-calendar-day > header strong {
    color: var(--text);
    font-size: 13px;
}

.dashboard-calendar-day > header time {
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}

.dashboard-calendar-day.is-today > header {
    color: #fff;
    background: var(--primary);
}

.dashboard-calendar-day.is-today > header strong { color: #fff; }

.dashboard-calendar-day-entries {
    display: grid;
    align-content: start;
    gap: 5px;
    min-height: 84px;
    padding: 7px;
}

.dashboard-calendar-day-appointments {
    border-right: 1px solid var(--line);
}

.dashboard-calendar-entry {
    display: block;
    min-width: 0;
    padding: 8px 9px;
    overflow: hidden;
    color: #235e56;
    border: 1px solid #b8d8d2;
    border-left: 3px solid #4b9a8e;
    border-radius: 5px;
    background: #edf7f5;
    text-decoration: none;
}

.dashboard-calendar-entry:hover,
.dashboard-calendar-entry:focus-visible {
    color: inherit;
    border-color: currentColor;
    text-decoration: none;
}

.dashboard-calendar-entry-time {
    display: flex;
    align-items: center;
    gap: 3px;
    color: inherit;
    font-size: 12px;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

.dashboard-calendar-entry-time .icon {
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
}

.dashboard-calendar-type-symbol {
    display: inline-grid;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    place-items: center;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
}

.dashboard-calendar-entry-time .dashboard-calendar-reminder-icon {
    width: 12px;
    height: 12px;
    margin-left: auto;
}

.dashboard-calendar-entry > strong {
    display: -webkit-box;
    margin-top: 3px;
    overflow: hidden;
    color: var(--text);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

.dashboard-calendar-day-tasks .dashboard-calendar-entry > strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    -webkit-line-clamp: unset;
}

.dashboard-calendar-entry > small {
    display: block;
    margin-top: 3px;
    overflow: hidden;
    color: var(--muted);
    font-size: 10.5px;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-calendar-entry.is-todo-reminder {
    color: #795d12;
    border-color: #e0cf91;
    border-left-color: #c29a24;
    background: #fff9e6;
}

.dashboard-calendar-entry.is-external-calendar {
    color: #23647a;
    border-color: #afd1dc;
    border-left-color: #3187a3;
    background: #eef8fb;
}

button.dashboard-calendar-entry.is-external-calendar {
    width: 100%;
    appearance: none;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.dashboard-calendar-entry.is-todo-deadline {
    color: #1f6558;
    border-left-color: #187769;
}

.dashboard-calendar-entry.is-event-work-step {
    color: #4f477d;
    border-color: #ccc6e3;
    border-left-color: #766ca8;
    background: #f4f2fa;
}

.dashboard-calendar-entry.is-overdue {
    color: #9b252d;
    border-color: #e3aeb2;
    border-left-color: var(--danger);
    background: #fff0f1;
}

.dashboard-calendar-entry.is-overdue > strong,
.dashboard-open-todo.is-overdue > strong,
.dashboard-open-todo.is-overdue time { color: var(--danger); }

.dashboard-calendar-empty {
    display: block;
    padding: 8px 0;
    color: #a6b1af;
    text-align: center;
}

.dashboard-calendar-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px 14px;
    margin-top: 10px;
    color: var(--muted);
    font-size: 9.5px;
    line-height: 1.2;
}

.dashboard-calendar-legend > span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}

.dashboard-calendar-legend > span::before {
    width: 7px;
    height: 7px;
    flex: 0 0 auto;
    border-radius: 2px;
    background: #4b9a8e;
    content: "";
}

.dashboard-calendar-legend > .is-calendar-entry::before,
.dashboard-calendar-legend > .is-task-entry::before,
.dashboard-calendar-legend > .is-work-step-entry::before { display: none; }

.dashboard-calendar-legend .icon {
    width: 12px;
    height: 12px;
    color: var(--primary);
}

.dashboard-calendar-legend > .is-todo-reminder::before { background: #c29a24; }
.dashboard-calendar-legend > .is-todo-deadline::before { background: #187769; }
.dashboard-calendar-legend > .is-event-work-step::before { background: #766ca8; }
.dashboard-calendar-legend > .is-overdue::before { background: var(--danger); }

.dashboard-calendar-event-dialog {
    width: min(660px, calc(100vw - 32px));
    max-height: calc(100dvh - 32px);
    margin: auto;
    padding: 0;
    overflow: hidden;
    color: var(--text);
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
    box-shadow: 0 24px 70px rgba(20, 42, 37, .24);
}

.dashboard-calendar-event-dialog[open] {
    position: fixed;
    inset: 0;
}

.dashboard-calendar-event-dialog::backdrop {
    background: rgba(15, 32, 31, .55);
    backdrop-filter: blur(2px);
}

.dashboard-calendar-event-dialog-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--line);
}

.dashboard-calendar-event-dialog-header > div {
    display: grid;
    min-width: 0;
    gap: 5px;
}

.dashboard-calendar-event-dialog-header h2 {
    margin: 0;
    overflow-wrap: anywhere;
    font-size: 20px;
    line-height: 1.3;
}

.dashboard-calendar-event-dialog-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #23647a;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.dashboard-calendar-event-dialog-eyebrow .icon {
    width: 14px;
    height: 14px;
}

.dashboard-calendar-event-dialog-content {
    display: grid;
    max-height: calc(100dvh - 190px);
    padding: 20px;
    overflow-y: auto;
    gap: 20px;
}

.dashboard-calendar-event-details {
    display: grid;
    margin: 0;
    gap: 10px;
}

.dashboard-calendar-event-details > div {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 14px;
    align-items: baseline;
}

.dashboard-calendar-event-details dt {
    color: var(--muted);
    font-size: 12px;
    font-weight: 750;
}

.dashboard-calendar-event-details dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
    font-size: 13px;
    font-weight: 650;
}

.dashboard-calendar-event-description {
    padding-top: 16px;
    border-top: 1px solid var(--line);
}

.dashboard-calendar-event-description h3 {
    margin: 0 0 8px;
    font-size: 13px;
}

.dashboard-calendar-event-description p {
    margin: 0;
    color: #344943;
    font-size: 13px;
    line-height: 1.55;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.dashboard-calendar-event-details dd a,
.dashboard-calendar-event-description a {
    color: var(--primary);
    text-decoration: none;
    text-underline-offset: 2px;
}

.dashboard-calendar-event-details dd a:hover,
.dashboard-calendar-event-details dd a:focus-visible,
.dashboard-calendar-event-description a:hover,
.dashboard-calendar-event-description a:focus-visible {
    text-decoration: underline;
}

.dashboard-calendar-event-dialog-actions {
    display: flex;
    justify-content: flex-end;
    padding: 14px 20px;
    border-top: 1px solid var(--line);
    background: #f7faf9;
}

body.has-dashboard-work-package-dialog { overflow:hidden; }
.dashboard-work-package-backdrop { position:fixed; z-index:1199; inset:0; background:rgba(15,31,28,.58); backdrop-filter:blur(2px); }
.dashboard-work-package-backdrop[hidden],.dashboard-work-package-popup[hidden] { display:none; }
.dashboard-work-package-popup { position:fixed; z-index:1200; display:grid; grid-template-rows:auto minmax(0,1fr); width:min(1200px,calc(100vw - 2rem)); max-width:none; min-width:480px; height:min(880px,calc(100dvh - 2rem)); min-height:360px; margin:0; overflow:hidden; border:1px solid #9fc8c0; border-radius:12px; background:#f3f9f7; box-shadow:0 24px 80px rgba(0,0,0,.3); }
.dashboard-work-package-popup-header { display:flex; min-height:68px; padding:.7rem 1rem; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid #b9d7d1; background:#edf7f5; cursor:grab; user-select:none; touch-action:none; }
.dashboard-work-package-popup-heading { display:grid; grid-template-columns:auto minmax(0,1fr); gap:1px .65rem; align-items:baseline; min-width:0; }
.dashboard-work-package-popup-eyebrow { grid-row:1/span 2; align-self:center; padding:3px 7px; border-radius:99px; color:#176b5f; background:#e9f4f1; font-size:10px; font-weight:850; letter-spacing:.055em; text-transform:uppercase; }
.dashboard-work-package-popup-heading h2 { min-width:0; margin:0; overflow:hidden; font-size:1.1rem; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-work-package-popup-heading small { color:var(--muted); font-size:11px; font-weight:650; }
.dashboard-work-package-popup-actions { display:flex; align-items:center; gap:.5rem; flex:0 0 auto; }
.dashboard-work-package-popup-actions .button { white-space:nowrap; }
.dashboard-work-package-popup-actions .icon-button { width:36px; height:36px; background:#fff; }
.dashboard-work-package-frame { display:block; width:100%; height:100%; min-height:0; border:0; background:#f7faf9; }
.dashboard-work-package-resize-handle { position:absolute; z-index:2; right:0; bottom:0; display:block; width:26px; height:26px; border-radius:0 0 11px 0; cursor:nwse-resize; touch-action:none; }
.dashboard-work-package-resize-handle::after { content:""; position:absolute; right:5px; bottom:5px; width:10px; height:10px; border-right:2px solid #4f6d67; border-bottom:2px solid #4f6d67; opacity:.8; }
.dashboard-work-package-popup.is-dragging .dashboard-work-package-popup-header { cursor:grabbing; }
.dashboard-work-package-popup.is-dragging,.dashboard-work-package-popup.is-resizing { user-select:none; }
.dashboard-work-package-popup.is-resizing .dashboard-work-package-frame { pointer-events:none; }

.dashboard-open-todo-list {
    display: grid;
    align-content: start;
    gap: 6px;
    max-height: 720px;
    overflow-y: auto;
    scrollbar-width: thin;
}

.dashboard-open-todo {
    display: block;
    min-width: 0;
    padding: 10px 11px;
    color: inherit;
    border: 1px solid var(--line);
    border-left: 3px solid #8ebdb5;
    border-radius: 6px;
    background: #edf7f5;
    text-decoration: none;
}

.dashboard-open-todo.is-work-step {
    color: #4f477d;
    border-color: #ccc6e3;
    border-left-color: #766ca8;
    background: #f4f2fa;
}

.dashboard-open-todo:hover,
.dashboard-open-todo:focus-visible {
    color: inherit;
    border-color: var(--primary);
    text-decoration: none;
}

.dashboard-open-todo.is-overdue {
    border-color: #e3aeb2;
    border-left-color: var(--danger);
    background: #fff5f5;
}

.dashboard-open-todo > strong {
    display: block;
    overflow: hidden;
    color: var(--text);
    font-size: 14.3px;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-open-todo > span,
.dashboard-open-todo > time {
    display: block;
    margin-top: 4px;
    overflow: hidden;
    color: var(--muted);
    font-size: 11.7px;
    font-variant-numeric: tabular-nums;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-open-todo-empty {
    margin: 24px 0;
    color: var(--muted);
    font-size: 12px;
    text-align: center;
}

.call-callback-mail-form {
    margin: 0 0 0 auto;
}

.call-callback-mail-form .button {
    width: auto;
    white-space: nowrap;
}

.call-manual-callback-panel {
    width: min(760px, calc(100vw - 28px));
}

.callback-contact-field {
    display: grid;
    gap: 6px;
    color: var(--muted);
    font-weight: 700;
}

.callback-contact-search {
    position: relative;
}

.callback-contact-suggestions {
    position: absolute;
    z-index: 40;
    top: calc(100% + 6px);
    right: 0;
    left: 0;
    display: grid;
    gap: 3px;
    max-height: 280px;
    overflow-y: auto;
    padding: 6px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.callback-contact-suggestions[hidden],
.callback-phone-choice[hidden] {
    display: none;
}

.callback-contact-suggestion {
    display: grid;
    gap: 2px;
    width: 100%;
    padding: 8px 10px;
    border: 0;
    border-radius: 6px;
    color: var(--text);
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.callback-contact-suggestion:hover,
.callback-contact-suggestion[data-active="true"] {
    color: var(--primary-dark);
    background: var(--surface-soft);
}

.callback-contact-suggestion small,
.callback-contact-empty {
    color: var(--muted);
    font-size: 12px;
    font-weight: 500;
}

.callback-contact-empty {
    padding: 9px 10px;
}

.callback-phone-choice {
    display: grid;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid #cbd8d5;
    border-radius: 8px;
    background: var(--surface-soft);
}

.callback-phone-choice > span {
    color: var(--text);
    font-size: 13px;
    font-weight: 800;
}

.callback-phone-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.callback-phone-option {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid #b8cbc7;
    border-radius: 6px;
    color: var(--text);
    background: #fff;
    font: inherit;
    cursor: pointer;
}

.callback-phone-option:hover,
.callback-phone-option:focus-visible {
    color: var(--primary-dark);
    border-color: var(--primary);
    background: #f5fbfa;
}

.callback-phone-option strong {
    font-size: 12px;
}

.callback-phone-option span {
    color: var(--muted);
    font-size: 13px;
}

.metric.warning strong {
    color: var(--warning);
}

.metric.danger strong {
    color: var(--danger);
}

.metric.warning {
    border-color: rgba(166, 107, 0, .38);
    background: #fff8e8;
}

.metric.warning span {
    color: var(--warning);
}

.metric.danger {
    border-color: rgba(161, 43, 43, .38);
    background: #fdeaea;
}

.metric.danger span {
    color: var(--danger);
}

.table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 2px;
}

.table-wrap table {
    min-width: 760px;
}

.inventory-edit-table input,
.inventory-edit-table select,
.inventory-admin-table input,
.inventory-admin-table select {
    min-width: 140px;
}

.inventory-edit-table .number-input,
.inventory-admin-table .number-input {
    min-width: 90px;
    max-width: 120px;
}

.inventory-admin-table td {
    vertical-align: middle;
}

.inventory-order-cell {
    width: 44px;
    text-align: right;
}

.inventory-items-table tbody tr[data-inventory-row] {
    height: 53px;
}

.inventory-items-table tbody tr[data-inventory-row] > td {
    vertical-align: middle;
}

.inventory-order-cell .icon-button {
    justify-content: center;
    width: 30px;
    min-width: 30px;
    padding: 5px;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.inventory-admin-table,
.inventory-edit-table {
    min-width: 1280px;
}

.accounting-invoice-table {
    min-width: 1380px;
    table-layout: fixed;
}

.accounting-col-status {
    width: 6%;
}

.accounting-col-date {
    width: 9%;
}

.accounting-col-sender {
    width: 13%;
}

.accounting-col-preview {
    width: 52%;
}

.accounting-col-attachments {
    width: 20%;
}

.accounting-invoice-table td {
    vertical-align: top;
    overflow-wrap: anywhere;
}

.accounting-invoice-table small {
    display: block;
    margin-top: 4px;
}

.accounting-invoice-done {
    opacity: .72;
}

.accounting-preview {
    max-width: none;
    margin: 6px 0 0;
    line-height: 1.45;
}

.accounting-attachments {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex-wrap: nowrap;
    gap: 6px;
}

.accounting-attachments .button {
    width: min(100%, 360px);
    justify-content: flex-start;
}

.accounting-attachments button.button {
    font: inherit;
    text-align: left;
}

.accounting-attachments .button span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.accounting-attachments .button small {
    margin-top: 0;
    color: var(--muted);
    font-weight: 700;
}

.accounting-delete-form {
    display: flex;
    justify-content: flex-end;
    margin: 14px 0 0;
}

.accounting-done-form {
    margin: 0;
}

.accounting-status-switch {
    min-height: 28px;
    gap: 7px;
}

.accounting-status-switch strong {
    font-size: 13px;
}

.accounting-status-save[hidden],
[data-accounting-status-meta][hidden] {
    display: none;
}

.accounting-status-save {
    width: fit-content;
    margin-top: 6px;
    padding: 3px 7px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
}

.accounting-status-save[data-state="saving"] {
    color: var(--primary-dark);
    background: #eaf5f2;
}

.accounting-status-save[data-state="saved"] {
    color: var(--primary-dark);
    background: #dff1ed;
}

.accounting-status-save[data-state="error"] {
    color: var(--danger);
    background: #fdeaea;
}

.accounting-metrics .metric strong {
    overflow-wrap: anywhere;
}

.accounting-metrics .metric:last-child strong {
    font-size: 16px;
    line-height: 1.35;
}

.accounting-manual-panel {
    width: min(720px, calc(100vw - 28px));
}

.accounting-manual-form label {
    max-width: none;
}

.accounting-file-hint {
    margin-top: 6px;
}

.accounting-image-dialog {
    width: min(1180px, calc(100vw - 2rem));
    max-width: none;
    max-height: calc(100vh - 2rem);
    max-height: calc(100dvh - 2rem);
    margin: auto;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(0, 0, 0, .3);
}

.accounting-image-dialog[open] {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
}

.accounting-image-dialog::backdrop {
    background: rgba(15, 26, 23, .72);
    backdrop-filter: blur(3px);
}

.accounting-image-dialog-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem 1rem;
    border-bottom: 1px solid var(--line);
}

.accounting-image-dialog-header strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.accounting-image-dialog-actions {
    display: flex;
    flex: 0 0 auto;
    gap: .5rem;
    align-items: center;
}

.accounting-image-dialog figure {
    display: grid;
    min-height: 0;
    place-items: center;
    margin: 0;
    padding: 1rem;
    overflow: auto;
    background: #f2f5f4;
}

.accounting-image-dialog img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 80vh;
    max-height: 80dvh;
    border-radius: 12px;
    object-fit: contain;
    box-shadow: 0 4px 22px rgba(0, 0, 0, .16);
}

.calls-heading {
    align-items: flex-start;
}

.calls-eyebrow {
    display: block;
    margin-bottom: 5px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.calls-heading-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}

.calls-sync-meta {
    max-width: min(820px, 56vw);
    color: var(--muted);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.45;
    text-align: right;
}

.calls-sync-meta p {
    margin: 0;
}

.calls-sync-status.is-failed {
    color: var(--danger);
}

.calls-sync-status.is-warning {
    color: #9a5c00;
}

.calls-sync-meta .badge {
    margin: 5px 0;
}

.calls-config-panel code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.calls-metrics {
    margin-bottom: 16px;
}

.calls-metrics .metric {
    min-height: 82px;
    padding: 12px 16px;
}

.calls-metrics .metric span {
    line-height: 1.25;
}

.calls-metrics .metric strong {
    margin-top: 6px;
    line-height: 1;
}

.calls-metric-value-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 8px;
}

.calls-metric-value-row strong {
    margin-top: 0;
}

.calls-metric-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.calls-metric-actions .call-callback-mail-form {
    margin: 0;
}

.calls-panel {
    padding: 0;
    overflow: visible;
}

.calls-sticky-controls {
    position: sticky;
    top: 68px;
    z-index: 9;
    overflow: hidden;
    border-radius: 8px 8px 0 0;
    background: var(--surface);
    box-shadow: 0 7px 16px rgba(24, 36, 34, .08);
}

.calls-primary-controls {
    display: flex;
    min-width: 0;
    align-items: stretch;
    border-bottom: 3px solid #d0dcda;
    background: var(--surface);
}

.calls-tabs {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    gap: 10px;
    overflow-x: auto;
    padding: 18px 20px 6px;
    background: var(--surface);
}

.calls-tabs a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 14px;
    border-bottom: 3px solid transparent;
    color: var(--muted);
    font-weight: 800;
    white-space: nowrap;
}

.calls-tabs a span {
    display: inline-grid;
    place-items: center;
    min-width: 22px;
    min-height: 22px;
    margin-left: 7px;
    padding-inline: 6px;
    border-radius: 999px;
    color: var(--muted);
    background: var(--surface-soft);
    font-size: 11px;
}

.calls-tabs a:hover,
.calls-tabs a.is-active {
    color: var(--primary-dark);
    border-bottom-color: var(--primary);
    text-decoration: none;
}

.calls-searchbar {
    display: flex;
    min-width: 360px;
    max-width: 900px;
    flex: 1 1 720px;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-left: auto;
    padding: 10px 20px 7px;
    background: var(--surface);
}

.calls-search-form {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin: 0;
}

.calls-search-field {
    position: relative;
    display: flex;
    min-width: 240px;
    max-width: 680px;
    flex: 1 1 520px;
    margin: 0;
    align-items: center;
}

.calls-search-field > .icon {
    position: absolute;
    left: 12px;
    width: 17px;
    height: 17px;
    color: var(--muted);
    pointer-events: none;
}

.calls-search-field input {
    width: 100%;
    min-height: 38px;
    padding: 8px 12px 8px 38px;
    border-color: #cbd8d5;
    background: #fff;
}

.calls-search-submit,
.calls-search-reset {
    flex: 0 0 auto;
    white-space: nowrap;
}

.calls-phone-filter-chip {
    display: inline-flex;
    min-height: 34px;
    flex: 0 0 auto;
    align-items: center;
    gap: 6px;
    padding: 6px 9px;
    border: 1px solid rgba(15, 107, 95, .25);
    border-radius: 999px;
    color: var(--primary-dark);
    background: #e6f1ef;
    font-size: 12px;
    font-weight: 850;
    text-decoration: none;
}

.calls-phone-filter-chip:hover,
.calls-phone-filter-chip:focus-visible {
    border-color: var(--primary);
    background: #dcece9;
    text-decoration: none;
}

.calls-phone-filter-chip .icon {
    width: 14px;
    height: 14px;
}

.calls-filterbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 20px;
    border-bottom: 1px solid var(--line);
    background: var(--surface-soft);
}

.calls-filter-divider {
    width: 1px;
    height: 24px;
    margin-inline: 2px;
    background: var(--line);
}

.calls-filter {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 7px 11px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--muted);
    background: #f1f5f4;
    font-size: 13px;
    font-weight: 850;
}

.calls-filter:hover,
.calls-filter.is-active {
    color: var(--primary-dark);
    border-color: rgba(15, 107, 95, .28);
    background: #e6f1ef;
    text-decoration: none;
}

.calls-filter .icon {
    width: 14px;
    height: 14px;
}

.calls-list {
    display: grid;
    padding-top: 8px;
}

.call-row-shell {
    --call-summary-columns: 96px minmax(0, .9fr) 82px minmax(0, 1.1fr) 132px minmax(0, 1.7fr) 72px 164px clamp(88px, 6vw, 124px);
    position: relative;
    min-width: 0;
    max-width: 100%;
}

.call-row-shell.is-resolving-out {
    overflow: hidden;
    opacity: 1;
    pointer-events: none;
    will-change: opacity;
    transition: opacity .18s ease;
}

.call-row-shell.is-resolving-out.is-fading {
    opacity: 0;
}

.call-row-shell.is-settling {
    will-change: transform;
    transition: transform .3s cubic-bezier(.4, 0, .2, 1);
}

.call-row {
    position: relative;
    min-width: 0;
    max-width: 100%;
    border-bottom: 1px solid var(--line);
    background: var(--surface);
}

.call-row:last-child {
    border-bottom: 0;
}

.call-row-shell:last-child > .call-row {
    border-bottom: 0;
}

.call-row.has-day-break {
    border-top: 3px solid #d0dcda;
}

.call-row[open].is-highlighted::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: #245cff;
}

.call-summary {
    display: grid;
    grid-template-columns: var(--call-summary-columns);
    align-items: center;
    gap: 10px;
    width: 100%;
    min-width: 0;
    overflow: hidden;
    min-height: 52px;
    padding: 0 20px 0 28px;
    list-style: none;
    cursor: pointer;
}

.call-summary::-webkit-details-marker {
    display: none;
}

.call-summary:hover {
    background: #f8fbfa;
}

.call-resolved-control {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    width: fit-content;
    color: var(--muted);
    font-size: 11px;
    font-weight: 850;
    cursor: pointer;
}

.call-resolved-control input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.call-resolved-switch {
    position: relative;
    flex: 0 0 auto;
    width: 34px;
    height: 20px;
    border: 1px solid #aebbb8;
    border-radius: 999px;
    background: #dfe6e4;
    transition: background .16s ease, border-color .16s ease;
}

.call-resolved-switch::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(14, 35, 31, .22);
    transition: transform .16s ease;
}

.call-resolved-control input:checked + .call-resolved-switch {
    border-color: var(--primary);
    background: var(--primary);
}

.call-resolved-control input:checked + .call-resolved-switch::after {
    transform: translateX(14px);
}

.call-resolved-control input:focus-visible + .call-resolved-switch {
    outline: 3px solid rgba(15, 107, 95, .2);
    outline-offset: 2px;
}

.call-resolved-control.is-saving {
    opacity: .68;
    cursor: progress;
}

.call-resolved-control.is-error .call-resolved-switch {
    border-color: #b3261e;
    box-shadow: 0 0 0 3px rgba(179, 38, 30, .12);
}

.call-resolved-submit-form,
.call-callback-submit-form,
.call-do-not-callback-form {
    display: none;
}

.call-kind {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--muted);
    font-size: 13px;
    font-weight: 850;
}

.call-target-area {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-inline: 12px;
    min-width: 0;
}

.call-target-area.has-value {
    min-height: 28px;
    padding: 4px 9px;
    border: 1px solid #d5dfdd;
    border-radius: 4px;
    background: #f8faf9;
}

.call-target-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #495754;
    font-size: 12px;
    font-weight: 750;
}

.call-target-direction-icon {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    color: #7c8a87;
    stroke-width: 1.8;
}

.call-target-area.is-configured .call-target-name {
    color: var(--primary-dark);
}

.call-number-area {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.call-number-filter-button {
    display: inline-grid;
    width: 27px;
    min-width: 27px;
    height: 27px;
    flex: 0 0 27px;
    place-items: center;
    border: 1px solid #cfdbd8;
    border-radius: 7px;
    color: #657572;
    background: #fff;
    text-decoration: none;
}

.call-number-filter-button:hover,
.call-number-filter-button:focus-visible,
.call-number-filter-button.is-active {
    border-color: rgba(15, 107, 95, .35);
    color: var(--primary-dark);
    background: #e6f1ef;
    text-decoration: none;
}

.call-number-filter-button .icon {
    width: 14px;
    height: 14px;
}

.call-number {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 14px;
}

.call-number.has-contact {
    display: grid;
    align-content: center;
    gap: 2px;
    min-width: 0;
}

.call-contact-name,
.call-contact-number {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.call-contact-name {
    color: var(--text);
    font-size: 14px;
    font-weight: 900;
}

.call-number a {
    display: inline-block;
    color: var(--primary-dark);
    border-bottom: 2px solid transparent;
    line-height: 1.2;
    text-decoration: none;
}

.call-number a.call-contact-number,
.call-contact-number {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.15;
}

.call-number a:hover,
.call-number a:focus-visible {
    border-bottom-color: currentColor;
    text-decoration: none;
}

.call-labels {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, .8fr) minmax(0, 1.2fr);
    align-items: center;
    column-gap: 18px;
    row-gap: 6px;
    min-width: 0;
}

.call-label-slot {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 0;
}

.call-label-slot-contact {
    justify-content: flex-start;
}

.call-label-slot-status {
    justify-content: flex-start;
}

.call-label-slot-callback {
    justify-content: center;
}

.call-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 22px;
    padding: 2px 8px;
    border-radius: 999px;
    color: #33413e;
    background: #e6eceb;
    font-size: 12px;
    font-weight: 850;
    white-space: nowrap;
}

.call-chip .icon {
    width: 13px;
    height: 13px;
    stroke-width: 2.1;
}

.call-chip.is-missed {
    color: #8d1f1f;
    background: #ffd6d6;
}

.call-chip.is-voicemail {
    color: #91510b;
    background: #ffe2bd;
}

.call-chip.is-outgoing {
    color: #173f6b;
    background: #dcecf8;
}

.call-row.is-outgoing .call-kind,
.call-row.is-outgoing .call-number,
.call-row.is-outgoing .call-number a,
.call-row.is-outgoing .call-contact-name,
.call-row.is-outgoing .call-contact-number,
.call-row.is-outgoing .call-target-name,
.call-row.is-outgoing .call-target-direction-icon {
    color: #173f6b;
}

.call-row.is-outgoing .call-target-area.has-value {
    border-color: #c1d5e7;
    background: #f3f8fc;
}

.call-chip.is-contact {
    color: #145a4f;
    background: #d9f0eb;
}

.call-chip.is-member {
    color:#5c2d78;
    background:#eee3f5;
    text-decoration:none;
}

.call-chip.is-member.is-deleted {
    color:#66706e;
    background:#e8eceb;
}

.call-party-type {
    color:var(--muted);
    font-size:.82em;
    font-weight:750;
}

.call-match-ambiguous {
    color: #c45d00;
    font-size: .88em;
    font-weight: 950;
    cursor: help;
}

.call-contact-action {
    border: 1px solid transparent;
    font-family: inherit;
    cursor: pointer;
}

.call-do-not-callback-button {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 24px;
    min-height: 24px;
    padding: 2px 6px;
    border: 1px solid #d6dfdd;
    border-radius: 6px;
    color: #82908d;
    background: #fff;
    font: inherit;
    font-size: 11px;
    font-weight: 850;
    white-space: nowrap;
    cursor: pointer;
}

.call-do-not-callback-slot {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-width: 0;
    overflow: hidden;
}

.call-row-controls {
    position: absolute;
    z-index: 4;
    top: 0;
    right: 0;
    left: 0;
    display: grid;
    grid-template-columns: var(--call-summary-columns);
    align-items: center;
    gap: 10px;
    min-height: 52px;
    padding: 0 20px 0 28px;
    pointer-events: none;
}

.call-row-shell.has-day-break > .call-row-controls {
    top: 3px;
}

.call-row-controls > .call-do-not-callback-button {
    grid-column: 5;
    justify-self: start;
    max-width: 100%;
    pointer-events: auto;
}

.call-do-not-callback-button span {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.call-do-not-callback-button .icon {
    width: 14px;
    height: 14px;
    stroke-width: 2.2;
}

.call-do-not-callback-button:hover,
.call-do-not-callback-button:focus-visible {
    color: #8d1f1f;
    border-color: #f0b6b6;
    background: #fff6f6;
}

.call-do-not-callback-button.is-active {
    color: #8d1f1f;
    border-color: #e79a9a;
    background: #fff0f0;
    box-shadow: 0 1px 2px rgba(141, 31, 31, .08);
}

.call-do-not-callback-button.is-readonly {
    pointer-events: none !important;
    cursor: default;
}

.call-do-not-callback-button.is-saving {
    opacity: .58;
    cursor: wait;
}

.call-do-not-callback-button.is-error {
    color: #9b1c1c;
    border-color: #d93535;
    background: #fff5f5;
}

button.call-chip.is-contact {
    color: #fff;
    border-color: var(--primary);
    background: var(--primary);
}

button.call-chip.is-contact:hover,
button.call-chip.is-contact:focus-visible {
    background: var(--primary-dark);
}

.call-chip.is-contact-empty {
    color: #61706d;
    border-color: #cbd8d5;
    background: #fff;
}

.call-chip.is-contact-empty:hover,
.call-chip.is-contact-empty:focus-visible {
    color: var(--primary-dark);
    border-color: var(--primary);
    background: #f5fbfa;
}

.call-callback-indicator {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 22px;
    color: #b3261e;
    font-size: 12px;
    font-weight: 400;
    white-space: nowrap;
}

.call-callback-indicator[hidden] {
    display: none;
}

.call-callback-indicator .icon {
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
    stroke-width: 2;
}

.call-duration,
.call-date {
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
    text-align: right;
    white-space: nowrap;
}

.call-duration {
    grid-column: 7;
}

.call-date {
    grid-column: 8 / -1;
    justify-self: center;
    transform: translateX(5px);
    display: grid;
    width: 164px;
    max-width: 100%;
    align-content: center;
    justify-items: start;
    gap: 2px;
    min-width: 0;
    text-align: left;
    line-height: 1.12;
}

.call-date-day,
.call-date-time {
    display: block;
    white-space: nowrap;
}

.call-date-time {
    color: #7b8986;
    font-size: 11px;
    font-weight: 650;
}

.call-row.is-resolved .call-summary {
    background: #f7faf9;
}

.call-row.is-resolved .call-resolved-label {
    color: var(--primary-dark);
}

.call-callback-control {
    position: relative;
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    margin-bottom: 18px;
    color: var(--text);
    font-size: 13px;
    font-weight: 850;
    line-height: 1.3;
    cursor: pointer;
}

.call-callback-control input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.call-callback-control input:checked + .call-resolved-switch {
    border-color: #8d1f1f;
    background: #c92a2a;
}

.call-callback-control input:checked + .call-resolved-switch::after {
    transform: translateX(14px);
}

.call-callback-control input:focus-visible + .call-resolved-switch {
    outline: 3px solid rgba(201, 42, 42, .18);
    outline-offset: 2px;
}

.call-callback-label {
    min-width: 0;
}

.call-callback-save-status {
    color: var(--muted);
    font-size: 11px;
    font-weight: 500;
    white-space: nowrap;
}

.call-callback-save-status[hidden] {
    display: none;
}

.call-callback-save-status[data-state="saved"] {
    color: var(--primary-dark);
}

.call-callback-save-status[data-state="error"] {
    color: #a52323;
}

.call-row[open] .call-summary {
    border-bottom: 1px solid var(--line);
}

.call-detail {
    display: grid;
    grid-template-columns: minmax(250px, .75fr) minmax(340px, 1.1fr) minmax(300px, .85fr);
    align-items: stretch;
    gap: 0;
    padding: 18px 32px 26px 40px;
}

.call-detail-main {
    display: grid;
    align-content: start;
    gap: 14px;
    padding-right: 24px;
}

.call-contact-match {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 5px 8px;
    color: #32423e;
    font-size: 13px;
    line-height: 1.35;
}

.call-contact-match .icon {
    width: 15px;
    height: 15px;
    color: var(--primary-dark);
}

.call-contact-match > span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
}

.call-contact-match strong {
    color: var(--primary-dark);
    font-weight: 900;
}

.call-contact-match small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.call-destination {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 5px 8px;
    line-height: 1.35;
}

.call-destination > span:first-child {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
}

.call-destination-number {
    color: #4b5754;
    font-size: 14px;
    font-weight: 700;
}

.call-destination-name {
    color: var(--primary-dark);
    font-size: 14px;
    font-weight: 850;
}

.call-audio {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    width: 100%;
}

.call-audio audio {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
}

.call-audio strong {
    color: var(--muted);
    font-size: 13px;
    text-align: left;
}

.call-audio .button {
    grid-column: 2;
    justify-self: end;
}

.call-comment-count .icon {
    width: 13px;
    height: 13px;
}

.call-comment-count[hidden] {
    display: none;
}

.call-comments {
    display: grid;
    align-content: start;
    gap: 12px;
    min-width: 0;
    padding: 0 24px;
    border-left: 1px solid var(--line);
}

.call-comments h3 {
    margin: 0;
    font-size: 15px;
}

.call-comments-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
}

.call-comments-heading .comment-head-actions {
    flex-wrap: wrap;
}

.call-comments-heading .comment-sort .button {
    min-height: 30px;
    padding: 5px 9px;
    font-size: 11px;
}

.call-comments .comments {
    margin-bottom: 0;
}

.call-comments .comment-item {
    background: #fff;
}

.comment-system-note {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    width: fit-content;
    max-width: 100%;
    padding: 6px 9px;
    border: 1px solid #dbe6e3;
    border-radius: 8px;
    color: var(--muted);
    background: #f7faf9;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
}

.comment-system-note .icon {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    color: var(--primary-dark);
}

.call-comment-form label,
.call-comment-form textarea {
    max-width: none;
}

.call-comment-form .button {
    justify-self: start;
}

.call-comment-save-status {
    display: block;
    margin-top: 8px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.35;
}

.call-comment-save-status[hidden] {
    display: none;
}

.call-comment-save-status[data-state="saving"] {
    color: #52615e;
}

.call-comment-save-status[data-state="saved"] {
    color: var(--primary-dark);
}

.call-comment-save-status[data-state="error"] {
    color: #a52323;
}

.call-comment-compose {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding-left: 24px;
    border-left: 1px solid var(--line);
}

.call-comment-compose > div {
    display: grid;
    gap: 12px;
}

.call-comment-compose h3 {
    margin: 0;
    font-size: 15px;
}

.call-detail-close {
    align-self: flex-end;
    margin-bottom: 18px;
}

.call-entry-meta {
    margin-top: auto;
    padding-top: 20px;
    overflow-wrap: anywhere;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    text-align: right;
}

.call-recording-note {
    margin-bottom: 0;
}

.calls-empty {
    padding: 26px;
}

.calls-pagination {
    padding: 0 20px 18px;
}

.access-table,
.role-management-table,
.role-matrix-table {
    min-width: 980px;
}

.table-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.call-phone-number-table {
    min-width: 760px;
}

.call-phone-number-table th:first-child,
.call-phone-number-table td:first-child {
    width: 44%;
}

.call-phone-number-table th:nth-child(2),
.call-phone-number-table td:nth-child(2) {
    width: 34%;
}

.call-phone-number-table input {
    min-height: 34px;
    padding-block: 6px;
}

.call-phone-number-table .table-actions {
    justify-content: flex-end;
    white-space: nowrap;
}

.call-phone-number-table .table-actions form {
    margin: 0;
}

.call-phone-number-new td {
    background: var(--surface-soft);
}

.access-table td {
    vertical-align: middle;
}

.access-table td:nth-child(2) small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
}

.access-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 800;
}

.secret-field {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 180px;
}

.secret-value {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    max-width: 260px;
    padding: 5px 9px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    overflow-wrap: anywhere;
}

.inventory-items-table thead > tr:first-child > th {
    border-bottom: 0;
}

.inventory-filter-row th {
    position: sticky;
    top: var(--app-header-height, 68px);
    z-index: 8;
    padding-top: 8px;
    padding-bottom: 12px;
    background: var(--surface);
    box-shadow: 0 1px 0 var(--line);
}

.inventory-filter-row :is(input, select) {
    width: 100%;
    min-width: 112px;
    min-height: 36px;
    padding-top: 7px;
    padding-bottom: 7px;
    color: var(--text);
    font-size: 14px;
    font-weight: 500;
    text-transform: none;
}

.inventory-filter-row input {
    min-width: 230px;
}

@media (min-width: 901px) {
    .table-wrap:has(> .inventory-items-table) {
        overflow: visible;
    }
}

.addresslist-toolbar {
    align-items: flex-start;
    margin-bottom: 6px;
}

.addresslist-toolbar .muted {
    margin: 0;
}

.addresslist-workbench {
    --addresslist-table-head-top: 190px;
}

.addresslist-sticky-controls {
    position: sticky;
    top: 68px;
    z-index: 9;
    margin: -20px -20px 14px;
    padding: 14px 20px 10px;
    border-bottom: 1px solid var(--line);
    border-radius: 8px 8px 0 0;
    background: #fff;
    box-shadow: 0 8px 16px rgba(24, 36, 34, .06);
}

.addresslist-action-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.addresslist-primary-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.addresslist-mark-visible-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.addresslist-mark-visible-form small {
    color: var(--muted);
}

.addresslist-mark-visible-form small[data-state="error"] {
    color: var(--danger);
}

.addresslist-control-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.addresslist-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 14px;
}

.addresslist-filters label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: none;
}

.switch-inline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text);
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
}

.switch-inline input {
    position: absolute;
    width: 1px;
    min-width: 0;
    height: 1px;
    min-height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    pointer-events: none;
}

.switch-inline span {
    position: relative;
    width: 34px;
    height: 18px;
    flex: 0 0 auto;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #edf2f1;
    transition: background .14s ease, border-color .14s ease;
}

.switch-inline span::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(24, 36, 34, .2);
    transition: transform .14s ease;
}

.switch-inline input:checked + span {
    border-color: var(--primary);
    background: var(--primary);
}

.switch-inline input:checked + span::after {
    transform: translateX(16px);
}

.switch-inline input:focus-visible + span {
    outline: 2px solid rgba(15, 107, 95, .24);
    outline-offset: 2px;
}

.addresslist-duplicate-switch {
    min-height: 34px;
    padding: 0 4px;
}

.addresslist-filters input[type="search"] {
    width: 260px;
    min-height: 36px;
    padding-top: 7px;
    padding-bottom: 7px;
}

.addresslist-filters select[data-addresslist-category-filter] {
    width: 240px;
    max-width: 100%;
    min-height: 36px;
    padding-top: 7px;
    padding-bottom: 7px;
}

.addresslist-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 12px;
    margin-left: auto;
    margin-bottom: 0;
}

.addresslist-create-button {
    align-self: flex-start;
    min-height: 34px;
    padding: 6px 10px;
    font-size: 13px;
    border-color: var(--primary);
    color: #fff;
    background: var(--primary);
    box-shadow: 0 2px 6px rgba(15, 107, 95, .18);
}

.addresslist-create-button:hover {
    color: #fff;
    background: var(--primary-dark);
    border-color: var(--primary-dark);
}

.addresslist-duplicate-button.is-active {
    color: #fff;
    border-color: var(--primary);
    background: var(--primary);
}

.addresslist-clear-markers-form {
    margin: 0;
}

.addresslist-entry-form {
    grid-template-columns: repeat(4, minmax(180px, 1fr));
}

.addresslist-import-form {
    align-items: flex-end;
}

.addresslist-workbench .table-wrap {
    overflow-x: visible;
}

.addresslist-table {
    min-width: 1140px;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
    font-size: 13px;
}

.addresslist-table th:first-child,
.addresslist-table td:first-child {
    width: 34px;
    text-align: center;
}

.addresslist-table th:nth-child(2),
.addresslist-table td:nth-child(2) {
    width: 42px;
}

.addresslist-table th:nth-child(3),
.addresslist-table td:nth-child(3),
.addresslist-table th:nth-child(4),
.addresslist-table td:nth-child(4) {
    width: 44px;
}

.addresslist-table th:nth-child(5),
.addresslist-table td:nth-child(5),
.addresslist-table th:nth-child(6),
.addresslist-table td:nth-child(6) {
    width: 86px;
}

.addresslist-table th:nth-child(9),
.addresslist-table td:nth-child(9) {
    width: 152px;
}

.addresslist-table th:nth-child(7),
.addresslist-table td:nth-child(7) {
    width: 150px;
}

.addresslist-table th:nth-child(8),
.addresslist-table td:nth-child(8) {
    width: 170px;
}

.addresslist-table th:nth-child(10),
.addresslist-table td:nth-child(10) {
    width: 150px;
}

.addresslist-table th:nth-child(11),
.addresslist-table td:nth-child(11) {
    width: 100px;
}

.addresslist-table th:nth-child(12),
.addresslist-table td:nth-child(12) {
    width: 76px;
    text-align: center;
}

.addresslist-table th,
.addresslist-table td {
    height: 28px;
    padding: 3px 5px;
    line-height: 1.15;
    vertical-align: middle;
}

.addresslist-table th {
    font-size: 10px;
    line-height: 1.1;
}

.addresslist-table thead th {
    position: sticky;
    top: var(--addresslist-table-head-top);
    z-index: 8;
    background: #fff;
    box-shadow: 0 1px 0 var(--line);
}

.addresslist-table td {
    font-size: 13px;
}

.addresslist-table tr.is-exact-name-duplicate > td:not(:first-child) {
    color: #7f1d1d;
}

.addresslist-sortable-heading {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
}

.addresslist-sort-buttons {
    display: inline-flex;
    gap: 2px;
}

.addresslist-sort-button {
    display: inline-grid;
    place-items: center;
    width: 18px;
    height: 18px;
    min-height: 18px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 6px;
    color: var(--muted);
    background: transparent;
    cursor: pointer;
}

.addresslist-sort-button:hover,
.addresslist-sort-button.is-active {
    color: var(--primary-dark);
    border-color: var(--line);
    background: var(--surface-soft);
}

.addresslist-sort-button .icon {
    width: 12px;
    height: 12px;
}

.addresslist-click-row {
    cursor: pointer;
}

.addresslist-click-row:hover > td,
.addresslist-click-row:focus-visible > td,
.addresslist-click-row.is-open > td {
    background: #f7fbfa;
}

.addresslist-click-row.is-marked > td {
    background: #edf7f4;
}

.addresslist-click-row.is-marked:hover > td,
.addresslist-click-row.is-marked:focus-visible > td,
.addresslist-click-row.is-marked.is-open > td {
    background: #e2f1ee;
}

.addresslist-click-row:focus-visible {
    outline: 2px solid rgba(15, 107, 95, .24);
    outline-offset: -2px;
}

.addresslist-click-row.is-deleted > td {
    color: var(--muted);
    background: #f8faf9;
}

.addresslist-cell-value {
    display: block;
    max-width: 100%;
    overflow: hidden;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.addresslist-cell-value.is-empty {
    color: var(--muted);
}

.addresslist-return-points {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 18px;
    vertical-align: middle;
}

.addresslist-return-point {
    display: block;
    width: 10px;
    height: 10px;
    flex: 0 0 auto;
    border: 1.5px solid #aeb8b6;
    border-radius: 50%;
    background: #fff;
}

.addresslist-return-point.is-active {
    border-color: #c62828;
    background: #d32f2f;
    box-shadow: 0 0 0 2px rgba(211, 47, 47, .12);
}

.addresslist-table .button.small.icon-button {
    justify-content: center;
    width: 22px;
    min-width: 22px;
    min-height: 22px;
    padding: 2px;
}

.addresslist-table .icon {
    width: 13px;
    height: 13px;
}

.addresslist-edit-panel {
    display: grid;
    gap: 8px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.addresslist-edit-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.addresslist-edit-grid label {
    gap: 4px;
    min-width: 0;
    font-size: 12px;
    line-height: 1.2;
}

.addresslist-edit-field {
    display: grid;
    align-content: start;
    gap: 4px;
    min-width: 0;
}

.addresslist-edit-field-label {
    color: var(--text);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}

.addresslist-move-field {
    display: flex;
    align-self: end;
    align-items: flex-end;
    min-width: 0;
}

.addresslist-move-field .button {
    min-height: 40px;
}

.addresslist-edit-grid input,
.addresslist-edit-grid textarea {
    width: 100%;
    min-height: 40px;
    padding: 9px 11px;
    font-size: 15.6px;
    line-height: 1.25;
}

.addresslist-return-editor {
    display: flex;
    min-height: 40px;
    align-items: center;
    gap: 6px;
    padding: 3px 5px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.addresslist-return-button {
    display: inline-grid;
    place-items: center;
    width: 32px;
    min-width: 32px;
    height: 32px;
    min-height: 32px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
}

.addresslist-return-button span {
    display: block;
    width: 15px;
    height: 15px;
    border: 2px solid #aeb8b6;
    border-radius: 50%;
    background: #fff;
    transition: border-color .14s ease, background .14s ease, box-shadow .14s ease;
}

.addresslist-return-button:hover,
.addresslist-return-button:focus-visible {
    outline: 0;
    background: #fff0f0;
}

.addresslist-return-button:focus-visible {
    box-shadow: 0 0 0 2px rgba(198, 40, 40, .25);
}

.addresslist-return-button.is-active span {
    border-color: #c62828;
    background: #d32f2f;
    box-shadow: 0 0 0 3px rgba(211, 47, 47, .12);
}

.addresslist-edit-actions {
    justify-content: flex-end;
    margin-top: 0;
}

.addresslist-marker {
    display: inline-grid;
    place-items: center;
    width: 22px;
    height: 22px;
    color: var(--muted);
}

.addresslist-marker.is-active,
.addresslist-table .icon-button.is-active {
    color: #fff;
    background: var(--accent);
    border-color: var(--accent);
}

.addresslist-dialog[hidden],
.addresslist-dialog-edit[hidden],
[data-addresslist-dialog-view][hidden] {
    display: none;
}

.addresslist-dialog:not([hidden]) {
    position: fixed;
    z-index: 80;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 14px;
}

.addresslist-dialog-backdrop {
    position: absolute;
    inset: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(24, 36, 34, .42);
    cursor: default;
}

.addresslist-dialog-panel {
    position: relative;
    z-index: 1;
    width: min(1800px, calc(100vw - 28px));
    max-height: calc(100vh - 28px);
    overflow: auto;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 24px 70px rgba(24, 36, 34, .24);
}

.addresslist-export-panel {
    width: min(560px, calc(100vw - 28px));
}

.addresslist-compact-panel {
    width: min(520px, calc(100vw - 28px));
}

.addresslist-structure-panel {
    width: min(760px, calc(100vw - 28px));
}

.addresslist-export-form label {
    max-width: none;
}

.addresslist-category-form label {
    max-width: none;
}

.addresslist-export-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    align-items: center;
}

.addresslist-export-options label {
    max-width: none;
}

.addresslist-export-status {
    margin: 0;
    padding: 8px 10px;
    border-radius: 8px;
    font-weight: 700;
}

.addresslist-export-status[data-state="saving"] {
    color: var(--primary-dark);
    background: #eaf5f2;
}

.addresslist-export-status[data-state="saved"] {
    color: var(--primary-dark);
    background: #e3f4ed;
}

.addresslist-export-status[data-state="error"] {
    color: var(--danger);
    background: #fdeaea;
}

.addresslist-structure-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.addresslist-structure-list > div {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.addresslist-structure-list span {
    display: inline-grid;
    place-items: center;
    width: 24px;
    height: 24px;
    flex: 0 0 auto;
    border-radius: 999px;
    color: var(--primary-dark);
    background: #eaf5f2;
    font-size: 12px;
    font-weight: 800;
}

.addresslist-structure-list strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.addresslist-structure-copy-source {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.addresslist-copy-status {
    margin: 0;
    color: var(--primary-dark);
    font-weight: 700;
}

.addresslist-copy-status[data-state="error"] {
    color: var(--danger);
}

.addresslist-dialog-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line);
}

.addresslist-dialog-header h3 {
    margin: 8px 0 2px;
    font-size: 20px;
    line-height: 1.2;
}

.addresslist-dialog-header p {
    margin: 0;
    color: var(--muted);
    font-weight: 700;
}

.addresslist-deleted-badge {
    color: var(--danger);
    background: #fdeaea;
}

.addresslist-detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 10px;
    margin: 0;
}

.addresslist-detail-grid > div {
    min-width: 0;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.addresslist-detail-grid > div.is-empty {
    background: #f8faf9;
}

.addresslist-detail-grid dt {
    margin-bottom: 3px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.addresslist-detail-grid dd {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.addresslist-detail-grid .is-empty dd {
    color: var(--muted);
    font-weight: 700;
}

.addresslist-dialog-actions {
    justify-content: flex-end;
    margin-top: 14px;
}

.addresslist-dialog-actions form {
    margin: 0;
}

.addresslist-dialog-edit {
    margin-top: 0;
}

.addresslist-dialog-create {
    margin-top: 0;
}

.contact-workbench .table-wrap {
    overflow-x: auto;
}

.contact-heading-actions,
.addresslist-heading-actions,
.contact-action-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.contact-addresslist-dialog {
    width: min(720px, calc(100vw - 2rem));
}

.contact-addresslist-dialog::backdrop {
    background: rgba(20, 34, 31, .52);
    backdrop-filter: blur(2px);
}

.contact-addresslist-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.contact-addresslist-option {
    display: grid;
    min-width: 0;
    min-height: 150px;
    align-content: center;
    justify-items: center;
    gap: 12px;
    padding: 20px 16px;
    color: var(--text);
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
    font: inherit;
    text-align: center;
    cursor: pointer;
}

.contact-addresslist-option:hover,
.contact-addresslist-option:focus-visible {
    color: var(--primary-dark);
    border-color: var(--primary);
    background: #edf8f5;
    outline: none;
    box-shadow: 0 0 0 3px rgba(18, 123, 106, .14);
}

.contact-addresslist-option > .icon {
    width: 28px;
    height: 28px;
    color: var(--primary);
}

.contact-addresslist-option > span {
    display: grid;
    gap: 5px;
}

.contact-addresslist-option strong {
    font-size: 16px;
}

.contact-addresslist-option small {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.4;
}

.contact-addresslist-option.is-both {
    border-color: rgba(18, 123, 106, .35);
    background: var(--surface-soft);
}

@media (max-width: 700px) {
    .contact-addresslist-options {
        grid-template-columns: 1fr;
    }

    .contact-addresslist-option {
        min-height: 0;
        grid-template-columns: auto minmax(0, 1fr);
        justify-items: start;
        padding: 14px;
        text-align: left;
    }
}

.personal-greeting-form {
    display: grid;
    grid-template-columns: minmax(160px, 210px) 190px minmax(260px, 1fr);
    gap: 12px;
    align-items: end;
    width: 100%;
    margin: 0 0 14px;
    padding: 12px 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.personal-greeting-heading {
    display: flex;
    min-height: 38px;
    align-items: center;
    gap: 9px;
}

.personal-greeting-heading > span {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    color: var(--primary-dark);
    border-radius: 50%;
    background: var(--surface-soft);
}

.personal-greeting-heading .icon {
    width: 17px;
    height: 17px;
}

.personal-greeting-heading div,
.personal-greeting-input {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 4px;
}

.personal-greeting-heading small {
    color: var(--muted);
}

.personal-greeting-addressing {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.personal-greeting-addressing legend,
.personal-greeting-input {
    color: var(--muted);
    font-size: .78rem;
    font-weight: 700;
}

.personal-greeting-addressing legend {
    margin-bottom: 4px;
}

.personal-greeting-addressing .segmented-control {
    width: 100%;
}

.personal-greeting-input input {
    width: 100%;
    color: var(--text);
    font-size: .92rem;
}

.personal-greeting-input input[readonly] {
    background: var(--surface-soft);
    cursor: default;
}

.personal-greeting-input-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.personal-greeting-input-heading small {
    overflow: hidden;
    font-size: .72rem;
    font-weight: 700;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.personal-greeting-input-heading small:empty {
    display: none;
}

.personal-greeting-input-heading small[data-state="saving"] {
    color: var(--muted);
}

.personal-greeting-input-heading small[data-state="saved"] {
    color: var(--primary-dark);
}

.personal-greeting-input-heading small[data-state="error"] {
    color: var(--danger);
}

.personal-greeting-input-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: stretch;
}

.personal-greeting-edit-button {
    width: 38px;
    min-height: 38px;
    padding: 0;
}

.personal-greeting-edit-button > span {
    display: grid;
    place-items: center;
}

.personal-greeting-edit-button > span[hidden] {
    display: none;
}

@media (max-width: 900px) {
    .personal-greeting-form {
        grid-template-columns: minmax(150px, 190px) minmax(0, 1fr);
    }

    .personal-greeting-heading {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .personal-greeting-form {
        grid-template-columns: 1fr;
    }

    .personal-greeting-heading,
    .personal-greeting-input {
        grid-column: auto;
    }
}

.addresslist-list-switch {
    position: relative;
    display: inline-grid;
    grid-template-columns: repeat(2, minmax(74px, 1fr));
    gap: 4px;
    padding: 4px;
    border: 1px solid #b9d8d1;
    border-radius: 999px;
    background: #e9f7f4;
    box-shadow: 0 8px 18px rgba(24, 74, 67, .12);
}

.addresslist-list-switch-option {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 16px;
    border-radius: 999px;
    color: #21584f;
    font-weight: 800;
    text-decoration: none;
    transition: background .16s ease, color .16s ease, box-shadow .16s ease;
}

.addresslist-list-switch-option:hover,
.addresslist-list-switch-option:focus-visible {
    color: #123d37;
    background: rgba(255, 255, 255, .68);
    outline: none;
}

.addresslist-list-switch-option.is-active {
    color: #fff;
    background: var(--primary);
    box-shadow: 0 7px 14px rgba(18, 91, 80, .22);
}

.contact-action-row {
    justify-content: flex-start;
    margin: -4px 0 14px;
}

.contact-action-row .inline-collapsible {
    max-width: none;
}

.contact-action-row .muted {
    margin: 8px 0 0;
}

.contact-toolbar {
    align-items: flex-end;
}

.contact-sticky-controls {
    position: sticky;
    z-index: 9;
    top: var(--app-header-height, 68px);
    margin: -20px -20px 14px;
    padding: 14px 20px 0;
    border-bottom: 1px solid var(--line);
    border-radius: 8px 8px 0 0;
    background: var(--surface);
    box-shadow: 0 8px 16px rgba(24, 36, 34, .06);
}

.contact-sticky-controls .contact-search-row {
    margin-bottom: 0;
    border-bottom: 0;
}

.contact-toolbar .muted {
    margin: 0;
}

.contact-filters {
    display: flex;
    justify-content: flex-end;
}

.contact-filters label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: none;
}

.contact-filters input[type="search"] {
    width: 280px;
}

.contact-search-row {
    display: grid;
    grid-template-columns: max-content minmax(240px, 1fr) max-content;
    align-items: center;
    gap: 12px;
    width: 100%;
    margin: 0 0 14px;
    padding: 0 0 14px;
    border-bottom: 1px solid var(--line);
}

.contact-search-row > label {
    color: var(--text);
    font-weight: 800;
    white-space: nowrap;
}

.contact-search-row > label .icon {
    width: 17px;
    height: 17px;
    color: var(--primary);
}

.contact-search-row input[type="search"] {
    width: 100%;
    min-width: 0;
}

.contact-selection-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.contact-selection-controls form {
    margin: 0;
}

.contact-duplicate-switch {
    min-height: 34px;
    padding: 0 4px;
}

.contact-table {
    min-width: 1562px;
    table-layout: fixed;
}

.contact-table th:first-child,
.contact-table td:first-child {
    width: 52px;
    text-align: center;
}

.contact-table th:nth-child(2),
.contact-table td:nth-child(2) {
    width: 54px;
    text-align: center;
}

.contact-table th:nth-child(3),
.contact-table td:nth-child(3) {
    width: 105px;
    text-align: center;
}

.contact-table th:nth-child(4),
.contact-table td:nth-child(4) {
    width: 255px;
}

.contact-table th:nth-child(5),
.contact-table td:nth-child(5) {
    width: 210px;
}

.contact-table th:nth-child(6),
.contact-table td:nth-child(6) {
    width: 255px;
}

.contact-table th:nth-child(7),
.contact-table td:nth-child(7) {
    width: 315px;
}

.contact-table th:nth-child(8),
.contact-table td:nth-child(8) {
    width: 170px;
}

.contact-table th:nth-child(9),
.contact-table td:nth-child(9) {
    width: 170px;
}

.contact-table th:nth-child(10),
.contact-table td:nth-child(10) {
    width: 170px;
}

.contact-table th:nth-child(11),
.contact-table td:nth-child(11) {
    width: 52px;
    text-align: center;
}

.contact-association-cell {
    vertical-align: middle;
    text-align: center;
}

.contact-association-values {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: 100%;
    min-height: 24px;
}

.contact-association-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 7px;
    border: 1px solid var(--line);
    border-radius: 6px;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
}

.contact-association-badge.is-vee {
    color: #0a5a4f;
    border-color: #b9dcd5;
    background: #e4f3ef;
}

.contact-association-badge.is-wkv {
    color: #175d8f;
    border-color: #b5d5ea;
    background: #e7f3fb;
}

.contact-table td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contact-table-organization {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.contact-table-organization > span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.contact-table-organization > small {
    overflow: hidden;
    color: var(--muted);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.15;
    text-overflow: ellipsis;
}

.contact-table tr[data-contact-row] {
    cursor: pointer;
}

.contact-table tr[data-contact-row]:hover > td,
.contact-table tr[data-contact-row]:focus-visible > td,
.contact-table tr[data-contact-row].is-open > td {
    background: #f7fbfa;
}

.contact-table tr[data-contact-row].is-marked > td {
    background: #edf7f4;
}

.contact-email-link {
    color: inherit;
    text-decoration: none;
}

.contact-email-link:hover,
.contact-email-link:focus-visible {
    color: var(--primary-dark);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.contact-table tr[data-contact-row].is-contact-name-duplicate > td:nth-child(4),
.contact-table tr[data-contact-row].is-contact-email-duplicate > td:nth-child(7),
.contact-table tr[data-contact-row].is-contact-mobile-duplicate > td:nth-child(9) {
    color: #7f1d1d;
    background: #fff7f7;
    font-weight: 800;
}

.contact-duplicate-reasons {
    display: inline-flex;
    align-items: center;
    margin-left: 7px;
    padding: 2px 5px;
    border: 1px solid #fecaca;
    border-radius: 999px;
    color: #991b1b;
    background: #fff1f2;
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    vertical-align: 1px;
}

.contact-duplicate-reasons[hidden] {
    display: none;
}

.contact-table tr[data-contact-row]:focus-visible {
    outline: 2px solid rgba(15, 107, 95, .24);
    outline-offset: -2px;
}

.contact-avatar {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: var(--primary-dark);
    background: var(--surface-soft);
    font-size: 12px;
    font-weight: 900;
    vertical-align: middle;
}

.contact-avatar.large {
    width: 58px;
    height: 58px;
    font-size: 18px;
}

.contact-avatar img,
.contact-profile-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.contact-editor-dialog {
    padding: 6px;
}

.contact-dialog-panel {
    width: min(1600px, calc(100vw - 28px));
    overflow-x: hidden;
    overflow-y: auto;
}

.contact-editor-dialog .contact-dialog-panel {
    width: min(1600px, calc(100vw - 12px));
}

.contact-dialog-header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.contact-dialog-header-actions form {
    margin: 0;
}

.contact-create-dialog-panel {
    min-width: min(620px, calc(100vw - 12px));
    min-height: min(420px, calc(100dvh - 12px));
}

#contact-create-dialog .addresslist-dialog-header[data-contact-create-drag-handle] {
    cursor: grab;
    touch-action: none;
    user-select: none;
}

#contact-create-dialog .contact-dialog-header-actions button {
    cursor: pointer;
}

.contact-create-dialog-resize-handle {
    position: fixed;
    z-index: 82;
    display: block;
    width: 28px;
    height: 28px;
    border-radius: 0 0 8px 0;
    cursor: nwse-resize;
    touch-action: none;
}

.contact-create-dialog-resize-handle::after {
    position: absolute;
    right: 5px;
    bottom: 5px;
    width: 11px;
    height: 11px;
    border-right: 2px solid #4f6d67;
    border-bottom: 2px solid #4f6d67;
    content: "";
    opacity: .85;
}

.contact-create-dialog-resize-handle[hidden] {
    display: none;
}

#contact-create-dialog.is-dragging .addresslist-dialog-header[data-contact-create-drag-handle] {
    cursor: grabbing;
}

#contact-create-dialog.is-dragging,
#contact-create-dialog.is-resizing {
    user-select: none;
}

body.app-contact-text-popup {
    overflow: hidden;
    background: #fff;
}

.app-contact-text-popup .popup-shell {
    min-height: 100dvh;
    padding: 0;
}

.app-contact-text-popup .page-heading,
.app-contact-text-popup .contact-sticky-controls,
.app-contact-text-popup .contact-workbench > .table-wrap,
.app-contact-text-popup .contact-label-panel {
    display: none;
}

.app-contact-text-popup .contact-workbench {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.app-contact-text-popup .contacts-contact-dialog:not([hidden]) {
    position: fixed;
    inset: 0;
    display: block;
    padding: 0;
}

.app-contact-text-popup .contacts-contact-dialog .addresslist-dialog-backdrop,
.app-contact-text-popup [data-contact-create-popout],
.app-contact-text-popup .contact-create-dialog-resize-handle {
    display: none;
}

.app-contact-text-popup .contacts-contact-dialog .contact-dialog-panel {
    position: fixed;
    inset: 0;
    width: 100vw;
    max-width: 100vw;
    min-width: 0;
    height: 100dvh;
    max-height: 100dvh;
    min-height: 0;
    margin: 0;
    overflow: auto;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.app-contact-text-popup .contacts-contact-dialog .addresslist-dialog-header {
    position: sticky;
    z-index: 3;
    top: -22px;
    background: var(--surface);
}

@media (max-width: 800px) {
    .contact-create-dialog-panel {
        min-width: 0;
        min-height: 0;
    }

    #contact-create-dialog .addresslist-dialog-header[data-contact-create-drag-handle] {
        cursor: default;
        touch-action: auto;
    }

    .contact-create-dialog-resize-handle {
        display: none;
    }
}

.contact-dialog-title {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.addresslist-dialog-header .contact-dialog-name {
    margin-top: 8px;
    font-size: 30px;
    line-height: 1.1;
}

.contact-form {
    gap: 12px;
}

.contact-text-import {
    display: grid;
    gap: 12px;
    margin-bottom: 14px;
    padding: 16px;
    border: 1px solid #bfd6d1;
    border-radius: 10px;
    background: #f5faf8;
}

.contact-text-import[hidden],
.contact-form[hidden] {
    display: none;
}

.contact-text-import-heading,
.contact-text-import-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.contact-text-import-heading h4 {
    margin: 0 0 4px;
    font-size: 17px;
}

.contact-text-import-heading p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.contact-text-import label {
    gap: 5px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.contact-text-import textarea {
    min-height: 190px;
    resize: vertical;
    color: var(--text);
    background: #fff;
    font: inherit;
    line-height: 1.45;
}

.contact-text-import.has-results textarea {
    min-height: 96px;
}

.contact-text-import-actions {
    justify-content: flex-start;
}

.contact-text-import-actions small {
    margin-left: auto;
    color: var(--muted);
}

.contact-text-import-status {
    padding: 10px 12px;
    border-left: 4px solid var(--primary);
    border-radius: 6px;
    color: var(--primary-dark);
    background: #e9f5f2;
    font-size: 13px;
    line-height: 1.45;
}

.contact-text-import-status.is-error {
    border-left-color: var(--danger);
    color: var(--danger);
    background: #fff1f1;
}

.contact-text-import-status strong {
    display: block;
}

.contact-text-matches {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid #e2bd72;
    border-radius: 10px;
    background: #fffaf0;
}

.contact-text-matches[hidden],
.contact-text-merge-summary[hidden] {
    display: none;
}

.contact-text-matches-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.contact-text-matches-heading h5 {
    margin: 0 0 4px;
    font-size: 15px;
}

.contact-text-matches-heading p,
.contact-text-merge-heading p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.contact-text-match-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
    gap: 8px;
}

.contact-text-match {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px;
    border: 1px solid #dfcfaa;
    border-radius: 8px;
    color: var(--text);
    background: #fff;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.contact-text-match:hover,
.contact-text-match:focus-visible,
.contact-text-match.is-selected {
    border-color: var(--primary);
    outline: none;
    box-shadow: 0 0 0 2px rgba(20, 120, 106, .1);
}

.contact-text-match.is-selected {
    background: #eef8f5;
}

.contact-text-match > span:first-child {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.contact-text-match small {
    overflow: hidden;
    color: var(--muted);
    font-size: 12px;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contact-text-match-reasons {
    display: flex;
    gap: 5px;
    margin-top: 3px;
    flex-wrap: wrap;
}

.contact-text-match-reasons span {
    padding: 2px 6px;
    border-radius: 999px;
    color: #75500a;
    background: #fff0c9;
    font-size: 10px;
    font-weight: 800;
}

.contact-text-match-action {
    flex: 0 0 auto;
    color: var(--primary-dark);
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.contact-text-merge-summary {
    display: grid;
    gap: 10px;
    padding-top: 12px;
    border-top: 1px solid #dfcfaa;
}

.contact-text-merge-heading {
    display: grid;
    gap: 3px;
}

.contact-text-merge-additions {
    margin: 0;
    color: var(--primary-dark);
    font-size: 12px;
    font-weight: 750;
}

.contact-text-conflict-heading {
    color: #75500a;
    font-size: 12px;
}

.contact-text-conflict-list {
    display: grid;
    gap: 7px;
}

.contact-text-conflict-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 9px 10px;
    border: 1px solid #ead9b6;
    border-radius: 7px;
    background: #fff;
}

.contact-text-conflict-row.is-applied {
    border-color: #9bc9bf;
    background: #eef8f5;
}

.contact-text-conflict-row > div {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.contact-text-conflict-row small {
    color: var(--muted);
    overflow-wrap: anywhere;
}

.contact-text-review-note {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid #bfd6d1;
    border-radius: 8px;
    color: var(--primary-dark);
    background: #eef8f5;
    font-size: 13px;
    font-weight: 750;
}

.contact-text-review-note .icon {
    flex: 0 0 auto;
}

.contact-form-grid .is-text-suggestion > input,
.contact-form-grid .is-text-suggestion > select,
.contact-form-grid .is-text-suggestion > textarea,
.contact-form-grid .is-text-suggestion > .segmented-control {
    border-color: #7eb8ad;
    background-color: #f1faf7;
    box-shadow: 0 0 0 2px rgba(20, 120, 106, .08);
}

.contact-text-confirmation {
    position: fixed;
    z-index: 220;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(20, 34, 31, .58);
    backdrop-filter: blur(2px);
}

.contact-text-confirmation[hidden] {
    display: none;
}

.contact-text-confirmation-card {
    display: grid;
    justify-items: center;
    width: min(520px, 100%);
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface);
    box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
    text-align: center;
}

.contact-text-confirmation-icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    margin-bottom: 12px;
    border-radius: 50%;
    color: #fff;
    background: var(--primary);
}

.contact-text-confirmation-icon .icon {
    width: 24px;
    height: 24px;
}

.contact-text-confirmation-card h4 {
    margin: 0 0 8px;
    font-size: 22px;
}

.contact-text-confirmation-card p {
    max-width: 440px;
    margin: 0;
    color: var(--muted);
    line-height: 1.5;
}

.contact-text-confirmation-actions {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 22px;
    flex-wrap: wrap;
}

.contact-form-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.contact-form-grid label,
.contact-field {
    gap: 4px;
    min-width: 0;
    font-size: 12px;
    line-height: 1.2;
}

.contact-greeting-value {
    display: grid;
    gap: 2px;
}

.contact-greeting-source {
    display: block;
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
}

.contact-editor-dialog .contact-form-grid input,
.contact-editor-dialog .contact-form-grid select,
.contact-editor-dialog .contact-form-grid textarea,
.contact-editor-dialog .contact-form-grid .segmented-control span,
.contact-editor-dialog .contact-readonly-control {
    font-size: 15.6px;
}

.contact-field {
    display: grid;
    color: var(--muted);
    font-weight: 700;
}

.contact-field-label {
    display: block;
}

.segmented-control {
    display: inline-grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(220px, 100%);
    min-height: 40px;
    padding: 3px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.segmented-control label {
    display: block;
    min-width: 0;
    color: var(--muted);
    font-weight: 800;
    cursor: pointer;
}

.segmented-control input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.segmented-control span {
    display: grid;
    place-items: center;
    min-height: 32px;
    border-radius: 6px;
}

.segmented-control input:checked + span {
    color: #fff;
    background: var(--primary);
}

.contact-readonly-segmented span.is-active {
    color: #fff;
    background: var(--primary);
}

.segmented-control input:focus-visible + span {
    outline: 2px solid rgba(15, 107, 95, .24);
    outline-offset: 2px;
}

.contact-profile-field {
    display: grid;
    grid-template-columns: 90px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f8faf9;
}

.contact-profile-preview {
    display: grid;
    place-items: center;
    width: 74px;
    aspect-ratio: 1;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: var(--primary-dark);
    background: var(--surface-soft);
    font-size: 22px;
    font-weight: 900;
}

.contact-profile-controls {
    display: grid;
    gap: 8px;
}

.contact-readonly-field {
    display: grid;
    gap: 4px;
    min-width: 0;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}

.contact-readonly-control {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 40px;
    padding: 9px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--text);
    background: #fff;
    font-size: 12px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.contact-readonly-control.is-empty {
    color: var(--muted);
    background: #f8faf9;
}

.contact-readonly-control.has-meta {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.contact-readonly-control a {
    color: var(--primary-dark);
}
.contact-company-affiliation-link { font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.contact-company-search { position:relative; display:block; min-width:0; }
.contact-company-search > input[type="search"] { width:100%; padding-right:42px; }
.contact-company-clear { position:absolute; z-index:2; top:5px; right:5px; display:grid; place-items:center; width:30px; height:30px; padding:0; border:0; border-radius:6px; color:var(--muted); background:transparent; cursor:pointer; }
.contact-company-clear:hover,.contact-company-clear:focus-visible { color:var(--primary-dark); background:var(--surface-soft); }
.contact-company-clear[hidden] { display:none; }
.contact-company-clear .icon { width:15px; height:15px; }
.contact-company-suggestions { position:absolute; z-index:45; top:calc(100% + 5px); right:0; left:0; display:grid; max-height:280px; overflow-y:auto; padding:5px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 10px 26px rgba(24,48,43,.16); }
.contact-company-suggestions[hidden] { display:none; }
.contact-company-suggestions button { display:grid; gap:2px; width:100%; min-height:42px; padding:7px 9px; border:0; border-bottom:1px solid #edf2f1; color:var(--text); background:#fff; text-align:left; cursor:pointer; }
.contact-company-suggestions button:last-of-type { border-bottom:0; }
.contact-company-suggestions button:hover,.contact-company-suggestions button:focus-visible,.contact-company-suggestions button[data-active="true"] { color:var(--primary-dark); outline:0; background:#edf7f4; }
.contact-company-suggestions strong,.contact-company-suggestions small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.contact-company-suggestions small { color:var(--muted); font-size:.72rem; font-weight:600; }
.contact-company-suggestion-empty { padding:9px 10px; color:var(--muted); font-size:.78rem; font-weight:650; }
[data-contact-company-hint][data-state="selected"] { color:var(--primary-dark); }
.contact-phplist-panel { display:block; min-width:0; padding:.8rem; border:1px solid var(--line); border-radius:9px; background:var(--surface-soft); }
.contact-phplist-heading { display:flex; align-items:center; justify-content:space-between; gap:.75rem; list-style:none; cursor:pointer; }
.contact-phplist-heading::-webkit-details-marker { display:none; }
.contact-phplist-copy { display:grid; gap:.15rem; min-width:0; }
.contact-phplist-heading strong { display:inline-flex; align-items:center; gap:.4rem; color:var(--text); }
.contact-phplist-heading strong .icon { width:15px; height:15px; color:var(--primary); }
.contact-phplist-heading small { color:var(--muted); overflow-wrap:anywhere; }
.contact-phplist-toggle { display:grid; place-items:center; color:var(--muted); transition:transform .16s ease; }
.contact-phplist-toggle .icon { width:16px; height:16px; }
.contact-phplist-panel[open] .contact-phplist-toggle { transform:rotate(180deg); }
.contact-phplist-body { display:grid; gap:.65rem; padding-top:.7rem; }
.contact-phplist-toolbar { display:flex; justify-content:flex-end; }
.contact-phplist-message { margin:0; color:var(--muted); font-size:.76rem; font-weight:650; }
.contact-phplist-message[data-state="loading"] { color:var(--primary-dark); }
.contact-phplist-message[data-state="error"] { color:var(--danger); }
.contact-phplist-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.55rem; }
.contact-phplist-grid[hidden] { display:none; }
@media (max-width:1100px) { .contact-phplist-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:720px) { .contact-phplist-grid{grid-template-columns:1fr} }

.contact-notes-field textarea,
.contact-readonly-notes {
    min-height: 104px;
}

.contact-readonly-notes {
    align-items: flex-start;
    white-space: pre-wrap;
}

.contact-detail-grid a {
    overflow-wrap: anywhere;
}

[data-contact-dialog-view][hidden],
[data-contact-dialog-edit-form][hidden] {
    display: none;
}

.addresslist-admin-layout {
    grid-template-columns: minmax(280px, .45fr) minmax(0, 1fr);
}

.addresslist-reset-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 14px;
}

.addresslist-reset-card {
    display: grid;
    gap: 14px;
    align-content: start;
    padding: 16px;
    border: 1px solid #efc6c6;
    border-radius: 8px;
    background: #fffafa;
}

.addresslist-reset-card h3 {
    margin: 0 0 4px;
}

.addresslist-reset-card .muted {
    margin: 0;
}

.addresslist-import-map {
    min-width: 960px;
}

.addresslist-import-source {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid #bfd6d1;
    border-radius: 8px;
    background: #f5faf8;
}

.addresslist-import-source h3,
.addresslist-import-source p {
    margin: 0;
}

.addresslist-import-source-options {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px;
}

.addresslist-import-source-options > label:not(.check-inline) {
    min-width: min(360px, 100%);
}

.addresslist-import-source-options input[name="source_value"] {
    min-height: 40px;
    font-size: 15.6px;
}

.addresslist-import-map select {
    min-width: 240px;
}

.contact-import-guidance {
    display: grid;
    gap: 8px;
}

.contact-import-validation {
    display: grid;
    gap: 14px;
    margin-bottom: 20px;
    padding: 16px;
    border: 1px solid #e7b7b7;
    border-left: 5px solid var(--danger);
    border-radius: 8px;
    color: #742525;
    background: #fff4f4;
}

.contact-import-validation h3,
.contact-import-validation p {
    margin: 0;
}

.contact-import-validation h3 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 5px;
}

.contact-import-validation-list {
    display: grid;
    gap: 6px;
    max-height: 260px;
    margin: 0;
    padding: 12px 12px 12px 34px;
    overflow: auto;
    border: 1px solid #efd0d0;
    border-radius: 6px;
    color: var(--text);
    background: #fff;
}

.contact-import-column-index,
.contact-import-selection-status {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.contact-import-selection-status[data-state="selected"] {
    color: var(--primary-dark);
}

.addresslist-import-map tr.has-selected-field td {
    background: #f7fbfa;
}

.addresslist-import-progress {
    display: grid;
    gap: 10px;
    max-width: 760px;
}

.addresslist-progress-track {
    width: 100%;
    height: 12px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--line);
}

.addresslist-progress-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--accent);
    transition: width .2s ease;
}

.addresslist-progress-meta {
    display: flex;
    gap: 12px;
    align-items: center;
    color: var(--muted);
}

.addresslist-progress-meta strong {
    color: var(--text);
}

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

th,
td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

th {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

tr:last-child td {
    border-bottom: 0;
}

.row-warning td {
    background: #fff8e8;
}

.stock-level {
    font-weight: 900;
}

.stock-level-danger {
    color: var(--danger);
}

.stock-level-warning {
    color: var(--warning);
}

.stock-level-success {
    color: var(--primary);
}

.badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 2px 8px;
    border-radius: 999px;
    color: var(--primary-dark);
    background: var(--surface-soft);
    font-size: 12px;
    font-weight: 700;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 40px;
    padding: 9px 13px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--text);
    background: var(--surface);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.button:hover {
    border-color: var(--primary);
    color: var(--primary-dark);
    text-decoration: none;
}

.button.primary {
    color: #fff;
    border-color: var(--primary);
    background: var(--primary);
}

.button.primary:hover {
    color: #fff;
    background: var(--primary-dark);
}

.button.secondary {
    color: var(--muted);
}

.button.secondary.active {
    color: var(--primary-dark);
    border-color: rgba(18, 123, 106, 0.35);
    background: #e9f4f2;
}

.button.danger {
    color: #fff;
    border-color: var(--danger);
    background: var(--danger);
}

.button.danger:hover {
    color: #fff;
    background: #7f1f1f;
}

.button.small {
    min-height: 32px;
    padding: 6px 9px;
    font-size: 13px;
}

.button:disabled,
button:disabled,
input:disabled,
select:disabled,
textarea:disabled {
    opacity: .55;
    cursor: not-allowed;
}

/* Veranstaltungen */
.event-sticky-header { position:sticky; z-index:9; top:var(--app-header-height,68px); margin-top:-12px; isolation:isolate; background:var(--bg); }
.event-page-heading { margin-bottom:.75rem; }
.event-page-heading p { margin-bottom:0; }
.event-page-heading .section-actions { display:flex; gap:.65rem; flex-wrap:wrap; justify-content:flex-end; margin:0; }
.event-filter-bar { display:grid; gap:.45rem; margin:0 0 .55rem; padding:.5rem .8rem .6rem; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:0 8px 18px rgba(24,36,34,.08); }
.event-filter-fields { display:grid; grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(130px,.75fr)) auto auto auto auto auto; gap:.6rem; align-items:center; }
.event-filter-bar label { display:grid; color:var(--muted); font-size:.75rem; font-weight:700; }
.event-filter-bar input,.event-filter-bar select { min-width:0; }
.event-filter-bar .event-filter-check { display:flex; align-items:center; align-self:center; gap:.45rem; white-space:nowrap; }
.event-year-timeline { display:grid; gap:2px; min-width:0; padding:0 .15rem; }
.event-year-timeline-labels { display:grid; grid-template-columns:1fr 1fr; align-items:center; color:#72817d; font-size:.66rem; font-variant-numeric:tabular-nums; line-height:1; }
.event-year-timeline-labels time:first-child { color:var(--primary-dark); font-size:.72rem; font-weight:800; }
.event-year-timeline-labels time:last-child { justify-self:end; }
.event-year-timeline-track { position:relative; height:24px; margin:0 4px; }
.event-year-timeline-track::before { content:""; position:absolute; top:11px; right:0; left:0; height:2px; border-radius:99px; background:#d9e2df; }
.event-year-months,.event-year-points { position:absolute; inset:0; }
.event-year-months { z-index:1; }
.event-year-months span { position:absolute; top:1px; left:var(--event-year-position); width:2px; height:21px; border-radius:2px; background:#96a39f; opacity:.78; transform:translateX(-1px); }
.event-year-months span.is-window-start,.event-year-months span.is-year-boundary { width:3px; background:var(--primary); opacity:1; transform:translateX(-1.5px); }
.event-year-today-point { position:absolute; z-index:4; top:4px; left:var(--event-year-position); width:12px; height:12px; border:2px solid #fff; border-radius:50%; background:#c92f2f; box-shadow:0 0 0 3px rgba(201,47,47,.22); transform:translateX(-50%); cursor:help; }
.event-year-point { position:absolute; z-index:2; top:5px; left:var(--event-year-position); display:grid; place-items:center; width:14px; height:14px; border-radius:50%; transform:translateX(-50%); transition:transform .14s ease; }
.event-year-point > span { display:block; width:9px; height:9px; border:2px solid #fff; border-radius:50%; background:var(--primary); box-shadow:0 0 0 2px rgba(15,107,95,.25); }
.event-year-point small { position:absolute; top:-7px; left:8px; display:grid; place-items:center; min-width:14px; height:14px; padding:0 3px; border-radius:99px; color:#fff; background:var(--primary-dark); font-size:8px; font-weight:800; line-height:1; }
.event-year-point.is-active > span { background:#f7931d; box-shadow:0 0 0 3px rgba(247,147,29,.25); }
.event-year-point.is-active small { background:#d87200; }
.event-year-point:hover,.event-year-point:focus-visible { outline:none; transform:translateX(-50%) scale(1.35); }
.event-year-point:focus-visible > span { box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(15,107,95,.45); }
.event-list,.event-template-list { display:grid; gap:1rem; }
.event-card { overflow:hidden; scroll-margin-top:calc(var(--app-header-height,68px) + 216px); border:1px solid var(--line); border-radius:12px; background:var(--surface); box-shadow:0 2px 9px rgba(24,36,34,.05); }
.event-summary { display:grid; grid-template-columns:minmax(240px,1fr) minmax(0,4fr) minmax(112px,auto); width:100%; padding:0; border:0; background:transparent; color:var(--text); font:inherit; text-align:left; cursor:pointer; }
.event-summary:hover { background:var(--surface-soft); }
.event-summary:focus-visible { position:relative; z-index:2; outline:3px solid rgba(18,123,106,.28); outline-offset:-3px; }
.event-date-block { position:relative; display:grid; align-content:center; justify-items:start; gap:.1rem; min-height:104px; padding:.8rem 1rem; border-right:1px solid var(--line); background:#f5faf9; font-variant-numeric:tabular-nums; }
.event-date-block strong { color:var(--primary-dark); font-size:1.18rem; font-weight:800; line-height:1.15; letter-spacing:-.02em; }
.event-calendar-date { color:var(--text); font-size:1.08rem; font-weight:800; line-height:1.2; }
.event-date-block small,.event-overview small { color:var(--muted); }
.event-date-block small { font-size:.9rem; font-weight:650; line-height:1.3; }
.event-date-block.is-undated { background:linear-gradient(135deg,#f5faf9,#eef5f3); }
.event-date-block.is-undated strong { font-size:1.12rem; }
.event-date-block.is-undated [data-event-time] { max-width:210px; }
.event-type-badge { display:inline-flex; align-items:center; max-width:100%; min-height:22px; margin-top:.28rem; padding:3px 8px; overflow:hidden; border:1px solid #d2e2de; border-radius:99px; color:#1c6258; background:#fff; font-size:.72rem; font-weight:750; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.event-type-badge[hidden] { display:none; }
.event-summary-affiliations { position:absolute; top:.68rem; right:.72rem; display:grid; gap:.32rem; justify-items:end; max-width:45%; }
.event-summary-affiliations[hidden],.event-summary-affiliations > span[hidden] { display:none; }
.event-summary-affiliations > span { display:grid; justify-items:end; min-width:0; max-width:100%; padding:4px 8px; border:1px solid #d6e5e1; border-radius:7px; background:rgba(255,255,255,.92); box-shadow:0 1px 2px rgba(28,52,48,.05); }
.event-summary-affiliations small { margin:0; color:#73837f; font-size:.52rem; font-weight:800; line-height:1.1; letter-spacing:.06em; text-transform:uppercase; }
.event-summary-affiliations b { display:block; max-width:100%; overflow:hidden; color:#185f55; font-size:1.02rem; font-weight:800; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.event-overview { display:grid; align-content:center; gap:.38rem; min-width:0; padding:.65rem 1rem; }
.event-summary-title-copy { display:grid; gap:.18rem; min-width:0; }
.event-title-line,.event-progress-line { display:flex; align-items:center; gap:.7rem; min-width:0; }
.event-title-line strong { min-width:0; overflow:hidden; font-size:1.05rem; text-overflow:ellipsis; white-space:nowrap; }
.event-summary-subtitle { display:block; min-width:0; overflow:hidden; color:#667772; font-size:.82rem; font-weight:550; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.event-summary-subtitle[hidden] { display:none; }
.event-progress-line { color:var(--muted); font-size:.8rem; }
.event-progress { display:block; width:min(280px,42%); height:8px; overflow:hidden; border-radius:99px; background:#dfe9e7; }
.event-progress > span { display:block; height:100%; border-radius:inherit; background:var(--primary); transition:width .2s ease; }
.event-expand-icon { display:flex; align-items:center; justify-content:center; gap:.35rem; min-height:100%; padding:.7rem .8rem; border-left:1px solid var(--line); color:#526762; background:rgba(247,250,249,.72); font-size:.78rem; font-weight:750; line-height:1.2; white-space:nowrap; }
.event-expand-icon .icon { width:16px; height:16px; transition:transform .18s ease; }
.event-card.is-open .event-expand-icon .icon { transform:rotate(180deg); }
.event-editor { padding:.8rem; border-top:1px solid var(--line); background:#f7faf9; font-family:inherit; font-size:15px; line-height:1.35; text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased; }
.event-editor-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; margin:.2rem 0 .9rem; }
.event-editor-heading h2,.event-editor-heading p { margin:0; }

/* Geöffnete Veranstaltung: schmale Information, Planungsbaum und Kommentarspalte. */
.event-card.is-open { display:grid; grid-template-columns:minmax(210px,16fr) minmax(0,84fr); grid-template-rows:auto minmax(0,1fr); gap:.75rem; padding:.75rem; background:#f7faf9; }
.event-card.is-open > .event-summary { position:relative; grid-column:1; grid-row:1; grid-template-columns:1fr; align-self:start; overflow:hidden; border:1px solid #d7e2df; border-radius:10px; background:#fff; }
.event-card.is-open .event-date-block { min-height:122px; padding:.8rem .85rem; border-right:0; border-bottom:1px solid var(--line); }
.event-card.is-open .event-overview { gap:.5rem; padding:.7rem .75rem .75rem; }
.event-card.is-open .event-summary-title-copy { display:none; }
.event-card.is-open .event-title-line { flex-wrap:wrap; gap:.35rem .55rem; }
.event-card.is-open .event-progress-line { display:grid; gap:.35rem; }
.event-card.is-open .event-progress { width:100%; }
.event-card.is-open .event-expand-icon { position:static; min-height:42px; padding:.55rem .7rem; border-top:1px solid var(--line); border-left:0; }
.event-card.is-open > .event-editor { display:contents; }
.event-card.is-open .event-open-sidebar { display:grid; grid-column:1; grid-row:2; gap:.75rem; align-self:start; align-content:start; min-width:0; }
.event-card.is-open .event-checklist-panel { grid-column:2; grid-row:1 / span 2; align-self:start; min-width:0; }
.event-card.is-open .event-comments-panel { grid-column:2; grid-row:1; }
.event-card.is-open .event-master-panel { margin:0; }
.event-card.is-open .event-master-panel > summary { grid-template-columns:minmax(0,1fr) auto auto; gap:.45rem; }
.event-card.is-open .event-master-title { grid-column:1; grid-row:1; }
.event-card.is-open .event-master-facts { display:flex; grid-column:1/-1; grid-row:2; align-items:flex-start; flex-direction:column; gap:.25rem; white-space:normal; }
.event-card.is-open .event-master-facts > span { white-space:normal; }
.event-card.is-open .event-master-facts > span:first-child { display:none; }
.event-card.is-open .event-master-facts:not(:has(> span:nth-child(2))) { display:none; }
.event-card.is-open .event-master-panel .autosave-status { grid-column:2; grid-row:1; }
.event-card.is-open .event-master-chevron { grid-column:3; grid-row:1; }
.event-card.is-open .event-form-grid,.event-card.is-open .event-readonly-data { grid-template-columns:1fr; }
.event-card.is-open .event-form-grid .wide { grid-column:auto; }
.event-card.is-open .event-add-root { grid-template-columns:1fr; gap:.45rem; margin:0; padding:.65rem; border-style:solid; }
.event-card.is-open .event-add-root .button { width:100%; }
.event-card.is-open .event-footer-actions { display:grid; gap:.65rem; margin:0; padding-top:.75rem; }
.event-card.is-open .event-footer-actions > form,.event-card.is-open .event-footer-actions .inline-form { display:grid; gap:.4rem; width:100%; margin:0; }
.event-card.is-open .event-footer-actions label { display:grid; gap:.25rem; min-width:0; }
.event-card.is-open .event-footer-actions .button { width:100%; }
.event-card.is-open .event-user-checks { min-width:0; max-width:100%; }
.event-card.is-open .event-user-checks label { min-width:0; overflow-wrap:anywhere; }
.event-card.is-open .event-open-sidebar input,.event-card.is-open .event-open-sidebar select,.event-card.is-open .event-open-sidebar textarea { min-width:0; max-width:100%; }
.event-card.is-open .event-partner-heading { align-items:flex-start; flex-direction:column; }
.event-card.is-open .event-partner-heading .button { width:100%; }

.event-planning-lower { display:grid; grid-template-columns:minmax(0,59fr) minmax(280px,25fr); gap:.75rem; align-items:start; min-width:0; }
.event-planning-lower > .event-tree-canvas { grid-column:1; min-width:0; }
.event-comments-panel { position:sticky; top:calc(var(--app-header-height,68px) + 12px); display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; align-self:start; min-width:0; max-height:calc(100vh - var(--app-header-height,68px) - 24px); overflow:hidden; border:1px solid #d5e2df; border-radius:10px; background:#fff; box-shadow:0 4px 16px rgba(28,55,50,.06); }
.event-comments-heading { display:flex; align-items:center; justify-content:space-between; gap:.7rem; min-height:57px; padding:.65rem .75rem; border-bottom:1px solid #e1e9e7; background:linear-gradient(180deg,#fbfdfc,#f5f9f8); }
.event-comments-heading > span:first-child { display:grid; gap:2px; min-width:0; }
.event-comments-heading small { color:#54716b; font-size:9px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.event-comments-heading h2 { display:flex; align-items:center; gap:.38rem; margin:0; color:#173f38; font-size:15px; line-height:1.2; }
.event-comments-heading h2 .icon { width:16px; height:16px; }
.event-comments-heading-actions { display:flex; align-items:center; justify-content:flex-end; gap:.4rem; min-width:0; }
.event-comments-panel .comment-sort { display:inline-flex; flex-wrap:nowrap; gap:3px; }
.event-comments-panel .comment-sort .button { min-height:27px; padding:4px 6px; font-size:9.5px; }
.event-comment-count { display:grid; place-items:center; min-width:27px; height:27px; padding:0 7px; border-radius:99px; color:#165d52; background:#e7f2ef; font-size:11px; font-weight:850; font-variant-numeric:tabular-nums; }
.event-comment-compose { display:grid; gap:.48rem; padding:.7rem .75rem; border-bottom:1px solid #e1e9e7; background:#fbfdfc; }
.event-comment-compose textarea { width:100%; min-height:92px; max-height:220px; padding:.58rem .65rem; resize:vertical; border-color:#cddbd8; border-radius:8px; background:#fff; font-size:15px; line-height:1.4; }
.event-comment-compose textarea:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(18,123,106,.11); }
.event-comment-compose-actions { display:flex; align-items:center; justify-content:space-between; gap:.55rem; min-width:0; }
.event-comment-status { min-width:0; color:#53706a; font-size:10.5px; font-weight:650; line-height:1.25; }
.event-comment-status[data-state="error"] { color:var(--danger); }
.event-comment-status[data-state="saving"] { color:#7a641e; }
.event-comments-list.comments { display:grid; align-content:start; gap:.55rem; min-height:80px; margin:0; padding:.65rem; overflow:auto; overscroll-behavior:contain; }
.event-comments-list .event-comment-item { grid-template-columns:36px minmax(0,1fr); gap:.55rem; margin:0; padding:.58rem; border-color:#dce6e3; border-radius:8px; box-shadow:0 1px 2px rgba(29,58,52,.035); }
.event-comments-list .event-comment-item[hidden] { display:none; }
.event-comments-list .comment-avatar { width:36px; height:36px; font-size:13px; }
.event-comments-list .comment-meta { display:grid; gap:1px; margin:0 0 .3rem; }
.event-comments-list .comment-meta strong { overflow:hidden; font-size:14px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.event-comments-list .comment-meta small { font-size:12px; line-height:1.25; }
.event-comments-list .comment-content p { margin:0; overflow-wrap:anywhere; color:#273a36; font-size:15px; line-height:1.45; }
.event-comments-list .comment-actions { gap:.35rem; margin-top:.45rem; }
.event-comments-list .comment-actions .button { min-height:28px; padding:.28rem .42rem; font-size:10px; }
.event-comments-list .comment-actions .icon { width:13px; height:13px; }
.event-comments-list .comment-edit-panel[open] { margin-top:.15rem; }
.event-comments-list .comment-edit-form { gap:.45rem; }
.event-comments-list .comment-edit-form label { gap:.2rem; font-size:10.5px; }
.event-comments-list .comment-edit-form textarea { min-height:78px; padding:.45rem .5rem; font-size:15px; }
.event-comments-list .comment-edit-actions { gap:.35rem; }
.event-comments-empty { margin:.25rem; padding:1rem .65rem; border:1px dashed #d4e1de; border-radius:8px; text-align:center; font-size:11.5px; line-height:1.4; }
.event-comments-more { display:flex; justify-content:center; padding:.5rem .65rem .6rem; border-top:1px solid #e1e9e7; background:#fbfdfc; }
.event-comments-more[hidden] { display:none; }
.event-comments-more .button { min-height:30px; font-size:11.5px; }
.event-comments-collapse-bottom { display:flex; grid-column:1 / -1; justify-content:center; padding:.2rem 0 .05rem; }
.event-comments-collapse-bottom[hidden] { display:none; }
.event-comments-collapse-bottom .button { min-height:32px; font-size:11.5px; }

/* Die Stammdaten bleiben erreichbar, beanspruchen aber erst aufgeklappt Raum. */
.event-master-panel { overflow:hidden; margin:0 0 .75rem; border:1px solid #d7e2df; border-radius:10px; background:rgba(255,255,255,.92); }
.event-master-panel > summary { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; gap:.8rem; align-items:center; min-height:48px; padding:.5rem .75rem; list-style:none; cursor:pointer; }
.event-master-panel > summary::-webkit-details-marker { display:none; }
.event-master-panel > summary:hover { background:#f1f7f5; }
.event-master-title,.event-master-facts,.event-master-facts > span { display:flex; align-items:center; gap:.35rem; min-width:0; }
.event-master-title { color:var(--primary-dark); font-size:14px; font-weight:700; line-height:1.25; letter-spacing:-.01em; }
.event-master-title .icon,.event-master-facts .icon { width:16px; height:16px; }
.event-master-facts { gap:.9rem; overflow:hidden; color:var(--muted); font-size:12.5px; font-weight:500; line-height:1.3; white-space:nowrap; font-variant-numeric:tabular-nums; }
.event-master-facts > span { overflow:hidden; text-overflow:ellipsis; }
.event-master-panel .autosave-status { justify-self:end; width:max-content; min-height:24px; padding:3px 8px; font-size:12px; font-weight:700; }
.event-master-chevron { display:grid; place-items:center; justify-self:end; transition:transform .18s ease; }
.event-master-panel[open] .event-master-chevron { transform:rotate(180deg); }
.event-master-form,.event-readonly-data { padding:.65rem .75rem .75rem; border-top:1px solid #e2ebe8; background:#fff; }
.event-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; margin:0; }
.event-form-grid label { gap:.2rem; font-size:12px; }
.event-form-grid input,.event-form-grid select,.event-form-grid textarea { min-height:36px; padding:.4rem .58rem; font-size:14px; }
.event-form-grid textarea { min-height:54px; }
.event-user-checks { display:flex; gap:.4rem .75rem; flex-wrap:wrap; padding:.45rem .6rem; border:1px solid var(--line); border-radius:8px; }
.event-user-checks legend { padding:0 .25rem; color:var(--muted); font-size:11px; font-weight:700; }
.event-user-checks label { display:flex; align-items:center; gap:.3rem; font-size:12px; }
.event-user-checks input[type="checkbox"] { width:16px; height:16px; min-height:0; margin:0; }
.event-assignee-picker { display:grid; gap:.4rem; min-width:0; padding:.5rem .55rem; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
.event-assignee-heading { display:flex; align-items:baseline; justify-content:space-between; gap:.6rem; min-width:0; }
.event-assignee-heading strong { color:var(--text); font-size:12px; line-height:1.25; }
.event-assignee-heading small,.event-assignee-hint { color:var(--muted); font-size:10.5px; font-weight:500; line-height:1.3; }
.event-assignee-tags { display:flex; gap:.32rem; flex-wrap:wrap; min-width:0; }
.event-assignee-tag { display:inline-flex; align-items:center; gap:.28rem; max-width:100%; min-height:28px; padding:3px 4px 3px 8px; border:1px solid #b9d8d1; border-radius:99px; color:#164f47; background:#edf7f4; box-shadow:0 1px 2px rgba(28,52,48,.04); }
.event-assignee-tag > span { min-width:0; overflow:hidden; font-size:11.5px; font-weight:700; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.event-assignee-tag button { display:grid; place-items:center; width:21px; height:21px; min-height:0; padding:0; border:0; border-radius:50%; color:#56716b; background:rgba(255,255,255,.7); font-size:16px; line-height:1; cursor:pointer; }
.event-assignee-tag button:hover,.event-assignee-tag button:focus-visible { color:var(--danger); background:#fff; box-shadow:0 0 0 2px rgba(181,50,50,.11); }
.event-assignee-empty { align-self:center; color:var(--muted); font-size:11px; font-weight:500; }
.event-assignee-empty[hidden] { display:none; }
.event-assignee-search { display:block; }
.event-assignee-search input { min-height:34px; padding:.35rem .55rem; border-color:#ceded9; font-size:12.5px; }
.event-assignee-suggestions { display:grid; max-height:170px; overflow:auto; border:1px solid #cfdeda; border-radius:7px; background:#fff; box-shadow:0 6px 14px rgba(28,52,48,.09); }
.event-assignee-suggestions[hidden] { display:none; }
.event-assignee-suggestions button { display:flex; align-items:center; width:100%; min-height:34px; padding:6px 8px; border:0; border-bottom:1px solid #edf2f1; color:var(--text); background:#fff; text-align:left; cursor:pointer; }
.event-assignee-suggestions button:last-child { border-bottom:0; }
.event-assignee-suggestions button:hover,.event-assignee-suggestions button[data-active="true"] { color:var(--primary-dark); background:#edf7f4; }
.event-assignee-suggestions strong { font-size:12px; line-height:1.25; }
.event-assignee-suggestion-empty { padding:8px; color:var(--muted); font-size:11px; }
.event-line-assignee { position:relative; display:flex; align-items:center; gap:.35rem; min-width:0; }
.event-work-step-row > .event-line-assignee { grid-column:3/-1; }
.event-advertising-row > .event-line-assignee { grid-column:2/-1; }
.event-line-assignee-tags { display:flex; align-items:center; gap:.25rem; flex:1 1 auto; min-width:0; flex-wrap:wrap; }
.event-line-assignee-empty { color:var(--muted); font-size:10.5px; font-weight:550; }
.event-line-assignee-empty[hidden] { display:none; }
.event-line-assignee-tag { display:inline-flex; align-items:center; gap:.2rem; max-width:190px; min-height:25px; padding:2px 3px 2px 7px; border:1px solid #bdd9d3; border-radius:99px; color:#164f47; background:#edf7f4; }
.event-line-assignee-tag > span { min-width:0; overflow:hidden; font-size:10.5px; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.event-line-assignee-tag button { display:grid; place-items:center; width:18px; height:18px; min-height:0; padding:0; border:0; border-radius:50%; color:#58716c; background:#fff; font-size:14px; line-height:1; cursor:pointer; }
.event-line-assignee-tag button:hover,.event-line-assignee-tag button:focus-visible { color:var(--danger); }
.event-line-assignee-search { flex:0 1 175px; min-width:125px; }
.event-line-assignee-search input { width:100%; min-height:29px; padding:.25rem .45rem; border-color:#ceded9; font-size:11px; }
.event-line-assignee-suggestions { position:absolute; z-index:24; top:calc(100% + 3px); right:0; display:grid; width:min(280px,100%); max-height:170px; overflow:auto; border:1px solid #cfdeda; border-radius:7px; background:#fff; box-shadow:0 8px 18px rgba(28,52,48,.14); }
.event-line-assignee-suggestions[hidden] { display:none; }
.event-line-assignee-suggestions button { min-height:31px; padding:5px 8px; border:0; border-bottom:1px solid #edf2f1; color:var(--text); background:#fff; font-size:11.5px; font-weight:700; text-align:left; cursor:pointer; }
.event-line-assignee-suggestions button:hover,.event-line-assignee-suggestions button[data-active="true"] { color:var(--primary-dark); background:#edf7f4; }
.event-line-assignee-no-result { padding:7px 8px; color:var(--muted); font-size:11px; }
.event-line-assignee-readonly { display:flex; align-items:center; gap:.25rem; margin-top:2px; color:#47635e; font-size:10.5px; font-weight:650; line-height:1.25; text-decoration:none; }
.event-line-assignee-readonly .icon { width:12px; height:12px; }
.event-line-person { display:flex; align-items:center; gap:.35rem; min-width:0; }
.event-work-step-row > .event-line-person { grid-column:3/-1; }
.event-advertising-row > .event-line-person { grid-column:2/-1; }
.event-line-person-tags { display:flex; align-items:center; gap:.25rem; flex:1 1 auto; min-width:0; flex-wrap:wrap; }
.event-line-person-empty { color:var(--muted); font-size:10.5px; font-weight:550; }
.event-line-person-empty[hidden],.event-line-person-tag[hidden] { display:none; }
.event-line-person-tag { display:inline-flex; align-items:center; gap:.25rem; max-width:230px; min-height:26px; padding:2px 3px 2px 7px; border:1px solid #c8d9ef; border-radius:99px; color:#28557e; background:#f2f7fc; }
.event-line-person-tag.is-legacy { border-color:#d4dfdc; color:#506863; background:#f4f7f6; }
.event-line-person-tag .icon { width:12px; height:12px; flex:0 0 auto; }
.event-line-person-tag > span { min-width:0; overflow:hidden; font-size:10.5px; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.event-line-person-tag button { display:grid; place-items:center; width:18px; height:18px; min-height:0; flex:0 0 auto; padding:0; border:0; border-radius:50%; color:#60758a; background:#fff; font-size:14px; line-height:1; cursor:pointer; }
.event-line-person-tag button:hover,.event-line-person-tag button:focus-visible { color:var(--danger); }
.event-line-person-open { flex:0 0 auto; min-height:28px; padding:3px 8px; font-size:10.5px; white-space:nowrap; }
.event-line-person-open .icon { width:13px; height:13px; }
.event-external-picker { display:grid; align-content:start; gap:.38rem; min-width:0; padding:.5rem .55rem; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
.event-external-heading { display:flex; align-items:baseline; justify-content:space-between; gap:.5rem; min-width:0; }
.event-external-heading strong { color:var(--text); font-size:12px; line-height:1.25; }
.event-external-heading small,.event-external-hint { color:var(--muted); font-size:10.5px; font-weight:500; line-height:1.3; }
.event-external-selection { display:flex; align-items:center; justify-content:space-between; gap:.35rem; min-width:0; min-height:30px; padding:3px 4px 3px 8px; border:1px solid #c8d9ef; border-radius:7px; color:#28557e; background:#f2f7fc; }
.event-external-selection[hidden] { display:none; }
.event-external-selection > span { min-width:0; overflow:hidden; font-size:11.5px; font-weight:700; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.event-external-selection button { display:grid; place-items:center; width:22px; height:22px; min-height:0; flex:0 0 auto; padding:0; border:0; border-radius:50%; color:#61778b; background:#fff; font-size:16px; line-height:1; cursor:pointer; }
.event-external-selection button:hover,.event-external-selection button:focus-visible { color:var(--danger); box-shadow:0 0 0 2px rgba(181,50,50,.11); }
.event-external-search { display:block; }
.event-external-search input { min-height:34px; padding:.35rem .55rem; border-color:#ceded9; font-size:12.5px; }
.event-external-suggestions { display:grid; max-height:210px; overflow:auto; border:1px solid #cfdeda; border-radius:7px; background:#fff; box-shadow:0 7px 16px rgba(28,52,48,.1); }
.event-external-suggestions[hidden] { display:none; }
.event-external-suggestions button { display:grid; grid-template-columns:auto minmax(0,1fr); gap:.45rem; align-items:center; width:100%; min-height:42px; padding:6px 8px; border:0; border-bottom:1px solid #edf2f1; color:var(--text); background:#fff; text-align:left; cursor:pointer; }
.event-external-suggestions button:last-child { border-bottom:0; }
.event-external-suggestions button:hover,.event-external-suggestions button[data-active="true"] { background:#edf7f4; }
.event-external-suggestions button > span:last-child { display:grid; min-width:0; gap:2px; }
.event-external-suggestions strong,.event-external-suggestions small { overflow:hidden; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.event-external-suggestions strong { font-size:12px; }
.event-external-suggestions small { color:var(--muted); font-size:10.5px; font-weight:500; }
.event-external-source { display:inline-flex; align-items:center; min-height:20px; padding:2px 5px; border-radius:99px; color:#536b66; background:#edf2f1; font-size:9.5px; font-weight:750; line-height:1.1; }
.event-external-suggestion-empty { padding:8px; color:var(--muted); font-size:11px; }
.event-external-suggestions .event-external-create-contact { display:block; min-height:36px; color:var(--primary-dark); background:#f2faf7; font-size:11.5px; font-weight:750; text-align:left; }
.event-external-contact-dialog { width:min(660px,calc(100vw - 2rem)); }
.event-external-contact-dialog .dialog-heading p { margin:.18rem 0 0; color:var(--muted); font-size:12px; }
.event-external-contact-grid { margin-top:.75rem; }
.event-external-contact-dialog .event-action-status { min-height:22px; margin:.55rem 0 0; }
.event-readonly-data { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; margin:0; }
.event-readonly-data > div { padding:.55rem; border-radius:7px; background:var(--surface-soft); }
.event-readonly-data .wide { grid-column:1/-1; }
.event-readonly-data dt { color:var(--muted); font-size:11px; font-weight:700; }
.event-readonly-data dd { margin:.18rem 0 0; font-size:13px; }
.event-affiliation-field { min-width:0; margin:0; padding:.5rem .6rem .6rem; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
.event-affiliation-field legend { padding:0 .28rem; color:var(--muted); font-size:11.5px; font-weight:750; }
.event-schedule-field { min-width:0; margin:0; padding:.5rem .6rem .6rem; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
.event-schedule-field legend { padding:0 .28rem; color:var(--muted); font-size:11.5px; font-weight:750; }
.event-schedule-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.42rem; }
.event-schedule-options label { display:block; min-width:0; cursor:pointer; }
.event-schedule-options input { position:absolute; opacity:0; pointer-events:none; }
.event-schedule-options span { display:flex; min-height:36px; align-items:center; justify-content:center; padding:.4rem .55rem; border:1px solid var(--line); border-radius:7px; color:var(--muted); background:#fff; font-size:12px; font-weight:700; text-align:center; transition:border-color .15s ease,background .15s ease,color .15s ease; }
.event-schedule-options input:checked + span { border-color:#70b3a8; color:var(--primary-dark); background:#e7f4f1; box-shadow:inset 0 0 0 1px rgba(15,111,97,.08); }
.event-schedule-options input:focus-visible + span { outline:2px solid var(--primary); outline-offset:2px; }
.event-affiliation-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; }
.event-affiliation-options label { display:flex; align-items:center; gap:.45rem; min-width:0; padding:.45rem .5rem; border:1px solid #dbe6e3; border-radius:7px; color:var(--text); background:#fff; cursor:pointer; }
.event-affiliation-options label:has(input:checked) { border-color:#83b9ae; background:#edf7f4; box-shadow:inset 0 0 0 1px rgba(18,123,106,.08); }
.event-affiliation-options input { width:17px; height:17px; min-height:0; margin:0; accent-color:var(--primary); }
.event-affiliation-options span { display:grid; min-width:0; }
.event-affiliation-options strong { font-size:12.5px; line-height:1.2; }
.event-affiliation-options small { overflow:hidden; color:var(--muted); font-size:10.5px; font-weight:500; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.event-partner-field { display:grid; gap:.45rem; min-width:0; padding:.55rem .6rem; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
.event-partner-heading { display:flex; align-items:center; justify-content:space-between; gap:.55rem; }
.event-partner-heading > span { display:grid; min-width:0; }
.event-partner-heading strong { color:var(--text); font-size:12px; line-height:1.25; }
.event-partner-heading small,.event-partner-permission-note { color:var(--muted); font-size:10.5px; font-weight:500; line-height:1.3; }
.event-partner-heading .button { flex:0 0 auto; min-height:30px; padding:5px 7px; font-size:11.5px; }
.event-partner-chips,.event-readonly-partners { display:flex; gap:.35rem; flex-wrap:wrap; min-width:0; }
.event-partner-chip,.event-readonly-partners > span { display:flex; align-items:center; gap:.4rem; max-width:100%; padding:.38rem .42rem .38rem .5rem; border:1px solid #dbe6e3; border-radius:7px; color:var(--text); background:#fff; box-shadow:0 1px 2px rgba(28,52,48,.04); }
.event-partner-chip > span,.event-readonly-partners > span { display:grid; min-width:0; }
.event-partner-chip strong,.event-readonly-partners strong { overflow:hidden; font-size:11.5px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.event-partner-chip small,.event-readonly-partners small { overflow:hidden; color:var(--muted); font-size:10px; font-weight:500; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.event-partner-chip.is-deleted { border-style:dashed; background:#f6f7f7; }
.event-partner-chip.is-manual { border-style:dashed; border-color:#b9d4ce; background:#f9fcfb; }
.event-partner-remove { display:grid; place-items:center; width:24px; height:24px; min-height:0; padding:0; border:0; border-radius:6px; color:#758481; background:transparent; font-size:17px; line-height:1; cursor:pointer; }
.event-partner-remove:hover,.event-partner-remove:focus-visible { color:var(--danger); background:#fff0f0; }
.event-partner-remove .icon { width:13px; height:13px; }
.event-partner-empty { color:var(--muted); font-size:11px; font-weight:500; }
.event-partner-empty[hidden] { display:none; }
.event-partner-search { display:grid; gap:.3rem; padding:.45rem; border-radius:7px; background:#f0f6f4; }
.event-partner-search[hidden] { display:none; }
.event-partner-search label { gap:.2rem; font-size:11px; }
.event-partner-search input { min-height:34px; padding:.35rem .5rem; font-size:12.5px; }
.event-partner-search > small { color:var(--muted); font-size:10.5px; font-weight:500; }
.event-partner-suggestions { display:grid; max-height:190px; overflow:auto; border:1px solid #d6e2df; border-radius:7px; background:#fff; box-shadow:0 7px 16px rgba(28,52,48,.1); }
.event-partner-suggestions[hidden] { display:none; }
.event-partner-suggestions button { display:grid; gap:2px; width:100%; padding:7px 8px; border:0; border-bottom:1px solid #edf2f1; color:var(--text); background:#fff; text-align:left; cursor:pointer; }
.event-partner-suggestions button:last-child { border-bottom:0; }
.event-partner-suggestions button:hover,.event-partner-suggestions button[data-active="true"] { background:#edf7f4; }
.event-partner-suggestions .event-partner-free-option { border-top:1px solid #cddeda; color:#165f55; background:#f3faf8; }
.event-partner-suggestions strong { font-size:12px; line-height:1.25; }
.event-partner-suggestions small { color:var(--muted); font-size:10.5px; font-weight:500; line-height:1.25; }
.event-partner-suggestion-empty { padding:8px; color:var(--muted); font-size:11px; }

/* Zeitlicher Verlauf oberhalb des Planungsbaums. */
.event-timeline { position:relative; z-index:3; min-height:calc(112px + var(--timeline-extra-height,0px)); margin:-.1rem 0 .65rem; padding:8px 18px 10px; overflow:visible; border:1px solid #d9e5e2; border-radius:10px; background:linear-gradient(180deg,#fff,#f8fbfa); transition:min-height .18s ease; }
.event-timeline-track { position:absolute; top:43px; right:18px; left:18px; height:3px; overflow:hidden; border-radius:99px; background:#dce6e3; }
.event-timeline.is-open-ended .event-timeline-track { background:linear-gradient(90deg,#dce6e3 0%,#dce6e3 88%,rgba(220,230,227,.18) 100%); }
.event-timeline-track > span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#8bb9b0,var(--primary)); transition:width .2s ease; }
.event-timeline-month-ticks { position:absolute; z-index:2; top:38px; right:18px; left:18px; height:13px; pointer-events:none; }
.event-timeline-month-tick { position:absolute; top:0; left:var(--timeline-position); width:1px; height:13px; background:#aab4b1; transform:translateX(-.5px); }
.event-timeline ol { position:relative; height:calc(92px + var(--timeline-extra-height,0px)); margin:0; padding:0; list-style:none; }
.event-timeline-marker { position:absolute; top:0; left:var(--timeline-position); width:11px; height:52px; text-align:center; transform:translateX(-50%); outline:none; }
.event-timeline-dot { position:absolute; top:31px; left:50%; width:11px; height:11px; border:2px solid #fff; border-radius:50%; background:#8da09c; box-shadow:0 0 0 2px #b9cbc7; transform:translateX(-50%); }
.event-timeline-caption { position:absolute; top:50px; left:50%; display:grid; justify-items:center; width:max-content; max-width:220px; text-align:center; transform:translate(calc(-50% + var(--timeline-caption-shift,0px)),calc(var(--timeline-lane) * 36px)); }
.event-timeline-caption time { color:#334a46; font-size:11.5px; font-weight:800; line-height:1.25; font-variant-numeric:tabular-nums; }
.event-timeline-caption > span { color:var(--muted); font-size:10.5px; font-weight:600; line-height:1.25; white-space:nowrap; }
.event-timeline-marker.is-today .event-timeline-caption { top:0; display:flex; align-items:center; flex-direction:column-reverse; transform:translateX(calc(-50% + var(--timeline-caption-shift,0px))); }
.event-timeline-marker.is-today .event-timeline-caption > span { color:#c92f2f; font-size:11px; font-weight:800; }
.event-timeline-marker.is-today .event-timeline-dot { background:#c92f2f; box-shadow:0 0 0 3px rgba(201,47,47,.22); }
.event-timeline-marker.is-event .event-timeline-dot { background:#fff; box-shadow:0 0 0 3px rgba(18,123,106,.16); border-color:var(--primary); }
.event-timeline-marker.is-today.is-event .event-timeline-dot { background:#c92f2f; border-color:#fff; box-shadow:0 0 0 3px rgba(201,47,47,.22),0 0 0 5px rgba(18,123,106,.12); }
.event-timeline-marker.has-workstep { z-index:4; cursor:help; }
.event-timeline-marker.has-workstep .event-timeline-dot { background:#3976a8; border-color:#fff; box-shadow:0 0 0 2px #9dbbd5; }
.event-timeline-marker.is-today.has-workstep .event-timeline-dot { background:#c92f2f; border-color:#fff; box-shadow:0 0 0 2px #c92f2f,0 0 0 5px rgba(201,47,47,.24); }
.event-timeline-tooltip { position:absolute; z-index:30; top:52px; left:50%; display:grid; gap:4px; width:max-content; max-width:310px; padding:7px 9px; border-radius:7px; color:#fff; background:#203b53; box-shadow:0 8px 20px rgba(22,44,62,.24); font-size:11.5px; line-height:1.3; text-align:left; opacity:0; visibility:hidden; transform:translate(-50%,4px); transition:opacity .13s ease,transform .13s ease,visibility .13s; pointer-events:none; }
.event-timeline-tooltip::before { content:""; position:absolute; top:-5px; left:50%; width:10px; height:10px; background:#203b53; transform:translateX(-50%) rotate(45deg); }
.event-timeline-tooltip strong { position:relative; font-size:11.5px; }
.event-timeline-tooltip > span { position:relative; display:block; max-width:290px; overflow-wrap:anywhere; font-weight:700; }
.event-timeline-tooltip small { color:#cbd9e5; font-size:10.5px; font-weight:500; }
.event-timeline-marker.has-workstep:hover .event-timeline-tooltip,.event-timeline-marker.has-workstep:focus-visible .event-timeline-tooltip { opacity:1; visibility:visible; transform:translate(-50%,0); }

/* Klassischer Hierarchiebaum: Stamm nach unten, jede Ebene nach rechts. */
.event-checklist-panel { min-width:0; }
.event-checklist-toolbar { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin:0 0 .6rem; padding:0 .15rem; }
.event-planning-heading { display:grid; gap:.18rem; min-width:0; }
.event-checklist-toolbar .event-planning-heading h2 { margin:0; color:var(--text); font-size:25px; font-weight:800; line-height:1.12; letter-spacing:-.025em; }
.event-planning-heading p { margin:0; color:var(--muted); font-size:13.5px; font-weight:550; line-height:1.35; }
.event-planning-heading p[hidden] { display:none; }
.event-section-kicker { color:var(--primary); font-size:11px; font-weight:700; line-height:1.2; letter-spacing:.09em; text-transform:uppercase; }
.event-checklist-toolbar-actions { display:flex; align-items:center; gap:.55rem; }
.event-drag-hint { display:flex; align-items:center; gap:.35rem; color:var(--muted); font-size:12px; font-weight:600; line-height:1.25; }
.event-drag-hint .icon { width:15px; height:15px; }
.event-tree-canvas { --tree-line:#91b8b0; --tree-indent:24px; --tree-connector:26px; position:relative; min-width:0; padding:16px 18px 18px; overflow:auto; border:1px solid #d7e4e0; border-radius:12px; background-color:#f8fbfa; background-image:radial-gradient(circle,rgba(91,130,122,.12) .7px,transparent .85px); background-size:24px 24px; box-shadow:inset 0 1px 0 rgba(255,255,255,.8); }
.event-tree-output-actions { position:absolute; z-index:6; top:11px; right:12px; display:flex; align-items:center; justify-content:flex-end; gap:4px; }
.event-tree-output-actions .button { min-height:30px; padding:.3rem .5rem; border-color:#c7d9d5; background:rgba(255,255,255,.94); box-shadow:0 2px 8px rgba(28,52,48,.08); font-size:10.5px; }
.event-tree-output-actions .button .icon { width:14px; height:14px; }
.event-tree-hub { position:relative; z-index:1; display:flex; align-items:center; gap:.55rem; width:max-content; max-width:min(620px,calc(100% - 285px)); min-height:44px; margin:0; padding:6px 10px; border:1px solid #8fbfb5; border-radius:8px; color:#fff; background:linear-gradient(135deg,#176f63,#0d564d); box-shadow:0 4px 12px rgba(13,86,77,.18); }
.event-tree-hub.has-branches::before { content:""; position:absolute; z-index:2; left:21px; bottom:-5px; width:9px; height:9px; border:2px solid #6fa99e; border-radius:50%; background:#f8fbfa; }
.event-tree-hub.has-branches::after { content:""; position:absolute; left:25px; top:100%; height:14px; border-left:2px solid var(--tree-line); }
.event-tree-hub > span { display:grid; place-items:center; width:30px; height:30px; border-radius:7px; background:rgba(255,255,255,.14); }
.event-tree-hub .icon { width:17px; height:17px; }
.event-tree-hub > div { display:grid; min-width:0; }
.event-tree-hub strong { overflow:hidden; font-size:14px; font-weight:700; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.event-tree-hub small { color:rgba(255,255,255,.78); font-size:11.5px; font-weight:500; line-height:1.3; font-variant-numeric:tabular-nums; }
.event-tree-root,.event-tree-children { position:relative; display:grid; grid-template-columns:minmax(0,1fr); align-items:start; gap:6px; list-style:none; }
.event-tree-root { margin:14px 0 0 25px; padding:0 0 0 var(--tree-connector); border-left:2px solid var(--tree-line); }
.event-tree-children { margin:7px 0 0 var(--tree-indent); padding:0 0 0 var(--tree-connector); border-left:2px solid color-mix(in srgb,var(--branch) 55%,#b9cec9); }
.event-tree-children[hidden] { display:none !important; }
.event-tree-children::before { content:""; position:absolute; left:-2px; top:-8px; height:8px; border-left:2px solid color-mix(in srgb,var(--branch) 55%,#b9cec9); }
.event-tree-node { --event-tree-package-column:380px; position:relative; display:grid; grid-template-columns:minmax(180px,var(--event-tree-package-column)) minmax(160px,1fr); column-gap:8px; align-items:start; min-width:0; width:100%; }
.event-tree-node:has(> .event-tree-item[data-event-depth="0"]) { --event-tree-package-column:494px; }
.event-tree-node:has(> .event-tree-item[data-event-depth="1"]) { --event-tree-package-column:442px; }
.event-tree-node:has(> .event-tree-item[data-event-depth="2"]) { --event-tree-package-column:390px; }
.event-tree-node:has(> .event-tree-item[data-event-depth="3"]) { --event-tree-package-column:338px; }
.event-tree-node:has(> .event-tree-item[data-event-depth="4"]) { --event-tree-package-column:286px; }
.event-tree-node > .event-tree-item { grid-column:1; grid-row:1; width:100%; max-width:380px; }
.event-tree-node > .event-tree-item.is-expanded { grid-column:1/-1; width:min(760px,calc(100% - 6px)); max-width:760px; }
.event-tree-node > .event-tree-children { grid-column:1/-1; }
.event-tree-node.is-newly-created > .event-tree-item { animation:event-node-created-pulse 1.8s ease-out both; }
@keyframes event-node-created-pulse {
    0%,35% { border-color:var(--primary); box-shadow:0 0 0 4px rgba(18,123,106,.2),0 4px 12px rgba(28,52,48,.12); }
    100% { border-color:color-mix(in srgb,var(--branch) 33%,#dbe5e2); box-shadow:0 2px 6px rgba(28,52,48,.07); }
}
.event-tree-root > .event-tree-node { --branch:#237c70; --branch-soft:#edf8f5; }
.event-tree-root > .event-tree-node:nth-child(6n+2) { --branch:#3976a8; --branch-soft:#eff6fb; }
.event-tree-root > .event-tree-node:nth-child(6n+3) { --branch:#aa7622; --branch-soft:#fff8e9; }
.event-tree-root > .event-tree-node:nth-child(6n+4) { --branch:#795c97; --branch-soft:#f7f2fb; }
.event-tree-root > .event-tree-node:nth-child(6n+5) { --branch:#4f7b53; --branch-soft:#f0f7ef; }
.event-tree-root > .event-tree-node:nth-child(6n+6) { --branch:#a05663; --branch-soft:#fbf1f3; }
.event-tree-root > .event-tree-node { grid-template-columns:minmax(180px,var(--event-tree-package-column)) minmax(160px,1fr); }
.event-tree-root > .event-tree-node > .event-tree-item { border-width:2px; border-left-width:5px; box-shadow:0 3px 8px rgba(28,52,48,.09); }
.event-tree-root > .event-tree-node > .event-tree-item:not(.is-expanded) { max-width:494px; }
.event-tree-root > .event-tree-node::before,.event-tree-children > .event-tree-node::before { content:""; position:absolute; top:22px; right:100%; width:calc(var(--tree-connector) + 2px); border-top:2px solid var(--tree-line); }
.event-tree-children > .event-tree-node::before { border-color:color-mix(in srgb,var(--branch) 55%,#b9cec9); }
.event-tree-root > .event-tree-node:last-child::after,.event-tree-children > .event-tree-node:last-child::after { content:""; position:absolute; z-index:2; top:23px; right:calc(100% + var(--tree-connector) - 2px); bottom:-7px; width:4px; background:#f8fbfa; }

/* Knoten: Eine Zeile im Ruhezustand, Details nur bei Bedarf. */
.event-tree-item { position:relative; z-index:1; width:min(380px,calc(100% - 6px)); min-width:0; margin:0; padding:0; border:1px solid color-mix(in srgb,var(--branch) 33%,#dbe5e2); border-left:3px solid var(--branch); border-radius:7px; background:color-mix(in srgb,var(--branch) 3%,#fff); box-shadow:0 2px 6px rgba(28,52,48,.07); transition:width .18s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease,opacity .15s ease; }
.event-tree-item.is-expanded { width:min(760px,calc(100% - 6px)); }
.event-tree-node:where(:has(> .event-tree-children)) > .event-tree-item::after { content:""; position:absolute; z-index:2; left:calc(var(--tree-indent) - 4px); bottom:-4px; width:8px; height:8px; border:2px solid color-mix(in srgb,var(--branch) 72%,#fff); border-radius:50%; background:#f8fbfa; }
.event-tree-item .event-node-row { border-radius:6px; background:var(--branch-soft); }
.event-tree-root > .event-tree-node > .event-tree-item .event-node-row { border-radius:7px; }
.event-tree-item:hover,.event-tree-item:focus-within { border-color:color-mix(in srgb,var(--branch) 58%,#cfdad7); box-shadow:0 3px 9px rgba(28,52,48,.08); }
.event-tree-item.is-complete { opacity:.7; background:#f4f8f7; }
.event-tree-item.is-complete .event-node-label { color:var(--muted); text-decoration:line-through; }
.event-node-row { position:relative; display:grid; grid-template-columns:28px 20px minmax(0,1fr) auto auto auto 28px; gap:5px; align-items:center; min-height:44px; padding:3px 8px 3px 5px; }
.event-node-row > .event-node-label { cursor:pointer; }
.event-node-row-readonly { grid-template-columns:20px minmax(0,1fr) auto auto auto 28px; }
.event-node-row > .event-drag-handle { grid-column:1; }
.event-node-row > .event-complete-check { grid-column:2; }
.event-node-row > .event-node-label { grid-column:3; }
.event-node-row > .event-responsible-avatars--header { grid-column:4; }
.event-node-row > .event-node-meta { grid-column:5; }
.event-node-row > .event-branch-toggle { grid-column:6; }
.event-node-row > .event-node-toggle { grid-column:7; }
.event-node-row-readonly > .event-node-status-icon { grid-column:1; }
.event-node-row-readonly > .event-node-label { grid-column:2; }
.event-node-row-readonly > .event-responsible-avatars--header { grid-column:3; }
.event-node-row-readonly > .event-node-meta { grid-column:4; }
.event-node-row-readonly > .event-branch-toggle { grid-column:5; }
.event-node-row-readonly > .event-node-toggle { grid-column:6; }
.event-drag-handle,.event-node-toggle { display:grid; place-items:center; width:28px; height:30px; min-height:0; padding:0; border:0; border-radius:7px; color:#70817e; background:transparent; }
.event-drag-handle { cursor:grab; touch-action:manipulation; }
.event-drag-handle:active { cursor:grabbing; }
.event-drag-handle:hover,.event-node-toggle:hover,.event-branch-toggle:hover { color:var(--branch); background:rgba(23,111,99,.08); }
.event-drag-handle .icon,.event-node-toggle .icon { width:16px; height:16px; }
.event-node-toggle { transition:color .16s ease,background .16s ease; }
.event-tree-item.is-expanded .event-node-toggle { color:var(--branch); background:rgba(23,111,99,.1); }
.event-branch-toggle { display:flex; align-items:center; justify-content:center; gap:1px; min-width:35px; height:30px; min-height:0; padding:0 4px; border:0; border-radius:7px; color:#6b7d79; background:rgba(255,255,255,.58); cursor:pointer; transition:color .16s ease,background .16s ease; }
.event-branch-count { min-width:13px; font-size:10.5px; font-weight:800; line-height:1; font-variant-numeric:tabular-nums; }
.event-branch-chevron { display:block; font-size:20px; font-weight:500; line-height:1; transform:translateY(-1px); transition:transform .16s ease; }
.event-branch-toggle[aria-expanded="true"] { color:var(--branch); background:rgba(23,111,99,.1); }
.event-branch-toggle[aria-expanded="true"] .event-branch-chevron { transform:translateY(-1px) rotate(90deg); }
.event-complete-check { display:grid; place-items:center; min-width:0; }
.event-complete-check input { width:18px; height:18px; min-height:0; margin:0; accent-color:var(--branch); }
.event-node-label { display:-webkit-box; min-width:0; overflow:hidden; color:var(--text); font-size:13.5px; font-weight:700; line-height:1.22; letter-spacing:-.01em; overflow-wrap:anywhere; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.event-node-online-format { display:inline-flex; align-items:center; margin-inline-start:.38rem; padding:.08rem .38rem; border:1px solid #b8cee2; border-radius:999px; color:#28557e; background:#edf5fc; font-size:10.5px; font-weight:800; line-height:1.35; letter-spacing:0; vertical-align:.08rem; white-space:nowrap; }
.event-node-cost-total { color:#8a651a; font-size:.9em; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; }
.event-tree-root > .event-tree-node > .event-tree-item .event-node-label { font-size:14px; }
.event-item-label { min-width:0; min-height:36px; padding:.4rem .55rem; color:var(--text); background:#fff; font-size:14px; font-weight:600; line-height:1.25; }
.event-node-meta { display:flex; align-items:center; justify-content:flex-end; gap:.25rem; min-width:0; max-width:138px; padding-inline:2px; overflow:visible; }
.event-responsible-avatars { display:inline-flex; align-items:center; justify-content:flex-end; min-width:24px; padding-left:5px; }
.event-responsible-avatars[hidden] { display:none !important; }
.event-responsible-avatars--header { display:none; }
.event-tree-item.is-expanded .event-responsible-avatars--header { display:inline-flex; }
.event-responsible-avatar { position:relative; display:grid; place-items:center; width:24px; height:24px; margin-left:-6px; overflow:hidden; border:2px solid #fff; border-radius:50%; color:var(--primary-dark); background:#e5f1ee; box-shadow:0 1px 3px rgba(22,52,47,.18); font-size:9px; font-weight:900; line-height:1; }
.event-responsible-avatar:first-child { margin-left:0; }
.event-responsible-avatar.is-external { color:#5e4479; background:#eee8f4; }
.event-responsible-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:translate(var(--avatar-x,0),var(--avatar-y,0)) scale(var(--avatar-zoom,1)); transform-origin:center; }
.event-responsible-avatar-more { color:#4b625d; background:#f1f5f4; font-size:8px; }
.event-node-kind,.event-node-chip { display:inline-flex; flex:0 1 auto; align-items:center; gap:3px; min-width:0; min-height:22px; max-width:110px; padding:2px 6px; overflow:hidden; border-radius:99px; color:#53645f; background:#eef3f2; font-size:11px; font-weight:650; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.event-node-chip[hidden] { display:none; }
.event-tree-root > .event-tree-node > .event-tree-item .event-node-kind { color:var(--branch); background:rgba(255,255,255,.78); }
.event-node-chip .icon { width:11px; height:11px; }
.event-node-chip--intermediate { color:#765717; background:#fff4d8; }
.event-node-reminder { display:grid; flex:0 0 auto; place-items:center; width:22px; height:22px; border:1px solid #f6b7b2; border-radius:50%; color:#b42318; background:#fee9e7; box-shadow:0 1px 3px rgba(180,35,24,.12); }
.event-node-reminder[hidden] { display:none; }
.event-node-reminder .icon { width:13px; height:13px; stroke-width:2.2; }
.event-node-data-dot { width:7px; height:7px; flex:0 0 auto; margin-inline:2px; border-radius:50%; background:var(--branch); box-shadow:0 0 0 3px color-mix(in srgb,var(--branch) 13%,transparent); }
.event-node-row .autosave-status { position:absolute; z-index:3; right:72px; bottom:-9px; display:none; min-height:20px; max-width:112px; padding:2px 6px; overflow:hidden; font-size:11px; font-weight:700; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.event-node-row .autosave-status[data-state="saving"],.event-node-row .autosave-status[data-state="error"] { display:inline-flex; }
.event-node-row .autosave-status[data-state="saved"],.event-node-row .autosave-status:empty { display:none; }
.event-node-status-icon { display:grid; place-items:center; width:18px; height:18px; border:1px solid #cbd8d5; border-radius:5px; color:var(--primary); background:#fff; }
.event-node-status-icon .icon { width:12px; height:12px; }
.event-node-row-readonly > strong { min-width:0; }
.event-node-value-preview { position:relative; display:grid; gap:2px; margin:0; padding:6px 8px; overflow:hidden; border:1px solid #dce7e4; border-left:2px solid color-mix(in srgb,var(--branch) 48%,#dce7e4); border-radius:6px; color:#263936; background:#fff; box-shadow:0 1px 3px rgba(28,52,48,.05); }
.event-node-value-preview > .event-responsible-avatars--preview { position:absolute; z-index:2; top:5px; right:6px; }
.event-node-value-preview:has(> .event-responsible-avatars--preview) > .event-node-value-label,.event-node-value-preview:has(> .event-responsible-avatars--preview) > .event-node-value-text { padding-right:72px; }
.event-tree-node > .event-node-value-preview { grid-column:2; grid-row:1; align-content:center; width:100%; max-width:none; min-height:44px; }
.event-tree-node:has(> .event-tree-item.is-expanded) > .event-node-value-preview { display:none !important; }
.event-node-value-preview[hidden] { display:none; }
.event-node-value-preview[role="button"] { cursor:pointer; transition:border-color .16s ease,box-shadow .16s ease; }
.event-node-value-preview[role="button"]:hover,.event-node-value-preview[role="button"]:focus-visible { border-color:color-mix(in srgb,var(--branch) 58%,#dce7e4); outline:0; box-shadow:0 0 0 3px color-mix(in srgb,var(--branch) 12%,transparent),0 3px 10px rgba(28,52,48,.08); }
.event-current-user-mention { display:inline; padding:.06em .34em; border:1px solid #e1a329; border-radius:5px; color:#174c43; background:#ffedaa; box-shadow:0 1px 0 rgba(121,78,0,.14),inset 0 -2px 0 rgba(216,145,13,.22); font:inherit; font-weight:850; text-decoration:none; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.event-current-user-mention::before { content:'@'; margin-right:.08em; color:#a25d00; font-weight:900; }
.event-tree-node > .event-node-value-preview.is-expanded { max-width:none; align-content:start; }
.event-node-value-label { color:#71817e; font-size:10.5px; font-weight:700; line-height:1.2; letter-spacing:.035em; text-transform:uppercase; }
.event-node-value-text { display:-webkit-box; overflow:hidden; font-size:12.5px; font-weight:600; line-height:1.35; overflow-wrap:anywhere; white-space:pre-line; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.event-node-value-preview.is-expanded .event-node-value-text { display:block; overflow:visible; white-space:pre-line; -webkit-line-clamp:initial; }
.event-node-value-preview--currency .event-node-value-text { color:var(--primary-dark); font-variant-numeric:tabular-nums; }
.event-node-value-preview--milestone { border-left-color:#b27a1f; background:#fffaf0; }
.event-node-value-preview--milestone .event-node-value-text { color:#76500f; font-weight:750; font-variant-numeric:tabular-nums; }
.event-tree-item.event-node-type-milestone .event-node-kind { color:#76500f; background:#fff5dc; }
.event-milestone-date input { color:#5f430f; background:#fffdf8; font-weight:700; font-variant-numeric:tabular-nums; }
.event-tree-item.is-expanded .event-node-value-text { display:block; overflow:visible; -webkit-line-clamp:initial; }
.event-item-fields,.event-node-readonly-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; margin:0; padding:.5rem .55rem .55rem; border-top:1px solid color-mix(in srgb,var(--branch) 22%,#e1e9e7); background:color-mix(in srgb,var(--branch) 4%,#fff); }
.event-item-fields[hidden],.event-node-readonly-details[hidden],.event-item-extras[hidden] { display:none !important; }
.event-item-fields label { display:grid; gap:3px; color:var(--muted); font-size:12px; font-weight:650; line-height:1.25; }
.event-item-fields input,.event-item-fields select,.event-item-fields textarea { min-height:36px; padding:.4rem .55rem; font-size:13.5px; line-height:1.3; }
.event-item-fields textarea { min-height:48px; }
.event-item-fields .wide { grid-column:1/-1; }
.event-address-field { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:.4rem; align-items:end; }
.event-address-field > label { min-width:0; }
.event-address-field .event-location-copy-button,.event-address-field .event-map-button { min-height:36px; white-space:nowrap; }
.event-address-field .event-location-copy-button { min-width:104px; }
.event-address-field .event-map-button { min-width:78px; }
.event-location-options { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,1fr); gap:.45rem; align-items:end; }
.event-location-bad-weather { display:flex !important; align-items:center; gap:.5rem !important; min-height:36px; padding:.4rem .55rem; border:1px solid var(--line); border-radius:7px; color:var(--text) !important; background:#fbfdfc; }
.event-location-bad-weather input { width:18px !important; height:18px !important; min-height:0 !important; margin:0; padding:0 !important; accent-color:var(--primary); }
.event-location-bad-weather span { font-size:12.5px; font-weight:650; }
.event-readonly-location-options { display:flex; gap:.5rem 1rem; flex-wrap:wrap; margin:0; padding:.5rem .6rem; border:1px solid #dce6e3; border-radius:7px; background:#fbfdfc; font-size:12px; }
.event-readonly-location-options span:last-child { color:#315f57; font-weight:700; }
.event-travel { display:grid; gap:.5rem; padding:.55rem; border:1px solid color-mix(in srgb,var(--branch) 32%,#d7e2df); border-radius:9px; background:color-mix(in srgb,var(--branch) 4%,#fbfdfc); }
.event-travel-heading { display:flex; align-items:center; justify-content:space-between; gap:.7rem; }
.event-travel-heading strong { color:var(--text); font-size:12px; }
.event-travel-round-trip { display:inline-flex !important; align-items:center; align-self:end; gap:.34rem !important; min-height:36px; margin:0; padding:.25rem .45rem; border:0; border-radius:7px; background:transparent; color:var(--muted) !important; font-size:10.5px !important; font-weight:700 !important; white-space:nowrap; cursor:pointer; }
.event-travel-round-trip:has(input:checked) { color:#294c46 !important; background:color-mix(in srgb,var(--branch) 7%,transparent); }
.event-travel-round-trip input[type="checkbox"] { width:15px !important; height:15px !important; min-height:0 !important; margin:0; padding:0 !important; accent-color:var(--primary); }
.event-travel-route-grid { display:grid; grid-template-columns:minmax(150px,.65fr) minmax(260px,1.35fr) auto; gap:.45rem; align-items:end; }
.event-travel-route-grid > label:first-child { grid-column:1; }
.event-travel-free-origin,.event-travel-origin-summary { grid-column:2 / 4; }
.event-travel-origin-summary { display:grid; gap:2px; min-height:36px; padding:.42rem .55rem; border:1px solid #d7e2df; border-radius:7px; background:#fff; }
.event-travel-origin-summary[hidden],.event-travel-free-origin[hidden] { display:none !important; }
.event-travel-origin-summary small { color:var(--muted); font-size:9.5px; font-weight:650; }
.event-travel-origin-summary span { overflow-wrap:anywhere; color:#38534e; font-size:12px; font-weight:700; }
.event-travel-destination-source { grid-column:1; }
.event-travel-destination { grid-column:2 / 4; }
.event-travel-distance { grid-column:1 / 3; }
.event-travel-distance { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.4rem; align-items:end; }
.event-travel-vias { display:grid; grid-column:1 / 4; gap:.32rem; }
.event-travel-via-rows { display:grid; gap:.32rem; }
.event-travel-via-row { display:grid; grid-template-columns:22px minmax(145px,.55fr) minmax(220px,1.45fr) 34px; gap:.35rem; align-items:center; }
.event-travel-via-row > span { color:var(--muted); font-size:10px; font-weight:800; text-align:right; }
.event-travel-via-row select,.event-travel-via-row input { min-width:0; }
.event-travel-via-row .icon-button { width:34px; height:34px; }
.event-travel-vias > .button { justify-self:start; min-height:30px; padding:.28rem .55rem; }
.event-travel-calculate { grid-column:3; min-height:36px; white-space:nowrap; }
.event-travel-status { min-height:16px; margin:0; color:var(--muted); font-size:10.5px; font-weight:650; }
.event-travel-status:empty { min-height:0; }
.event-travel-status[data-state="saving"] { color:#8a6416; }
.event-travel-status[data-state="saved"] { color:var(--primary); }
.event-travel-status[data-state="error"] { color:var(--danger); }
.event-travel-actions { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; }
.event-readonly-travel { display:grid; gap:.35rem; margin:.4rem 0; padding:.5rem .58rem; border:1px solid #dfc9b8; border-radius:7px; background:#fffaf6; }
.event-readonly-travel > strong { color:#7a3f18; font-size:11.5px; }
.event-readonly-travel p { display:grid; grid-template-columns:minmax(100px,.4fr) minmax(0,1fr); gap:.6rem; margin:0; padding-top:.3rem; border-top:1px solid #efe0d5; font-size:11.5px; }
.event-readonly-travel p span { color:var(--muted); }
.event-readonly-travel p b { overflow-wrap:anywhere; }
.event-emob { display:grid; gap:.55rem; padding:.58rem; border:1px solid color-mix(in srgb,var(--branch) 38%,#d8e0ef); border-radius:10px; background:color-mix(in srgb,var(--branch) 4%,#fbfcff); box-shadow:inset 3px 0 0 var(--branch); }
.event-emob-heading,.event-emob-section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:.65rem; }
.event-emob-heading > span,.event-emob-section-heading > span { display:grid; gap:1px; }
.event-emob-heading strong { color:var(--text); font-size:13px; }
.event-emob-heading small,.event-emob-section-heading small { color:var(--muted); font-size:10.5px; font-weight:500; }
.event-emob-heading output { padding:4px 8px; border-radius:99px; color:var(--branch); background:color-mix(in srgb,var(--branch) 10%,#fff); font-size:11px; font-weight:800; white-space:nowrap; }
.event-emob-basics { display:grid; grid-template-columns:minmax(220px,1.4fr) auto minmax(180px,.6fr); gap:.45rem; align-items:end; }
.event-emob-school { min-width:0; }
.event-emob-basics > button { min-height:36px; white-space:nowrap; }
.event-emob-contact,.event-emob-classes,.event-emob-materials,.event-emob-times { display:grid; gap:.42rem; padding:.5rem; border:1px solid #d8e0ef; border-radius:8px; background:#fff; }
.event-emob-section-heading strong { color:#343f76; font-size:12px; }
.event-emob-contact .event-line-person { display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; }
.event-emob-contact .event-line-person-tags { min-width:180px; flex:1 1 240px; }
.event-emob-contact-details { display:flex; gap:.35rem .8rem; flex-wrap:wrap; margin:0; padding:.4rem .5rem; border:1px solid #d9e1ef; border-radius:7px; color:#44506e; background:#f7f8fc; font-size:12px; font-weight:650; }
.event-emob-contact-details[hidden] { display:none; }
.event-emob-class-table,.event-emob-time-table { overflow:hidden; border:1px solid #dce3ef; border-radius:8px; background:#fff; }
.event-emob-class-head,.event-emob-class-row { display:grid; grid-template-columns:minmax(140px,1fr) minmax(130px,.6fr) 32px; gap:.4rem; align-items:center; padding:.35rem .42rem; }
.event-emob-class-head,.event-emob-time-head { min-height:29px; color:#65708c; background:#f1f3f9; font-size:9.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.event-emob-class-row { border-top:1px solid #e7ebf3; }
.event-emob-class-row:first-child { border-top:0; }
.event-emob-class-row input { width:100%; }
.event-emob-classes > button { justify-self:start; }
.event-emob-material-list { display:grid; gap:.35rem; }
.event-emob-material-row { display:grid; grid-template-columns:minmax(120px,1fr) auto auto minmax(165px,.8fr); gap:.55rem; align-items:center; min-height:42px; padding:.4rem .5rem; border:1px solid #e0e5ef; border-radius:7px; background:#fbfcff; font-size:11.5px; transition:background .14s ease,border-color .14s ease; }
.event-emob-material-row > strong { color:#303a61; font-size:12px; }
.event-emob-material-switch { gap:6px; color:#65708c; font-size:10.5px; }
.event-emob-material-switch b { min-width:70px; font-weight:750; }
.event-emob-material-switch input:checked + span { border-color:#4f60a8; background:#4f60a8; }
.event-emob-material-switch input:checked ~ b { color:#414f90; }
.event-emob-material-demand { color:#65708c; white-space:nowrap; }
.event-emob-stock { justify-self:end; padding:3px 7px; border-radius:99px; font-size:10.5px; font-weight:750; text-align:right; }
.event-emob-stock.is-enough { color:#206541; background:#eaf7ef; }
.event-emob-stock.is-low { color:#9a2f28; background:#fff0ee; }
.event-emob-stock.is-empty { color:#697873; background:#eef3f2; }
.event-emob-material-row.is-worksheets > button { justify-self:end; }
.event-emob-material-row.is-not-required { grid-template-columns:minmax(130px,1fr) auto; border-color:#e4e8ed; background:#f4f6f8; }
.event-emob-material-row.is-not-required > strong { color:#7b858f; }
.event-emob-material-row.is-not-required .event-emob-material-demand,.event-emob-material-row.is-not-required .event-emob-stock,.event-emob-material-row.is-not-required > button { display:none; }
.event-emob-mail-status { min-height:16px; margin:0; color:var(--muted); font-size:10.5px; font-weight:650; }
.event-emob-mail-status:empty { min-height:0; }
.event-emob-mail-status[data-state="saved"] { color:#206541; }
.event-emob-mail-status[data-state="error"] { color:var(--danger); }
.event-emob-time-head,.event-emob-time-row { display:grid; grid-template-columns:110px minmax(110px,.55fr) minmax(220px,1.45fr); gap:.4rem; align-items:center; padding:.35rem .42rem; }
.event-emob-time-row { min-height:43px; border-top:1px solid #e7ebf3; }
.event-emob-time-row label { min-width:0; }
.event-emob-time-row input { width:100%; }
.event-emob-time-row > strong { color:#3f496d; font-size:12px; }
.event-emob-teacher-check { display:flex !important; align-items:flex-start; gap:.5rem !important; padding:.5rem .58rem; border:1px solid #d8e0ef; border-radius:8px; color:#303a61 !important; background:#f7f8fc; }
.event-emob-teacher-check input { width:18px !important; height:18px !important; min-height:0 !important; margin:0; padding:0 !important; accent-color:#4f60a8; }
.event-emob-teacher-check span { font-size:12px; font-weight:700; }
.event-node-value-preview--um_emob { border-left-color:#4f60a8; background:#f8f9fd; }
.event-node-value-preview--um_emob .event-node-value-label { color:#414f90; }
.event-readonly-emob { display:grid; gap:.45rem; margin:.4rem 0; padding:.55rem; border:1px solid #d8e0ef; border-radius:8px; background:#f9faff; }
.event-readonly-emob > strong,.event-readonly-emob > div > strong { color:#343f76; font-size:12px; }
.event-readonly-emob dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.35rem; margin:0; }
.event-readonly-emob dl > div { padding:.4rem .45rem; border:1px solid #e1e6f0; border-radius:6px; background:#fff; }
.event-readonly-emob dt { color:#737d95; font-size:9.5px; font-weight:750; text-transform:uppercase; }
.event-readonly-emob dd { margin:.1rem 0 0; overflow-wrap:anywhere; font-size:11.5px; font-weight:650; }
.event-readonly-emob ul { display:grid; gap:.25rem; margin:.3rem 0 0; padding:0; list-style:none; }
.event-readonly-emob li { display:flex; justify-content:space-between; gap:.5rem; padding:.3rem .4rem; border-radius:5px; background:#fff; font-size:11.5px; }
.event-readonly-emob li b.is-enough { color:#206541; }
.event-readonly-emob li b.is-low { color:#a03a31; }
.event-readonly-emob-times li { display:grid; grid-template-columns:58px 100px minmax(0,1fr); justify-content:initial; }
.event-readonly-emob-teacher { margin:0; color:#7a4950; font-size:11.5px; font-weight:700; }
.event-readonly-emob-teacher.is-complete { color:#206541; }
.event-catering-fields { display:grid; gap:.45rem; }
.event-catering-contact-card { display:grid; gap:.42rem; padding:.5rem .55rem; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
.event-catering-contact-heading > span { display:grid; gap:1px; }
.event-catering-contact-heading strong { color:var(--text); font-size:12px; }
.event-catering-contact-heading small,.event-catering-contact-permission { color:var(--muted); font-size:10.5px; font-weight:500; }
.event-catering-contact-selection { display:flex; align-items:center; justify-content:space-between; gap:.5rem; min-width:0; padding:.42rem .48rem; border:1px solid #b9d8d1; border-radius:7px; background:#edf7f4; }
.event-catering-contact-selection[hidden] { display:none; }
.event-catering-contact-selection > span { display:grid; min-width:0; gap:1px; }
.event-catering-contact-selection strong,.event-catering-contact-selection small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.event-catering-contact-selection strong { color:#164f47; font-size:12px; }
.event-catering-contact-selection small { color:#58736d; font-size:10.5px; font-weight:500; }
.event-catering-contact-remove { display:grid; place-items:center; width:23px; height:23px; min-height:0; flex:0 0 auto; padding:0; border:0; border-radius:50%; color:#627a75; background:#fff; font-size:16px; cursor:pointer; }
.event-catering-contact-remove:hover,.event-catering-contact-remove:focus-visible { color:var(--danger); }
.event-catering-contact-actions { display:flex; gap:.35rem; flex-wrap:wrap; }
.event-catering-contact-actions .button { min-height:32px; padding:.32rem .55rem; font-size:11.5px; }
.event-catering-milestones { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.38rem; margin:0; padding:.45rem .55rem .55rem; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
.event-catering-milestones legend { padding:0 .25rem; color:var(--text); font-size:12px; font-weight:750; }
.event-catering-milestones label { display:grid !important; grid-template-columns:auto minmax(0,1fr); grid-template-rows:auto auto; gap:1px .38rem !important; align-items:center; min-width:0; padding:.42rem .45rem; border:1px solid #dce6e3; border-radius:7px; color:var(--text) !important; background:#fff; cursor:pointer; }
.event-catering-milestones label:has(input:checked) { border-color:#91c1b6; background:#edf7f4; }
.event-catering-milestones input { grid-column:1; grid-row:1 / span 2; width:17px; height:17px; min-height:0; margin:0; accent-color:var(--primary); }
.event-catering-milestones span { min-width:0; font-size:11.5px; font-weight:700; line-height:1.25; }
.event-catering-milestones small { color:var(--muted); font-size:10px; font-weight:500; }
.event-readonly-catering,.event-readonly-catering-milestones { margin:.4rem 0; padding:.45rem .55rem; border:1px solid var(--line); border-radius:7px; background:#fbfdfc; }
.event-readonly-catering-milestones > strong { font-size:11.5px; }
.event-readonly-catering-milestones ul { display:grid; gap:.22rem; margin:.3rem 0 0; padding:0; list-style:none; }
.event-readonly-catering-milestones li { display:grid; grid-template-columns:18px minmax(0,1fr) auto; gap:.35rem; align-items:center; color:var(--muted); font-size:11.5px; }
.event-readonly-catering-milestones li.is-complete { color:#185f55; }
.event-readonly-catering-milestones time { font-size:10.5px; font-variant-numeric:tabular-nums; }
.event-catering-contact-dialog,.event-program-speaker-dialog { width:min(680px,calc(100vw - 2rem)); }
.event-catering-contact-dialog .dialog-heading p,.event-program-speaker-dialog .dialog-heading p { margin:.18rem 0 0; color:var(--muted); font-size:12px; }
.event-catering-contact-search,.event-program-speaker-search { display:grid; gap:.25rem; color:var(--muted); font-size:11.5px; font-weight:700; }
.event-catering-contact-results,.event-program-speaker-results { display:grid; max-height:360px; margin-top:.55rem; overflow:auto; border:1px solid var(--line); border-radius:8px; background:#fff; }
.event-catering-contact-results > button,.event-program-speaker-results > button { display:grid; gap:2px; width:100%; min-height:46px; padding:.5rem .6rem; border:0; border-bottom:1px solid #edf2f1; color:var(--text); background:#fff; text-align:left; cursor:pointer; }
.event-program-speaker-results > button { grid-template-columns:auto minmax(0,1fr); gap:.5rem; align-items:center; }
.event-program-speaker-group { padding:.42rem .6rem .3rem; color:#355c55; background:#f6faf9; font-size:10px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.event-program-speaker-group.is-secondary { margin-top:.2rem; padding-top:.58rem; border-top:2px solid #cbd9d6; }
.event-catering-contact-results > button:last-child,.event-program-speaker-results > button:last-child { border-bottom:0; }
.event-catering-contact-results > button:hover,.event-program-speaker-results > button:hover { background:#edf7f4; }
.event-catering-contact-results strong,.event-catering-contact-results small,.event-program-speaker-results strong,.event-program-speaker-results small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.event-catering-contact-results small,.event-program-speaker-results small { color:var(--muted); font-size:10.5px; font-weight:500; }
.event-program-speaker-results > button > span:last-child { display:grid; min-width:0; gap:2px; }
.event-program-speaker-source { display:inline-flex; min-height:20px; padding:2px 6px; border-radius:99px; color:#536b66; background:#edf2f1; font-size:9.5px; font-weight:750; }
.event-catering-contact-empty,.event-program-speaker-empty { margin:0; padding:.75rem; color:var(--muted); font-size:12px; }
.event-program { display:grid; gap:.42rem; padding:.5rem .55rem; border:1px solid #c9d9ee; border-radius:9px; background:#f8fbff; box-shadow:inset 3px 0 0 #5d93c6; }
.event-program-heading { display:flex; align-items:baseline; justify-content:space-between; gap:.6rem; }
.event-program-heading strong { color:#244e76; font-size:12.5px; }
.event-program-heading small { color:#687b8d; font-size:10.5px; font-weight:500; }
.event-program-table { min-width:0; overflow:hidden; border:1px solid #d5e0ed; border-radius:8px; background:#fff; }
.event-program-table-head,.event-program-row { display:grid; grid-template-columns:28px 100px 88px 82px minmax(250px,1fr) 104px 32px; gap:.35rem; align-items:center; }
.event-program-table-head { min-height:30px; padding:0 .35rem; color:#64788b; background:#eef5fb; font-size:10px; font-weight:800; line-height:1.15; letter-spacing:.035em; text-transform:uppercase; }
.event-program-table-head > span:first-child { display:grid; place-items:center; }
.event-program-table-head .icon { width:13px; height:13px; }
.event-program-row { min-height:52px; padding:.38rem .35rem; border-top:1px solid #e5edf4; }
.event-program-row:first-child { border-top:0; }
.event-program-row[data-event-program-status="requested"] { background:#fffdf3; }
.event-program-row[data-event-program-status="reminded"] { background:#fff8f0; }
.event-program-row[data-event-program-status="confirmed"] { background:#f4faf6; }
.event-program-row[data-event-program-status="declined"] { background:#fff6f6; }
.event-program-row[data-event-program-status="ended"] { background:#f3f5f5; }
.event-program-drag { display:grid; place-items:center; width:27px; height:32px; min-height:0; padding:0; border:0; border-radius:6px; color:#71817e; background:transparent; cursor:grab; touch-action:manipulation; }
.event-program-drag:hover,.event-program-drag:focus-visible { color:#28557e; background:#eaf2fa; }
.event-program-drag:active { cursor:grabbing; }
.event-program-drag .icon { width:15px; height:15px; }
.event-program-row.is-dragging { opacity:.42; }
.event-program-row.is-drop-before { box-shadow:0 -3px 0 #3976a8; }
.event-program-row.is-drop-after { box-shadow:0 3px 0 #3976a8; }
.event-program-status-cell { display:grid; place-items:center; }
.event-program-row[data-event-program-status="requested"] .event-exhibitor-status > span { border-color:#d6aa19; background:#f4cf54; }
.event-program-row[data-event-program-status="reminded"] .event-exhibitor-status > span { border-color:#c76d18; background:#e58a32; }
.event-program-row[data-event-program-status="confirmed"] .event-exhibitor-status > span { border-color:#357d4e; background:#4e9c68; }
.event-program-row[data-event-program-status="declined"] .event-exhibitor-status > span { border-color:#a83f3f; background:#c85d5d; }
.event-program-row[data-event-program-status="ended"] .event-exhibitor-status > span { border-color:#65736f; background:#7d8a87; }
.event-program-time input { width:100%; min-height:34px; padding:.3rem .38rem; font-size:12.5px; font-weight:700; font-variant-numeric:tabular-nums; }
.event-program-duration { color:#526a7e; font-size:11.5px; font-weight:700; font-variant-numeric:tabular-nums; }
.event-program-content { display:grid; min-width:0; gap:.25rem; }
.event-program-content > input[data-event-program-point] { width:100%; min-height:34px; padding:.32rem .48rem; font-size:13px; font-weight:650; }
.event-program-speaker-line { display:flex; align-items:center; gap:.32rem; flex-wrap:wrap; min-width:0; }
.event-program-speaker-tag { display:inline-flex; align-items:center; gap:.28rem; max-width:100%; min-height:25px; padding:2px 3px 2px 7px; border:1px solid #c8d9ef; border-radius:99px; color:#28557e; background:#f2f7fc; }
.event-program-speaker-tag[hidden] { display:none; }
.event-program-speaker-tag .icon { width:12px; height:12px; flex:0 0 auto; }
.event-program-speaker-tag > span { min-width:0; overflow:hidden; font-size:10.5px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.event-program-speaker-tag button { display:grid; place-items:center; width:19px; height:19px; min-height:0; padding:0; border:0; border-radius:50%; color:#60758a; background:#fff; font-size:14px; cursor:pointer; }
.event-program-speaker-tag button:hover { color:var(--danger); }
.event-program-speaker-open { min-height:25px; padding:2px 7px; font-size:10.5px; }
.event-program-amount input { width:100%; min-height:34px; padding:.32rem .45rem; color:#69490f; font-size:12.5px; font-weight:750; font-variant-numeric:tabular-nums; text-align:right; }
.event-program-remove { width:28px; height:28px; color:var(--muted); font-size:17px; }
.event-program-total { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.75rem; align-items:center; min-height:38px; padding:.35rem 2.75rem .35rem .7rem; border-top:2px solid #c8d8e8; color:#244e76; background:#f3f8fc; }
.event-program-total output { font-size:13.5px; font-weight:850; font-variant-numeric:tabular-nums; }
.event-program-add { justify-self:start; }
.event-node-value-preview--program { border-left-color:#5d93c6; background:#f8fbff; }
.event-node-value-preview--program .event-node-value-label { color:#426f99; }
.event-readonly-program { display:grid; gap:.3rem; margin:.4rem 0; padding:.45rem .55rem; border:1px solid #c9d9ee; border-radius:7px; background:#f8fbff; }
.event-readonly-program > strong { color:#244e76; font-size:11.5px; }
.event-readonly-program > div { display:grid; }
.event-readonly-program [role="row"] { display:grid; grid-template-columns:84px 56px 80px minmax(0,1fr) 80px; gap:.4rem; align-items:start; padding:.3rem 0; border-top:1px solid #dce6f0; }
.event-readonly-program [role="row"]:first-child { border-top:0; }
.event-program-readonly-status { color:#52635f; font-size:10.5px; font-weight:800; }
.event-program-readonly-status[data-status="requested"] { color:#9a7610; }
.event-program-readonly-status[data-status="reminded"] { color:#a45815; }
.event-program-readonly-status[data-status="confirmed"] { color:#357d4e; }
.event-program-readonly-status[data-status="declined"] { color:#a83f3f; }
.event-program-readonly-status[data-status="ended"] { color:#56635f; }
.event-readonly-program time,.event-readonly-program [role="row"] > span:nth-child(3) { color:#526a7e; font-size:11px; font-weight:700; font-variant-numeric:tabular-nums; }
.event-readonly-program [role="row"] > span:nth-child(4) { display:grid; gap:1px; min-width:0; }
.event-readonly-program [role="row"] > span:nth-child(4) small { color:var(--muted); font-size:10.5px; font-weight:500; }
.event-readonly-program [role="row"] > strong:last-child { color:#69490f; text-align:right; font-variant-numeric:tabular-nums; }
.event-readonly-program .event-readonly-program-total { grid-template-columns:minmax(0,1fr) auto; padding-top:.45rem; border-top:2px solid #c8d8e8; color:#244e76; }
.event-technology { display:grid; gap:.42rem; padding:.5rem .55rem; border:1px solid #cbdcc8; border-radius:9px; background:#f8fcf7; box-shadow:inset 3px 0 0 #5f8c62; }
.event-technology-heading { display:flex; align-items:baseline; justify-content:space-between; gap:.6rem; }
.event-technology-heading strong { color:#315f35; font-size:12.5px; }
.event-technology-heading small { color:#6b7e69; font-size:10.5px; font-weight:500; }
.event-technology-table { min-width:0; overflow:hidden; border:1px solid #d6e3d4; border-radius:8px; background:#fff; }
.event-technology-table-head,.event-technology-row { display:grid; grid-template-columns:34px minmax(220px,1.15fr) minmax(180px,1fr) 34px 32px; gap:.35rem; align-items:center; }
.event-technology-table-head { min-height:30px; padding:0 .35rem; color:#687b66; background:#eff6ed; font-size:10px; font-weight:800; line-height:1.15; letter-spacing:.035em; text-transform:uppercase; }
.event-technology-table-head > span:first-child,.event-technology-table-head > span:nth-last-child(2) { display:grid; place-items:center; }
.event-technology-table-head .icon { width:13px; height:13px; }
.event-technology-row { min-height:46px; padding:.35rem; border-top:1px solid #e5ece3; }
.event-technology-row:first-child { border-top:0; }
.event-technology-row.is-complete { background:#f1f8ef; }
.event-technology-row.is-complete [data-event-technology-description] { color:#71816f; text-decoration:line-through; }
.event-technology-row > label { min-width:0; }
.event-technology-row input[type="text"],.event-technology-row input:not([type]) { width:100%; min-height:34px; padding:.32rem .48rem; font-size:13px; }
.event-technology-complete { display:grid !important; place-items:center; }
.event-technology-complete input { width:17px !important; height:17px; min-height:0 !important; margin:0; padding:0 !important; accent-color:#4f7b53; }
.event-technology-packing { display:grid !important; place-items:center; cursor:pointer; }
.event-technology-packing input { position:absolute; width:1px !important; height:1px !important; min-height:0 !important; opacity:0; pointer-events:none; }
.event-technology-packing span { display:grid; place-items:center; width:28px; height:28px; border:1px solid #d2ded0; border-radius:7px; color:#71816f; background:#f8fbf7; transition:color .15s ease,background .15s ease,border-color .15s ease,transform .15s ease; }
.event-technology-packing .icon { width:15px; height:15px; }
.event-technology-packing:hover span,.event-technology-packing:focus-within span { border-color:#7da080; color:#315f35; transform:translateY(-1px); }
.event-technology-packing.is-selected span { border-color:#4f7b53; color:#fff; background:#4f7b53; box-shadow:0 2px 6px rgba(49,95,53,.18); }
.event-technology-remove { width:28px; height:28px; color:var(--muted); font-size:17px; }
.event-technology-add { justify-self:start; }
.event-node-value-preview--technology { border-left-color:#5f8c62; background:#f8fcf7; }
.event-node-value-preview--technology .event-node-value-label { color:#467149; }
.event-readonly-technology { display:grid; gap:.3rem; margin:.4rem 0; padding:.45rem .55rem; border:1px solid #cbdcc8; border-radius:7px; background:#f8fcf7; }
.event-readonly-technology > strong { color:#315f35; font-size:11.5px; }
.event-readonly-technology > div { display:grid; }
.event-readonly-technology [role="row"] { display:grid; grid-template-columns:18px minmax(150px,1fr) minmax(120px,1fr); gap:.45rem; align-items:start; padding:.34rem 0; border-top:1px solid #dfe9dd; }
.event-readonly-technology [role="row"]:first-child { border-top:0; }
.event-readonly-technology [role="row"] > span:first-child { color:#748272; }
.event-readonly-technology [role="row"].is-complete > span:first-child { color:#4f7b53; }
.event-readonly-technology [role="row"].is-complete > strong { color:#71816f; text-decoration:line-through; }
.event-readonly-technology [role="row"] > span:last-child { color:var(--muted); font-size:11.5px; white-space:pre-line; }
.event-packing { display:grid; gap:.42rem; padding:.5rem .55rem; border:1px solid #cbd6d3; border-radius:9px; background:#f8fbfa; box-shadow:inset 3px 0 0 #647873; }
.event-packing-heading { display:flex; align-items:baseline; justify-content:space-between; gap:.6rem; }
.event-packing-heading strong { color:#3f514d; font-size:12.5px; }
.event-packing-heading small { color:#687a76; font-size:10.5px; font-weight:600; }
.event-packing-table { min-width:0; overflow:hidden; border:1px solid #d7e0de; border-radius:8px; background:#fff; }
.event-packing-table-head,.event-packing-row { display:grid; grid-template-columns:34px minmax(220px,1.15fr) minmax(180px,1fr) 32px; gap:.35rem; align-items:center; }
.event-packing-table-head { min-height:30px; padding:0 .35rem; color:#526762; background:#eff4f2; font-size:10px; font-weight:800; line-height:1.15; letter-spacing:.035em; text-transform:uppercase; }
.event-packing-table-head > span:first-child { display:grid; place-items:center; }
.event-packing-table-head .icon { width:13px; height:13px; }
.event-packing-row { min-height:46px; padding:.35rem; border-top:1px solid #e3e9e7; }
.event-packing-row:first-child { border-top:0; }
.event-packing-row.is-from-technology { background:#fbfdfc; }
.event-packing-row.is-complete { background:#edf4f1; }
.event-packing-row.is-complete [data-event-packing-description] { color:#71817d; text-decoration:line-through; }
.event-packing-row > label { position:relative; min-width:0; }
.event-packing-row input[type="text"],.event-packing-row input:not([type]) { width:100%; min-height:34px; padding:.32rem .48rem; font-size:13px; }
.event-packing-row.is-from-technology > label:nth-of-type(2) input { padding-left:29px; }
.event-packing-source-icon { position:absolute; z-index:1; top:9px; left:8px; display:grid; color:#4f7b53; pointer-events:none; }
.event-packing-source-icon[hidden] { display:none; }
.event-packing-source-icon .icon { width:14px; height:14px; }
.event-packing-complete { display:grid !important; place-items:center; }
.event-packing-complete input { width:17px !important; height:17px; min-height:0 !important; margin:0; padding:0 !important; accent-color:#647873; }
.event-packing-remove { width:28px; height:28px; color:var(--muted); font-size:17px; }
.event-packing-add { justify-self:start; }
.event-node-value-preview--packing { border-left-color:#647873; background:#f8fbfa; }
.event-node-value-preview--packing .event-node-value-label { color:#3f514d; }
.event-readonly-packing { display:grid; gap:.3rem; margin:.4rem 0; padding:.45rem .55rem; border:1px solid #cbd6d3; border-radius:7px; background:#f8fbfa; }
.event-readonly-packing > strong { color:#3f514d; font-size:11.5px; }
.event-readonly-packing > div { display:grid; }
.event-readonly-packing [role="row"] { display:grid; grid-template-columns:18px minmax(150px,1fr) minmax(120px,1fr); gap:.45rem; align-items:start; padding:.34rem 0; border-top:1px solid #dde5e2; }
.event-readonly-packing [role="row"]:first-child { border-top:0; }
.event-readonly-packing [role="row"] > span:first-child { color:#74827f; }
.event-readonly-packing [role="row"].is-complete > span:first-child { color:#3f645b; }
.event-readonly-packing [role="row"].is-complete > strong { color:#71817d; text-decoration:line-through; }
.event-readonly-packing [role="row"] > span:last-child { color:var(--muted); font-size:11.5px; white-space:pre-line; }
.event-advertising-materials { display:grid; gap:.42rem; padding:.5rem .55rem; border:1px solid #c8dce3; border-radius:9px; background:#f7fbfc; box-shadow:inset 3px 0 0 #477e91; }
.event-advertising-heading { display:flex; align-items:baseline; justify-content:space-between; gap:.6rem; }
.event-advertising-heading strong { color:#285e72; font-size:12.5px; }
.event-advertising-heading small { color:#657c84; font-size:10.5px; font-weight:500; }
.event-advertising-list { display:grid; gap:.3rem; }
.event-advertising-row { display:grid; grid-template-columns:30px minmax(160px,1fr) 30px; gap:.35rem; align-items:center; min-height:42px; padding:.3rem .35rem; border:1px solid #d9e6ea; border-radius:7px; background:#fff; }
.event-advertising-row.is-complete { background:#edf7f9; }
.event-advertising-row.is-complete [data-event-advertising-label] { color:#718187; text-decoration:line-through; }
.event-advertising-complete { display:grid !important; place-items:center; }
.event-advertising-complete input { width:18px !important; height:18px; min-height:0 !important; margin:0; padding:0 !important; accent-color:#477e91; }
.event-advertising-row [data-event-advertising-label] { width:100%; min-height:34px; padding:.32rem .48rem; font-size:13px; }
.event-advertising-remove { width:28px; height:28px; color:var(--muted); font-size:17px; }
.event-advertising-add { justify-self:start; }
.event-node-value-preview--advertising { border-left-color:#477e91; background:#f4fafc; }
.event-node-value-preview--advertising .event-node-value-label { color:#285e72; }
.event-readonly-advertising { display:grid; gap:.3rem; margin:.4rem 0; padding:.45rem .55rem; border:1px solid #c8dce3; border-radius:7px; background:#f7fbfc; }
.event-readonly-advertising > strong { color:#285e72; font-size:11.5px; }
.event-readonly-advertising ul { display:grid; gap:.2rem; margin:0; padding:0; list-style:none; }
.event-readonly-advertising li { display:grid; grid-template-columns:18px minmax(0,1fr); gap:.35rem; }
.event-readonly-advertising li > span:first-child { color:#718187; font-weight:800; }
.event-readonly-advertising li.is-complete > span:first-child { color:#477e91; }
.event-readonly-advertising li.is-complete > span:last-child { color:#718187; text-decoration:line-through; }
.event-costs { display:grid; gap:.45rem; padding:.52rem .58rem; border:1px solid #e2cf9f; border-radius:9px; background:#fffaf0; box-shadow:inset 3px 0 0 #a97720; }
.event-costs-heading { display:flex; align-items:baseline; justify-content:space-between; gap:.65rem; }
.event-costs-heading strong { color:#725016; font-size:12.5px; }
.event-costs-heading [data-event-cost-heading-total] { font-variant-numeric:tabular-nums; }
.event-costs-heading small { color:#806d49; font-size:10.5px; font-weight:500; }
.event-cost-table { overflow:hidden; border:1px solid #eadbb8; border-radius:7px; background:#fff; }
.event-cost-table-head,.event-cost-row { display:grid; grid-template-columns:minmax(180px,1.1fr) minmax(120px,.55fr) minmax(180px,1fr) 32px; gap:.35rem; align-items:center; }
.event-cost-table-head { min-height:30px; padding:0 .35rem; color:#765b25; background:#fff4db; font-size:10px; font-weight:800; line-height:1.15; letter-spacing:.035em; text-transform:uppercase; }
.event-cost-row { min-height:43px; padding:.32rem .35rem; border-top:1px solid #f0e4ca; }
.event-cost-row > label { display:block; min-width:0; }
.event-cost-row input { width:100%; min-height:34px; padding:.32rem .48rem; font-size:13px; }
.event-cost-row [data-event-cost-amount] { color:#69490f; font-weight:750; font-variant-numeric:tabular-nums; text-align:right; }
.event-cost-remove { width:28px; height:28px; color:var(--muted); font-size:17px; }
.event-cost-total { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.75rem; align-items:center; min-height:39px; padding:.38rem 2.75rem .38rem .7rem; border-top:2px solid #dfc786; color:#654710; background:#fff8e8; }
.event-cost-total output { font-size:14px; font-weight:850; font-variant-numeric:tabular-nums; }
.event-cost-add { justify-self:start; }
.event-node-value-preview--costs { border-left-color:#a97720; background:#fffaf0; }
.event-node-value-preview--costs .event-node-value-label,.event-node-value-preview--costs .event-node-value-text { color:#725016; }
.event-node-value-preview--costs .event-node-value-text { font-weight:800; font-variant-numeric:tabular-nums; }
.event-participants { display:grid; gap:.45rem; padding:.52rem .58rem; border:1px solid #bfd2c3; border-radius:9px; background:#f7fbf7; box-shadow:inset 3px 0 0 #3f7044; }
.event-participants-heading { display:flex; align-items:baseline; justify-content:space-between; gap:.65rem; }
.event-participants-heading strong { color:#315f35; font-size:12.5px; }
.event-participants-heading small { color:#5f7762; font-size:10.5px; font-weight:500; text-align:right; }
.event-participant-table { border:1px solid #d7e2d8; border-radius:7px; background:#fff; }
.event-participant-table-head,.event-participant-row { display:grid; grid-template-columns:28px minmax(180px,1.05fr) minmax(210px,1.2fr) 150px 125px 150px 32px; gap:.35rem; align-items:center; }
.event-participant-table-head { min-height:30px; padding:0 .35rem; color:#315f35; background:#edf5ee; font-size:10px; font-weight:800; line-height:1.15; letter-spacing:.035em; text-transform:uppercase; }
.event-participant-table-head > span:first-child,.event-participant-table-head > span:last-child { text-align:center; }
.event-participant-row { position:relative; min-height:48px; padding:.34rem .35rem; border-top:1px solid #e2ebe3; transition:background .14s ease; }
.event-participant-row[data-event-participant-status="accepted"] { background:#f2faf4; }
.event-participant-row[data-event-participant-status="maybe"] { background:#fffaf0; }
.event-participant-row[data-event-participant-status="declined"] { background:#fff5f5; }
.event-participant-row > label { display:block; min-width:0; }
.event-participant-row input,.event-participant-row select { width:100%; min-height:34px; padding:.32rem .48rem; font-size:12.5px; }
.event-participant-row [data-event-participant-status] { font-weight:750; }
.event-participant-row[data-event-participant-status="accepted"] [data-event-participant-status] { color:#2e6b43; border-color:#9dc9ad; background:#e9f6ed; }
.event-participant-row[data-event-participant-status="maybe"] [data-event-participant-status] { color:#7a5b12; border-color:#dfc982; background:#fff7d8; }
.event-participant-row[data-event-participant-status="declined"] [data-event-participant-status] { color:#8f3939; border-color:#e0a1a1; background:#fdeaea; }
.event-participant-drag { display:grid; place-items:center; width:26px; height:30px; min-height:0; padding:0; border:0; border-radius:6px; color:#71817e; background:transparent; cursor:grab; touch-action:manipulation; }
.event-participant-drag:hover,.event-participant-drag:focus-visible { color:#315f35; background:#e6f0e7; }
.event-participant-drag:active { cursor:grabbing; }
.event-participant-drag .icon { width:15px; height:15px; }
.event-participant-row.is-dragging,.event-participant-category-row.is-dragging { opacity:.42; }
.event-participant-row.is-drop-before::before,.event-participant-category-row.is-drop-before::before,.event-participant-row.is-drop-after::after,.event-participant-category-row.is-drop-after::after { content:""; position:absolute; z-index:2; right:.35rem; left:.35rem; height:3px; border-radius:99px; background:#2f6b39; }
.event-participant-row.is-drop-before::before,.event-participant-category-row.is-drop-before::before { top:-2px; }
.event-participant-row.is-drop-after::after,.event-participant-category-row.is-drop-after::after { bottom:-2px; }
.event-participant-category-row { position:relative; display:grid; grid-template-columns:28px minmax(0,1fr) 32px; gap:.35rem; align-items:center; min-height:44px; padding:.34rem .35rem; border-top:1px solid #c9daca; background:#e7f1e8; }
.event-participant-category-row > label { display:block; min-width:0; }
.event-participant-category-row input { width:100%; min-height:34px; padding:.32rem .48rem; border-color:#9fbea3; color:#234f29; background:#f8fcf8; font-size:13px; font-weight:850; }
.event-participant-category-row > input:not([type="hidden"]) { grid-column:2; }
.event-participant-remove { width:28px; height:28px; color:var(--muted); font-size:17px; }
.event-participant-actions { display:flex; flex-wrap:wrap; gap:.4rem; justify-content:flex-start; }
.event-participant-add,.event-participant-category-add { justify-self:start; }
.event-participant-copy { display:flex; flex-wrap:wrap; gap:.5rem; justify-content:flex-end; padding-top:.15rem; }
.event-participant-copy .button { min-width:190px; justify-content:center; }
.event-exhibitors { display:grid; gap:.45rem; padding:.52rem .58rem; border:1px solid #d9c9bd; border-radius:9px; background:#fcf9f7; box-shadow:inset 3px 0 0 #946f59; }
.event-exhibitors-heading { display:flex; align-items:baseline; justify-content:space-between; gap:.65rem; }
.event-exhibitors-heading strong { color:#6b5040; font-size:12.5px; }
.event-exhibitors-heading small { color:#7d6c62; font-size:10.5px; font-weight:500; }
.event-exhibitors.is-presenters { border-color:#bfd0df; background:#f7faff; box-shadow:inset 3px 0 0 #28557e; }
.event-exhibitors.is-presenters .event-exhibitors-heading strong { color:#28557e; }
.event-exhibitors.is-presenters .event-exhibitors-heading small { color:#587087; }
.event-exhibitor-table { border:1px solid #e2d8d1; border-radius:7px; background:#fff; }
.event-exhibitor-table-head,.event-exhibitor-row { display:grid; grid-template-columns:104px minmax(240px,1fr) 130px 82px 32px; gap:.35rem; align-items:center; }
.event-exhibitors.is-presenters .event-exhibitor-table-head,.event-exhibitors.is-presenters .event-exhibitor-row { grid-template-columns:28px 104px minmax(240px,1fr) 130px 82px 32px; }
.event-exhibitor-table-head { min-height:30px; padding:0 .35rem; color:#705749; background:#f5efeb; font-size:10px; font-weight:800; line-height:1.15; letter-spacing:.035em; text-transform:uppercase; }
.event-exhibitor-table-head > span:first-child,.event-exhibitor-table-head > span:nth-last-child(-n+2) { text-align:center; }
.event-exhibitors.is-presenters .event-exhibitor-table-head > span:nth-child(2) { text-align:center; }
.event-exhibitor-row { position:relative; min-height:48px; padding:.34rem .35rem; border-top:1px solid #eee6e1; transition:background .14s ease; }
.event-exhibitor-drag { display:grid; place-items:center; width:26px; height:30px; min-height:0; padding:0; border:0; border-radius:6px; color:#71817e; background:transparent; cursor:grab; touch-action:manipulation; }
.event-exhibitor-drag:hover,.event-exhibitor-drag:focus-visible { color:#28557e; background:#e8f0f7; }
.event-exhibitor-drag:active { cursor:grabbing; }
.event-exhibitor-drag .icon { width:15px; height:15px; }
.event-exhibitor-row.is-dragging { opacity:.42; }
.event-exhibitor-row.is-drop-before { box-shadow:0 -3px 0 #28557e; }
.event-exhibitor-row.is-drop-after { box-shadow:0 3px 0 #28557e; }
.event-exhibitor-row[data-event-exhibitor-status="requested"] { background:#fffdf3; }
.event-exhibitor-row[data-event-exhibitor-status="reminded"] { background:#fff8f0; }
.event-exhibitor-row[data-event-exhibitor-status="confirmed"] { background:#f4faf6; }
.event-exhibitor-row[data-event-exhibitor-status="declined"] { background:#fff6f6; }
.event-exhibitor-row[data-event-exhibitor-status="ended"] { background:#f3f5f5; }
.event-exhibitor-status-cell { display:grid; place-items:center; }
.event-exhibitor-status { display:grid; grid-template-columns:18px minmax(0,1fr); gap:.3rem; align-items:center; width:96px; min-height:30px; padding:3px 5px; border:1px solid #d6dedd; border-radius:99px; color:#52635f; background:#fff; cursor:pointer; }
.event-exhibitor-status > span { width:16px; height:16px; border:1px solid #aebbb8; border-radius:50%; background:#fff; box-shadow:inset 0 0 0 2px #fff; }
.event-exhibitor-status small { overflow:hidden; font-size:9.5px; font-weight:800; line-height:1; text-align:left; text-overflow:ellipsis; white-space:nowrap; }
.event-exhibitor-row[data-event-exhibitor-status="requested"] .event-exhibitor-status > span { border-color:#d6aa19; background:#f4cf54; }
.event-exhibitor-row[data-event-exhibitor-status="reminded"] .event-exhibitor-status > span { border-color:#c76d18; background:#e58a32; }
.event-exhibitor-row[data-event-exhibitor-status="confirmed"] .event-exhibitor-status > span { border-color:#357d4e; background:#4e9c68; }
.event-exhibitor-row[data-event-exhibitor-status="declined"] .event-exhibitor-status > span { border-color:#a83f3f; background:#c85d5d; }
.event-exhibitor-row[data-event-exhibitor-status="ended"] .event-exhibitor-status > span { border-color:#65736f; background:#7d8a87; }
.event-exhibitor-contact-search { position:relative; min-width:0; }
.event-exhibitor-row input[type="search"],.event-exhibitor-row [data-event-exhibitor-amount] { width:100%; min-height:34px; padding:.32rem .48rem; font-size:13px; }
.event-exhibitor-row [data-event-exhibitor-amount] { color:#69490f; font-weight:750; font-variant-numeric:tabular-nums; text-align:right; }
.event-exhibitor-contact-suggestions { position:absolute; top:calc(100% + 3px); right:0; left:0; z-index:25; display:grid; max-height:250px; overflow:auto; border:1px solid #cfdad7; border-radius:7px; box-shadow:0 8px 22px rgba(25,47,43,.18); background:#fff; }
.event-exhibitor-contact-suggestions[hidden] { display:none; }
.event-exhibitor-contact-suggestions > button { display:grid; gap:2px; min-height:43px; padding:.45rem .55rem; border:0; border-bottom:1px solid #edf2f1; color:var(--text); background:#fff; text-align:left; cursor:pointer; }
.event-exhibitor-contact-suggestions > button:hover,.event-exhibitor-contact-suggestions > button[data-active="true"] { background:#edf7f4; }
.event-exhibitor-contact-suggestions strong,.event-exhibitor-contact-suggestions small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.event-exhibitor-contact-suggestions small { color:var(--muted); font-size:10px; font-weight:500; }
.event-exhibitor-contact-empty { padding:.55rem; color:var(--muted); font-size:10.5px; line-height:1.35; }
.event-exhibitor-confirmed { display:grid !important; place-items:center; }
.event-exhibitor-confirmed input { width:18px; height:18px; min-height:0; margin:0; accent-color:#4e9c68; }
.event-exhibitor-remove { width:28px; height:28px; color:var(--muted); font-size:17px; }
.event-exhibitor-total { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.75rem; align-items:center; min-height:39px; padding:.38rem 2.75rem .38rem .7rem; border-top:2px solid #cfb7a8; color:#624838; background:#faf5f2; }
.event-exhibitor-total output { font-size:14px; font-weight:850; font-variant-numeric:tabular-nums; }
.event-exhibitor-add { justify-self:start; }
.event-node-value-preview--exhibitors { border-left-color:#946f59; background:#fcf9f7; }
.event-node-value-preview--exhibitors .event-node-value-label { color:#6b5040; }
.event-node-value-preview--presenters { border-left-color:#28557e; background:#f7faff; }
.event-node-value-preview--presenters .event-node-value-label { color:#28557e; }
.event-invoice-fields { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr); gap:.5rem; padding:.55rem; border:1px solid color-mix(in srgb,var(--branch) 34%,#dde4e2); border-radius:8px; background:var(--branch-soft); }
.event-invoice-fields label { min-width:0; }
.event-invoice-fields > .wide { grid-column:1/-1; }
.event-invoice-customer { display:flex; align-items:center; gap:.45rem; min-width:0; }
.event-invoice-customer-heading { flex:1 1 220px; min-width:0; }
.event-invoice-customer-heading > span { display:grid; gap:1px; }
.event-invoice-customer-heading strong { font-size:11.5px; }
.event-invoice-customer-heading small { color:var(--muted); font-size:10px; }
.event-invoice-customer-selection { display:inline-flex; align-items:center; gap:.3rem; min-width:0; max-width:360px; padding:4px 4px 4px 8px; border:1px solid color-mix(in srgb,var(--branch) 38%,#cfdad7); border-radius:99px; background:#fff; }
.event-invoice-customer-selection[hidden] { display:none; }
.event-invoice-customer-selection .icon { width:13px; height:13px; color:var(--branch); }
.event-invoice-customer-selection strong { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.event-invoice-customer-selection button { display:grid; place-items:center; width:20px; height:20px; min-height:0; padding:0; border:0; border-radius:50%; color:#657773; background:#f4f7f6; font-size:15px; cursor:pointer; }
.event-invoice-customer-selection button:hover,.event-invoice-customer-selection button:focus-visible { color:var(--danger); background:#fff; }
.event-invoice-sevdesk { display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; align-items:center; gap:.45rem; padding:.48rem .55rem; border:1px solid #d7e2df; border-radius:7px; background:#fff; }
.event-invoice-sevdesk[hidden] { display:none; }
.event-invoice-sevdesk > div { display:grid; gap:1px; min-width:0; }
.event-invoice-sevdesk > div strong { color:var(--text); font-size:11px; }
.event-invoice-sevdesk > div span,.event-invoice-sevdesk > div small { overflow:hidden; color:var(--muted); font-size:10.5px; line-height:1.3; text-overflow:ellipsis; }
.event-invoice-sevdesk.is-found { border-color:#b9d9d0; background:#f3faf7; }
.event-invoice-sevdesk.is-found .badge { color:#176455; background:#e1f1ec; }
.event-invoice-sevdesk.is-not_found { border-color:#e5c58f; background:#fff9ed; }
.event-invoice-sevdesk.is-error { border-color:#e2b7b7; background:#fff5f5; }
.event-readonly-invoice { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; margin:.4rem 0; }
.event-readonly-invoice > div { min-width:0; padding:.48rem .55rem; border:1px solid color-mix(in srgb,var(--branch) 30%,#dde4e2); border-radius:7px; background:var(--branch-soft); }
.event-readonly-invoice dt { color:var(--branch); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.025em; }
.event-readonly-invoice dd { margin:.15rem 0 0; overflow-wrap:anywhere; color:var(--text); font-size:12px; font-weight:700; }
.event-readonly-invoice a { color:var(--branch); }
.event-readonly-costs { display:grid; gap:.35rem; margin:.4rem 0; padding:.48rem .55rem; border:1px solid #e2cf9f; border-radius:7px; background:#fffaf0; }
.event-readonly-costs > strong { color:#725016; font-size:11.5px; font-variant-numeric:tabular-nums; }
.event-readonly-costs > div { display:grid; }
.event-readonly-costs [role="row"] { display:grid; grid-template-columns:minmax(130px,1fr) auto minmax(100px,1fr); gap:.55rem; align-items:start; padding:.34rem 0; border-top:1px solid #eee0bf; }
.event-readonly-costs [role="row"] > strong { color:#654710; font-variant-numeric:tabular-nums; white-space:nowrap; }
.event-readonly-costs [role="row"] > span:last-child { color:var(--muted); font-size:11.5px; }
.event-readonly-costs .event-readonly-cost-total { grid-template-columns:minmax(0,1fr) auto; border-top:2px solid #dfc786; }
.event-readonly-exhibitors { display:grid; gap:.35rem; margin:.4rem 0; padding:.48rem .55rem; border:1px solid #d9c9bd; border-radius:7px; background:#fcf9f7; }
.event-readonly-exhibitors > strong { color:#6b5040; font-size:11.5px; }
.event-readonly-exhibitors.is-presenters { border-color:#bfd0df; background:#f7faff; }
.event-readonly-exhibitors.is-presenters > strong { color:#28557e; }
.event-readonly-exhibitors > div { display:grid; }
.event-readonly-exhibitors [role="row"] { display:grid; grid-template-columns:90px minmax(150px,1fr) auto 82px; gap:.55rem; align-items:center; padding:.34rem 0; border-top:1px solid #e9ded7; }
.event-exhibitor-readonly-status { display:inline-flex; justify-content:center; padding:3px 7px; border:1px solid #cbd5d2; border-radius:99px; color:#53635f; background:#fff; font-size:9.5px; font-weight:800; }
.event-exhibitor-readonly-status[data-status="requested"] { border-color:#e5cd72; color:#7c6512; background:#fff8d8; }
.event-exhibitor-readonly-status[data-status="reminded"] { border-color:#e3a76c; color:#854c17; background:#fff0df; }
.event-exhibitor-readonly-status[data-status="confirmed"] { border-color:#9dc9ad; color:#2e6b43; background:#e9f6ed; }
.event-exhibitor-readonly-status[data-status="declined"] { border-color:#e0a1a1; color:#8f3939; background:#fdeaea; }
.event-exhibitor-readonly-status[data-status="ended"] { border-color:#b8c1bf; color:#4f5d59; background:#eef1f0; }
.event-readonly-exhibitors [role="row"] > span:nth-child(3) { color:#654710; font-weight:750; font-variant-numeric:tabular-nums; white-space:nowrap; }
.event-readonly-exhibitors [role="row"] > span:nth-child(4) { color:#2e6b43; font-size:10.5px; font-weight:800; }
.event-readonly-exhibitors .event-readonly-exhibitor-total { grid-template-columns:minmax(0,1fr) auto; border-top:2px solid #cfb7a8; color:#624838; }
.event-readonly-participants { display:grid; gap:.35rem; margin:.4rem 0; padding:.48rem .55rem; border:1px solid #bfd2c3; border-radius:7px; background:#f7fbf7; }
.event-readonly-participants > strong { color:#315f35; font-size:11.5px; }
.event-readonly-participants > div { display:grid; }
.event-readonly-participants [role="row"] { display:grid; grid-template-columns:minmax(150px,1fr) minmax(180px,1.1fr) 100px 85px 110px; gap:.55rem; align-items:center; padding:.34rem 0; border-top:1px solid #dfe9e0; }
.event-readonly-participants .event-readonly-participant-category { grid-template-columns:minmax(0,1fr); margin-top:.15rem; padding:.42rem .55rem; border-top:2px solid #8eae92; color:#234f29; background:#e2eee4; font-size:12px; }
.event-readonly-participants a { color:#315f35; overflow-wrap:anywhere; }
.event-readonly-participants > small { color:#5f7762; font-size:10.5px; font-weight:650; }
.event-participant-readonly-status { display:inline-flex; justify-content:center; padding:3px 7px; border:1px solid #cbd5d2; border-radius:99px; color:#53635f; background:#fff; font-size:9.5px; font-weight:800; }
.event-participant-readonly-status[data-status="accepted"] { border-color:#9dc9ad; color:#2e6b43; background:#e9f6ed; }
.event-participant-readonly-status[data-status="maybe"] { border-color:#dfc982; color:#7a5b12; background:#fff7d8; }
.event-participant-readonly-status[data-status="declined"] { border-color:#e0a1a1; color:#8f3939; background:#fdeaea; }
.event-meetings { display:grid; gap:.45rem; padding:.52rem .58rem; border:1px solid #d8c7e7; border-radius:9px; background:#fbf8fe; box-shadow:inset 3px 0 0 #795c97; }
.event-meetings-heading { display:flex; align-items:baseline; justify-content:space-between; gap:.65rem; }
.event-meetings-heading strong { color:#5e4479; font-size:12.5px; }
.event-meetings-heading small { color:#77688a; font-size:10.5px; font-weight:500; }
.event-meeting-table { overflow:hidden; border:1px solid #e1d6eb; border-radius:7px; background:#fff; }
.event-meeting-table-head,.event-meeting-row { display:grid; grid-template-columns:minmax(170px,1fr) minmax(290px,1.35fr) 58px 34px 32px; gap:.35rem; align-items:center; }
.event-meeting-table-head { min-height:30px; padding:0 .35rem; color:#654c7c; background:#f4edf9; font-size:10px; font-weight:800; line-height:1.15; letter-spacing:.035em; text-transform:uppercase; }
.event-meeting-table-head > span:nth-last-child(-n+3) { display:grid; place-items:center; text-align:center; }
.event-meeting-table-head .icon { width:14px; height:14px; }
.event-meeting-row { min-height:44px; padding:.32rem .35rem; border-top:1px solid #ebe3f1; }
.event-meeting-row > label { display:block; min-width:0; }
.event-meeting-row input { width:100%; min-height:34px; padding:.32rem .48rem; font-size:13px; }
.event-meeting-datetime { display:grid !important; grid-template-columns:28px minmax(125px,1fr) minmax(82px,.62fr); gap:.3rem; align-items:center; }
.event-meeting-datetime input[type="hidden"] { display:none; }
.event-meeting-weekday { display:grid; place-items:center; min-height:28px; border-radius:6px; color:#624a78; background:#f0e8f6; font-size:11px; font-weight:850; }
.event-meeting-online { display:grid !important; place-items:center; }
.event-meeting-online input { width:18px; height:18px; min-height:0; margin:0; padding:0; accent-color:#795c97; }
.event-meeting-row.is-online { background:#fcfaff; }
.event-meeting-link-toggle,.event-meeting-remove { width:28px; height:28px; color:var(--muted); }
.event-meeting-link-toggle .icon { width:15px; height:15px; }
.event-meeting-link-toggle.has-link { color:#5e4479; background:#efe7f6; }
.event-meeting-remove { color:#8a5260; font-size:17px; }
.event-meeting-link-editor { display:grid !important; grid-column:1/-1; grid-template-columns:20px minmax(0,1fr); gap:.4rem; align-items:center; margin:.05rem 0 .18rem; padding:.36rem .45rem; border:1px solid #ded1e9; border-radius:7px; color:#795c97; background:#faf7fd; }
.event-meeting-link-editor[hidden] { display:none !important; }
.event-meeting-link-editor .icon { width:16px; height:16px; }
.event-meeting-link-editor input { min-height:34px; background:#fff; }
.event-meeting-add { justify-self:start; }
.event-node-value-preview--meeting_dates { border-left-color:#795c97; background:#fbf8fe; }
.event-node-value-preview--meeting_dates .event-node-value-label { color:#5e4479; }
.event-node-value-preview--meeting_dates .event-node-value-text { color:#473659; font-variant-numeric:tabular-nums; }
.event-readonly-meetings { display:grid; gap:.35rem; margin:.4rem 0; padding:.48rem .55rem; border:1px solid #d8c7e7; border-radius:7px; background:#fbf8fe; }
.event-readonly-meetings > strong { color:#5e4479; font-size:11.5px; }
.event-readonly-meetings > div { display:grid; }
.event-readonly-meetings [role="row"] { display:grid; grid-template-columns:minmax(130px,1fr) minmax(175px,auto) 64px 28px; gap:.5rem; align-items:center; padding:.4rem 0; border-top:1px solid #e7dded; }
.event-readonly-meetings [role="row"] time { color:#473659; font-size:11.5px; font-weight:700; font-variant-numeric:tabular-nums; }
.event-readonly-meeting-online { color:var(--muted); font-size:11px; font-weight:700; }
.event-readonly-meeting-online.is-online { color:#5e4479; }
.event-readonly-meeting-link { display:grid; place-items:center; width:27px; height:27px; border-radius:6px; color:#fff; background:#795c97; }
.event-readonly-meeting-link .icon { width:14px; height:14px; }
.event-date-list { display:grid; gap:.45rem; padding:.52rem .58rem; border:1px solid #d8c7e7; border-radius:9px; background:#fbf8fe; box-shadow:inset 3px 0 0 #6b4f88; }
.event-date-list-heading { display:flex; align-items:baseline; justify-content:space-between; gap:.65rem; }
.event-date-list-heading strong { color:#5e4479; font-size:12.5px; }
.event-date-list-heading small { color:#77688a; font-size:10.5px; font-weight:500; }
.event-date-list-table { overflow:hidden; border:1px solid #e1d6eb; border-radius:7px; background:#fff; }
.event-date-list-head,.event-date-row { display:grid; grid-template-columns:minmax(210px,1.25fr) minmax(285px,1.15fr) 32px; gap:.35rem; align-items:center; }
.event-date-list-head { min-height:30px; padding:0 .35rem; color:#654c7c; background:#f4edf9; font-size:10px; font-weight:800; line-height:1.15; letter-spacing:.035em; text-transform:uppercase; }
.event-date-row { min-height:44px; padding:.32rem .35rem; border-top:1px solid #ebe3f1; }
.event-date-row > label { min-width:0; }
.event-date-row input { width:100%; min-height:34px; padding:.32rem .48rem; font-size:13px; }
.event-date-datetime { position:relative; display:grid !important; grid-template-columns:minmax(130px,1fr) minmax(82px,.62fr); gap:.3rem; }
.event-date-datetime .icon { position:absolute; z-index:1; top:10px; left:9px; width:15px; height:15px; color:#795c97; pointer-events:none; }
.event-date-datetime input { font-variant-numeric:tabular-nums; }
.event-date-datetime input[type="date"] { padding-left:31px; }
.event-date-datetime input[type="hidden"] { display:none; }
.event-date-remove { width:28px; height:28px; color:#8a5260; font-size:17px; }
.event-date-add { justify-self:start; }
.event-node-value-preview--dates { border-left-color:#6b4f88; background:#fbf8fe; }
.event-node-value-preview--dates .event-node-value-label { color:#5e4479; }
.event-readonly-dates { display:grid; gap:.35rem; margin:.4rem 0; padding:.48rem .55rem; border:1px solid #d8c7e7; border-radius:7px; background:#fbf8fe; }
.event-readonly-dates > strong { color:#5e4479; font-size:11.5px; }
.event-readonly-dates ul { display:grid; gap:.28rem; margin:0; padding:0; list-style:none; }
.event-readonly-dates li { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.7rem; align-items:center; padding:.3rem 0; border-top:1px solid #e7dded; }
.event-readonly-dates li:first-child { border-top:0; }
.event-readonly-dates time { color:#5e4479; font-size:11.5px; font-weight:750; font-variant-numeric:tabular-nums; }
.event-invitation-formal-check { display:flex !important; align-items:center; gap:.55rem !important; min-height:42px; padding:.55rem .65rem; border:1px solid #dfbdca; border-radius:8px; color:#69364a !important; background:#fff7fa; font-size:12.5px !important; font-weight:750 !important; cursor:pointer; }
.event-invitation-formal-check input { flex:0 0 auto; width:18px; height:18px; min-height:0; margin:0; padding:0; accent-color:#ad597f; }
.event-work-steps.event-invitation-dispatch { border-color:#dfbdca; background:#fffafd; box-shadow:inset 3px 0 0 #be6c91; }
.event-work-steps.event-invitation-dispatch .event-work-steps-heading strong { color:#843e60; }
.event-invitation-warning { color:#f00000; font-size:11px; font-weight:900; line-height:1.3; }
.event-invitation-warning[hidden] { display:none; }
.event-invitation-warning--preview { display:inline; margin:0; color:#ff0000 !important; font-size:13px; font-weight:950; line-height:1.25; letter-spacing:.005em; }
.event-work-steps.event-invitation-dispatch .event-invitation-deadline { grid-template-columns:28px minmax(220px,1fr) minmax(185px,220px) auto; gap:.4rem; min-height:48px; padding:.38rem .48rem; border:1px solid #e69aaa; border-radius:8px; background:#fff2f5; box-shadow:inset 3px 0 0 #f00000; }
.event-invitation-deadline-icon { display:grid; place-items:center; color:#e00000; }
.event-invitation-deadline-icon .icon { width:18px; height:18px; }
.event-invitation-deadline > strong { color:#9e1028; font-size:12px; line-height:1.3; }
.event-invitation-deadline .event-work-step-date .icon { color:#c11a34; }
.event-invitation-deadline .event-work-step-reminder input { accent-color:#e00000; }
.event-invitation-formal-readonly { display:flex; align-items:center; gap:.45rem; padding:.5rem .58rem; border:1px solid #e2c6d1; border-radius:7px; color:#714257; background:#fff8fb; font-size:12px; font-weight:750; }
.event-invitation-formal-readonly > span { color:#9a496f; font-size:16px; font-weight:900; }
.event-invitation-formal-readonly.is-checked { border-color:#d99ab6; background:#fff3f8; }
.event-readonly-work-steps.event-readonly-invitations { border-color:#dfbdca; background:#fffafd; }
.event-readonly-work-steps.event-readonly-invitations > strong { color:#843e60; }
.event-readonly-work-steps .event-readonly-invitation-deadline { padding:.42rem .48rem; border:1px solid #e69aaa; border-radius:7px; background:#fff2f5; box-shadow:inset 3px 0 0 #f00000; }
.event-readonly-invitation-deadline > .event-readonly-work-step-state { color:#e00000; }
.event-readonly-invitation-deadline > .event-readonly-work-step-state .icon { width:15px; height:15px; }
.event-readonly-invitation-deadline > strong { color:#9e1028; font-size:11.5px; }
.event-node-value-preview--invitations { border-left-color:#be6c91; background:#fff8fb; }
.event-node-value-preview--invitations .event-node-value-label { color:#843e60; }
.event-work-steps { display:grid; gap:.4rem; padding:.48rem .55rem; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
.event-work-steps-heading { display:flex; align-items:baseline; justify-content:space-between; gap:.6rem; }
.event-work-steps-heading strong { color:var(--text); font-size:12px; line-height:1.25; }
.event-work-steps-heading small { color:var(--muted); font-size:10.5px; font-weight:500; }
.event-work-step-list { display:grid; gap:.3rem; margin:0; padding:0; list-style:none; }
.event-work-step-row { display:grid; grid-template-columns:25px 22px minmax(150px,1fr) minmax(185px,220px) auto 29px; gap:.3rem; align-items:center; padding:.28rem .32rem; border:1px solid #d8d2e9; border-left:3px solid #766ca8; border-radius:7px; background:#f4f2fa; transition:opacity .15s ease,box-shadow .15s ease,transform .15s ease; }
.event-work-step-drag { display:grid; place-items:center; width:25px; height:30px; min-height:0; padding:0; border:0; border-radius:6px; color:#71817e; background:transparent; cursor:grab; touch-action:manipulation; }
.event-work-step-drag:hover,.event-work-step-drag:focus-visible { color:var(--primary); background:#e9f3f0; }
.event-work-step-drag:active { cursor:grabbing; }
.event-work-step-drag .icon { width:15px; height:15px; }
.event-work-step-complete { display:grid !important; place-items:center; min-width:0; }
.event-work-step-complete input { width:18px; height:18px; min-height:0; margin:0; accent-color:#766ca8; }
.event-work-step-date { position:relative; display:block !important; min-width:0; }
.event-work-step-date .icon { position:absolute; z-index:1; top:10px; left:9px; width:15px; height:15px; color:var(--muted); pointer-events:none; }
.event-work-step-date input { width:100%; padding-left:30px; font-variant-numeric:tabular-nums; }
.event-work-step-date--split { display:grid !important; grid-template-columns:minmax(120px,1fr) minmax(72px,.58fr); gap:.3rem; }
.event-work-step-date--split input { min-width:0; }
.event-work-step-date--split input[type="time"] { padding-left:.45rem; }
.event-work-step-date--split input[type="hidden"] { display:none; }
.event-work-step-reminder { display:flex !important; align-items:center; gap:.28rem !important; min-height:36px; padding:0 .35rem; color:var(--text) !important; white-space:nowrap; }
.event-work-step-reminder input { width:16px; height:16px; min-height:0; margin:0; accent-color:var(--primary); }
.event-work-step-reminder span { font-size:11.5px; font-weight:650; }
.event-work-step-quick-actions { display:flex; grid-column:3/-1; min-width:0; padding:.25rem 0 .05rem; align-items:center; flex-wrap:nowrap; gap:.3rem; overflow-x:auto; border-top:1px dashed #d8d2e9; white-space:nowrap; scrollbar-width:thin; }
.event-work-step-quick-actions[hidden] { display:none; }
.event-work-step-quick-actions > span { flex:0 0 auto; margin-right:.1rem; color:var(--muted); font-size:10.5px; font-weight:750; }
.event-work-step-quick-actions .button { width:auto !important; min-width:max-content; min-height:28px; flex:0 0 auto; padding:.27rem .5rem; font-size:10.5px; white-space:nowrap; }
.event-work-step-quick-actions.is-saving { opacity:.68; }
.event-work-step-quick-actions.is-saving .button { cursor:wait; }
.event-invitation-deadline > .event-work-step-quick-actions { grid-column:2/-1; }
.event-work-step-remove { width:29px; height:29px; color:var(--muted); font-size:17px; }
.event-work-step-row.is-dragging { opacity:.42; }
.event-work-step-row.is-drop-before { box-shadow:0 -3px 0 var(--primary); }
.event-work-step-row.is-drop-after { box-shadow:0 3px 0 var(--primary); }
.event-work-step-row.is-complete { border-color:#d8dfdd; border-left-color:#899793; background:#f1f4f3; }
.event-work-step-row.is-complete > [data-event-work-step-text] { color:#71817e; background:#f7f9f8; text-decoration:line-through; }
.event-work-step-row.is-fixed { padding:2px 3px; border:1px solid #d9e5e2; border-radius:7px; background:#f4f8f7; }
.event-work-step-row.is-fixed > [data-event-work-step-text] { color:#29433e; background:#eef5f3; font-weight:700; cursor:default; }
.event-work-step-fixed { display:grid; place-items:center; width:29px; height:29px; color:#70817e; }
.event-work-step-fixed .icon { width:14px; height:14px; }
.event-work-step-add { justify-self:start; }
.event-announcement-link input { color:#215f88; font-weight:600; }
.event-node-value-preview--announcement { border-left-color:#477e91; background:#f4fafc; }
.event-node-value-preview--announcement .event-node-value-text { color:#285e72; }
.event-tree-node > .event-node-value-preview { border-color:color-mix(in srgb,var(--branch) 34%,#dce7e4); border-left-color:var(--branch); background:var(--branch-soft); }
.event-tree-node > .event-node-value-preview .event-node-value-label { color:var(--branch); }
.event-tree-node > .event-node-value-preview .event-node-value-text { color:color-mix(in srgb,var(--branch) 62%,#263936); }
.event-tree-node > .event-node-value-preview a { color:var(--branch); font-weight:800; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; }
.event-readonly-announcement-link { grid-column:1/-1; margin:0; overflow-wrap:anywhere; }
.event-responsibility-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; align-items:start; }
.event-work-package-people { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.42rem .55rem; align-items:start; min-width:0; padding:.52rem .58rem; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
.event-work-package-people-heading { grid-column:1/-1; display:flex; align-items:baseline; justify-content:space-between; gap:.6rem; min-width:0; }
.event-work-package-people-heading strong { color:var(--text); font-size:12px; line-height:1.25; }
.event-work-package-people-heading small { color:var(--muted); font-size:10.5px; font-weight:500; line-height:1.3; text-align:right; }
.event-work-package-people-tags { display:flex; align-items:center; align-self:center; gap:.3rem; min-width:0; flex-wrap:wrap; }
.event-work-package-people-empty { color:var(--muted); font-size:11px; font-weight:550; }
.event-work-package-people-empty[hidden] { display:none; }
.event-work-package-person-open { min-height:30px; white-space:nowrap; }
.event-work-package-person-open .icon { width:14px; height:14px; }
.event-external-manual { align-content:start; min-width:0; padding:.5rem .55rem; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
.event-node-readonly-details { display:block; color:var(--text); font-size:13px; line-height:1.4; }
.event-node-readonly-details p { margin:.25rem 0; }
.event-readonly-work-steps { display:grid; gap:.25rem; margin:.4rem 0; padding:.45rem .55rem; border:1px solid var(--line); border-radius:7px; background:#fbfdfc; }
.event-readonly-work-steps:not(.event-readonly-invitations) { border-color:#d8d2e9; border-left:3px solid #766ca8; background:#f4f2fa; }
.event-readonly-work-steps:not(.event-readonly-invitations) li { padding:.25rem .3rem; border-radius:5px; background:#faf9fd; }
.event-readonly-work-steps > strong { font-size:11.5px; }
.event-readonly-work-steps ul { display:grid; gap:.2rem; margin:0; padding:0; list-style:none; }
.event-readonly-work-steps li { display:grid; grid-template-columns:18px minmax(0,1fr) auto; gap:.35rem; align-items:start; padding:.15rem 0; }
.event-readonly-work-step-state { color:#7a8a86; font-weight:800; }
.event-readonly-work-steps li.is-complete .event-readonly-work-step-state { color:var(--primary); }
.event-readonly-work-steps li.is-complete > span:nth-child(2) { color:#71817e; text-decoration:line-through; }
.event-readonly-work-steps time { margin-left:.45rem; color:var(--muted); font-size:11.5px; font-weight:650; font-variant-numeric:tabular-nums; white-space:nowrap; }
.event-item-extras { display:grid; gap:.45rem; padding:0 .55rem .55rem; border-top:1px dashed color-mix(in srgb,var(--branch) 25%,#d9e4e1); background:color-mix(in srgb,var(--branch) 4%,#fff); }

body.has-event-work-package-dialog { overflow:hidden; }
.app-popup-window { min-width:0; background:#eef3f1; }
.app-popup-window .popup-shell { width:100%; max-width:none; min-height:100dvh; margin:0; padding:.8rem; }
.app-embedded-member-popup { overflow:auto; background:#fff; }
.app-embedded-member-popup .popup-shell { min-height:100dvh; padding:.75rem; }
.app-embedded-member-popup .member-detail-heading { display:none; }
.app-embedded-contact-popup { overflow:hidden; background:#fff; }
.app-embedded-contact-popup .popup-shell { min-height:100dvh; padding:0; }
.app-embedded-contact-popup .page-heading,
.app-embedded-contact-popup .contact-sticky-controls,
.app-embedded-contact-popup .contact-workbench > .table-wrap,
.app-embedded-contact-popup .contact-label-panel,
.app-embedded-contact-popup #contact-create-dialog { display:none !important; }
.app-embedded-contact-popup .contact-workbench { margin:0; padding:0; border:0; border-radius:0; box-shadow:none; }
.app-embedded-contact-popup .contacts-contact-dialog:not([hidden]) { position:fixed; inset:0; display:block; padding:0; }
.app-embedded-contact-popup .contacts-contact-dialog .addresslist-dialog-backdrop,
.app-embedded-contact-popup .contacts-contact-dialog .addresslist-dialog-header,
.app-embedded-contact-popup .contacts-contact-dialog .addresslist-dialog-actions { display:none; }
.app-embedded-contact-popup .contacts-contact-dialog .contact-dialog-panel { width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; padding:1rem; border:0; border-radius:0; box-shadow:none; }
.event-work-package-popup-backdrop { position:fixed; z-index:999; inset:0; background:rgba(15,31,28,.58); backdrop-filter:blur(2px); }
.event-work-package-popup-backdrop[hidden] { display:none; }
.event-work-package-popup-resize-handle { position:fixed; z-index:1001; display:block; width:24px; height:24px; border-radius:0 0 10px 0; cursor:nwse-resize; touch-action:none; }
.event-work-package-popup-resize-handle::after { content:""; position:absolute; right:5px; bottom:5px; width:10px; height:10px; border-right:2px solid #4f6d67; border-bottom:2px solid #4f6d67; opacity:.8; }
.event-work-package-popup-resize-handle[hidden] { display:none; }
.event-tree-node > .event-tree-item.is-work-package-popup,
.event-tree-root > .event-tree-node > .event-tree-item.is-work-package-popup {
    position:fixed;
    z-index:1000;
    inset:auto;
    width:min(1200px,calc(100vw - 2rem));
    max-width:none;
    min-width:480px;
    height:min(880px,calc(100dvh - 2rem));
    min-height:360px;
    margin:0;
    overflow:auto;
    resize:both;
    border:1px solid #b8cbc7;
    border-left:1px solid #b8cbc7;
    border-radius:12px;
    background:color-mix(in srgb,var(--branch) 4%,#fff);
    box-shadow:0 24px 80px rgba(0,0,0,.3);
    opacity:1;
    transition:none;
}
.event-tree-node > .event-tree-item.is-work-package-popup:focus { outline:none; }
.event-tree-node > .event-tree-item.is-work-package-popup::after { display:none; }
.event-tree-item.is-work-package-popup > form > .event-node-row,
.event-tree-item.is-work-package-popup > .event-node-row { display:none; }
.event-tree-item.is-work-package-popup .event-item-fields,
.event-tree-item.is-work-package-popup .event-node-readonly-details { padding:.9rem 1rem 1rem; border-top:0; }
.event-tree-item.is-work-package-popup .event-item-extras { padding:.85rem 1rem 1rem; }
.event-work-package-popup-header { position:sticky; z-index:20; top:0; display:flex; min-height:68px; padding:.7rem 1rem; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid color-mix(in srgb,var(--branch) 28%,var(--line)); background:color-mix(in srgb,var(--branch) 10%,#fff); cursor:grab; user-select:none; touch-action:none; }
.event-work-package-popup-header[hidden] { display:none; }
.event-work-package-popup-heading { display:grid; grid-template-columns:auto minmax(0,1fr); gap:1px .65rem; align-items:baseline; min-width:0; }
.event-work-package-popup-eyebrow { grid-row:1 / span 2; align-self:center; padding:3px 7px; border-radius:99px; color:#176b5f; background:#e9f4f1; font-size:10px; font-weight:850; letter-spacing:.055em; text-transform:uppercase; }
.event-work-package-popup-heading h2 { min-width:0; margin:0; overflow:hidden; font-size:1.1rem; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.event-work-package-popup-heading small { color:var(--muted); font-size:11px; font-weight:650; }
.event-work-package-popup-actions { display:flex; align-items:center; gap:.5rem; flex:0 0 auto; }
.event-work-package-popup-actions .button { white-space:nowrap; }
.event-work-package-popup-actions .icon-button { width:36px; height:36px; background:#fff; }
.event-tree-item.is-work-package-popup.is-popup-dragging { user-select:none; }
.event-tree-item.is-work-package-popup.is-popup-dragging .event-work-package-popup-header { cursor:grabbing; }
.event-tree-item.is-work-package-popup.is-popup-resizing { user-select:none; }
.app-popup-window .event-work-package-popup-actions [data-event-work-package-popout] { display:none; }
.app-embedded-event-work-package { overflow:hidden; background:#fff; }
.app-embedded-event-work-package .popup-shell { min-height:100dvh; padding:0; }
.app-embedded-event-work-package .event-work-package-popup-backdrop,
.app-embedded-event-work-package .event-work-package-popup-resize-handle,
.app-embedded-event-work-package .event-work-package-popup-header { display:none !important; }
.app-embedded-event-work-package .event-tree-node > .event-tree-item.is-work-package-popup,
.app-embedded-event-work-package .event-tree-root > .event-tree-node > .event-tree-item.is-work-package-popup { inset:0 !important; width:100vw !important; min-width:0 !important; height:100dvh !important; min-height:0 !important; border:0; border-radius:0; resize:none; box-shadow:none; }
.event-value-list { display:grid; gap:.35rem; }
.event-value-list > strong { color:var(--muted); font-size:11px; }
.event-value-list [data-event-list-rows] { display:grid; gap:.25rem; }
.event-value-list [data-event-list-rows] > div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.25rem; }
.event-value-list > .button { justify-self:start; }
.event-item-actions { display:flex; gap:.18rem; justify-content:flex-end; }
.event-item-actions form,.event-files form,.event-footer-actions form { margin:0; }
.event-item-actions .icon-button { width:29px; height:29px; }
.icon-button.danger-text,.danger-text { color:var(--danger); }

/* Präzise Einfügemarken für Drag-and-drop. */
.event-tree-node.is-dragging { opacity:.3; }
.event-drag-ghost { position:fixed; top:-1000px; left:-1000px; z-index:9999; display:flex; align-items:center; gap:.45rem; max-width:320px; padding:.5rem .75rem; border:1px solid #80b8ad; border-radius:8px; color:#174c45; background:#fff; box-shadow:0 10px 25px rgba(18,70,62,.2); font-size:13px; }
.event-drag-ghost strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.event-tree-item.is-drop-inside { border-color:var(--branch); background:var(--branch-soft); box-shadow:0 0 0 3px color-mix(in srgb,var(--branch) 18%,transparent); }
.event-tree-node > .event-tree-item.is-drop-inside::after { content:"Als Arbeitspaket unterordnen"; position:absolute; z-index:6; right:7px; bottom:-9px; left:auto; width:auto; height:auto; padding:2px 6px; border:0; border-radius:99px; color:#fff; background:var(--branch); font-size:11px; font-weight:700; line-height:1.2; box-shadow:0 1px 3px rgba(0,0,0,.14); pointer-events:none; }
.event-tree-root > .event-tree-node > .event-tree-item.is-drop-inside { background:var(--branch-soft); box-shadow:0 0 0 3px color-mix(in srgb,var(--branch) 18%,transparent); }
.event-tree-node > .event-tree-item.is-drop-before::before,.event-tree-node > .event-tree-item.is-drop-after::after { content:""; position:absolute; z-index:5; left:5px; right:5px; width:auto; height:3px; border:0; border-radius:3px; background:var(--branch); box-shadow:0 0 0 2px #fff; }
.event-tree-node > .event-tree-item.is-drop-before::before { top:-4px; }
.event-tree-node > .event-tree-item.is-drop-after::after { bottom:-4px; }
.event-tree-item.is-drop-invalid { border-color:var(--danger); background:#fff6f6; box-shadow:0 0 0 3px rgba(181,50,50,.14); cursor:not-allowed; }
.event-tree-node > .event-tree-item.is-drop-invalid::before { content:attr(data-event-drop-message); position:absolute; z-index:7; right:7px; bottom:-10px; padding:2px 7px; border-radius:99px; color:#fff; background:var(--danger); font-size:11px; font-weight:700; line-height:1.25; box-shadow:0 1px 3px rgba(0,0,0,.16); pointer-events:none; }

.event-item-footer-bar { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; padding-top:.4rem; }
.event-node-add-child { display:grid; grid-template-columns:minmax(120px,160px) auto; gap:.35rem; align-items:center; }
.event-node-add-child[hidden] { display:none !important; }
.event-node-add-child select { min-height:36px; padding:.4rem .55rem; font-size:13px; }
.event-node-add-child .button { min-height:36px; white-space:nowrap; }
.event-node-depth-info { display:flex; flex:1 1 auto; align-items:center; justify-content:space-between; gap:.4rem; color:var(--muted); font-size:11px; font-weight:650; line-height:1.25; }
.event-node-depth-info strong { padding:2px 6px; border-radius:99px; color:#735c20; background:#fff4cf; font-size:10.5px; }
.event-node-depth-info strong[hidden] { display:none; }
.event-node-depth-info.is-limit { color:#735c20; }
.event-action-status { display:none; grid-column:1/-1; min-height:18px; padding:2px 4px; color:var(--muted); font-size:11.5px; font-weight:650; line-height:1.3; }
.event-action-status[data-state="saving"],.event-action-status[data-state="error"] { display:block; }
.event-action-status[data-state="error"] { padding:5px 7px; border-radius:6px; color:var(--danger); background:#fff1f1; }
.event-add-item,.event-template-create,.event-template-meta { display:grid; grid-template-columns:minmax(180px,1fr) minmax(140px,.45fr) minmax(180px,.75fr) auto; gap:.6rem; align-items:end; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line); }
.event-add-root { grid-template-columns:minmax(180px,1fr) minmax(140px,.4fr) auto; gap:.4rem; margin-top:.65rem; padding:.55rem; border:1px dashed #b8ccc7; border-radius:9px; background:#fff; }
.event-add-root-heading { display:grid; grid-column:1/-1; gap:2px; padding-bottom:3px; }
.event-add-root-heading strong { color:var(--text); font-size:13px; line-height:1.25; }
.event-add-root-heading small { color:var(--muted); font-size:11.5px; line-height:1.35; }
.event-add-root > label { color:var(--muted); font-size:11.5px; font-weight:700; }
.event-add-root input,.event-add-root select { min-height:38px; padding:.45rem .6rem; font-size:13.5px; }
.event-package-launcher { display:grid; gap:.35rem; min-width:0; }
.event-package-launcher .button { width:100%; min-height:42px; color:var(--primary-dark); border-color:#bad1cc; background:#fff; }
.event-package-launcher .button:hover { border-color:var(--primary); background:#edf7f4; }
.event-package-launcher .event-action-status:empty { display:none; }
.event-dialog.event-work-package-dialog { width:min(1200px,calc(100vw - 2rem)); max-width:none; min-width:480px; height:min(880px,calc(100dvh - 2rem)); max-height:none; min-height:360px; padding:0; overflow:hidden; }
.event-dialog.event-work-package-dialog.is-package-picker-positioned { position:fixed; inset:auto; margin:0; }
.event-dialog.event-work-package-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.dialog-heading.event-package-dialog-heading { align-items:center; margin:0; padding:1rem 1.1rem .85rem; border-bottom:1px solid var(--line); cursor:grab; user-select:none; touch-action:none; }
.event-package-dialog-heading-copy { display:grid; grid-template-columns:auto minmax(0,1fr); gap:2px .55rem; align-items:center; min-width:0; }
.event-package-dialog-heading .badge { grid-row:1/span 2; }
.event-package-dialog-heading h2 { font-size:1.25rem; }
.event-package-dialog-heading p { grid-column:2; overflow:hidden; color:var(--muted); font-size:11.5px; text-overflow:ellipsis; white-space:nowrap; }
.event-package-dialog-heading-actions { display:flex; align-items:center; gap:.5rem; flex:0 0 auto; }
.event-package-dialog-heading-actions .button { white-space:nowrap; }
.event-package-dialog-heading-actions .icon-button { width:36px; height:36px; background:#fff; }
.event-work-package-dialog.is-package-picker-dragging .event-package-dialog-heading { cursor:grabbing; }
.event-work-package-dialog.is-package-picker-dragging,.event-work-package-dialog.is-package-picker-resizing { user-select:none; }
.app-popup-window .event-package-dialog-popout { display:none; }
.event-package-dialog-resize-handle { position:absolute; z-index:30; right:0; bottom:0; display:block; width:26px; height:26px; border-radius:0 0 11px 0; cursor:nwse-resize; touch-action:none; }
.event-package-dialog-resize-handle::after { content:""; position:absolute; right:5px; bottom:5px; width:10px; height:10px; border-right:2px solid #4f6d67; border-bottom:2px solid #4f6d67; opacity:.8; }
.event-package-picker-layout { display:grid; grid-template-columns:minmax(230px,280px) minmax(0,1fr); min-height:0; overflow:hidden; }
.event-package-picker-types { display:grid; grid-template-rows:auto minmax(0,1fr); min-height:0; padding:.8rem; border-right:1px solid var(--line); background:#f5f8f7; }
.event-package-picker-types > h3 { margin:0 0 .55rem; color:#536762; font-size:11px; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.event-package-type-list { display:grid; align-content:start; gap:.35rem; min-height:0; overflow:auto; }
.event-package-type-option { --package-accent:#237c70; display:grid; grid-template-columns:34px minmax(0,1fr) 20px; gap:.5rem; align-items:center; width:100%; min-height:55px; padding:.48rem .5rem; border:1px solid transparent; border-radius:9px; color:var(--text); background:transparent; font:inherit; text-align:left; cursor:pointer; }
.event-package-type-option:hover { border-color:#d4e2df; background:#fff; }
.event-package-type-option:focus-visible { outline:3px solid rgba(18,123,106,.2); outline-offset:-2px; }
.event-package-type-option.is-selected { border-color:color-mix(in srgb,var(--package-accent) 58%,#d4e2df); background:#fff; box-shadow:0 2px 7px rgba(32,74,67,.08); }
.event-package-type-option > span:nth-child(2) { display:grid; min-width:0; gap:2px; }
.event-package-type-option strong { overflow:hidden; font-size:12px; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.event-package-type-option small { display:-webkit-box; overflow:hidden; color:var(--muted); font-size:9.5px; font-weight:500; line-height:1.25; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.event-package-type-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:8px; color:var(--package-accent); background:color-mix(in srgb,var(--package-accent) 10%,#fff); }
.event-package-type-icon .icon { width:17px; height:17px; }
.event-package-option-check { display:grid; place-items:center; width:19px; height:19px; border-radius:50%; color:transparent; background:#eef3f2; }
.event-package-option-check .icon { width:12px; height:12px; }
.event-package-type-option.is-selected .event-package-option-check { color:#fff; background:var(--package-accent); }
.event-package-picker-preview { display:grid; grid-template-rows:auto minmax(0,1fr); min-width:0; min-height:0; background:#fff; }
.event-package-preview-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:57px; padding:.65rem .85rem; border-bottom:1px solid #e4ebe9; }
.event-package-preview-heading > span:first-child { display:grid; gap:1px; min-width:0; }
.event-package-preview-heading small { color:var(--muted); font-size:9.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.event-package-preview-heading h3 { margin:0; overflow:hidden; font-size:14px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.event-package-preview-stage { min-height:0; padding:1rem; overflow:auto; background-color:#f8fbfa; background-image:radial-gradient(#dce9e6 1px,transparent 1px); background-size:14px 14px; }
.event-package-preview-card { --package-accent:#528c80; --package-soft:#edf7f4; width:100%; max-width:790px; margin:0 auto; overflow:hidden; border:1px solid color-mix(in srgb,var(--package-accent) 52%,#d8e4e1); border-top:3px solid var(--package-accent); border-radius:10px; background:#fff; box-shadow:0 8px 24px rgba(27,56,51,.11); }
.event-package-preview-card[hidden] { display:none; }
.event-package-preview-card[data-preview-type="catering"],.event-package-preview-card[data-preview-type="program"] { --package-accent:#4e86b8; --package-soft:#eef5fb; }
.event-package-preview-card[data-preview-type="technology"] { --package-accent:#5f8c62; --package-soft:#eff6ed; }
.event-package-preview-card[data-preview-type="announcement"],.event-package-preview-card[data-preview-type="advertising"] { --package-accent:#477e91; --package-soft:#edf7f9; }
.event-package-preview-card[data-preview-type="invitations"] { --package-accent:#be6c91; --package-soft:#fff1f7; }
.event-package-preview-card[data-preview-type="costs"] { --package-accent:#a97720; --package-soft:#fff5df; }
.event-package-preview-card[data-preview-type="meeting_dates"],.event-package-preview-card[data-preview-type="dates"] { --package-accent:#795c97; --package-soft:#f5effa; }
.event-package-preview-card[data-preview-type="address"] { --package-accent:#2f8c81; --package-soft:#e9f6f3; }
.event-package-preview-node { display:grid; grid-template-columns:16px 18px minmax(0,1fr) auto 18px; gap:.45rem; align-items:center; min-height:48px; padding:.45rem .65rem; border-bottom:1px solid color-mix(in srgb,var(--package-accent) 24%,#e4ebe9); background:var(--package-soft); }
.event-package-preview-drag { color:#8da19d; font-size:16px; }
.event-package-preview-checkbox,.event-package-preview-steps i,.event-package-preview-materials i,.event-package-preview-table .row i { display:inline-block; width:16px; height:16px; border:1px solid #aebeba; border-radius:3px; background:#fff; }
.event-package-preview-node strong { overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.event-package-preview-node > span:nth-last-child(2) { padding:3px 7px; border-radius:99px; color:var(--package-accent); background:#fff; font-size:9.5px; font-weight:750; white-space:nowrap; }
.event-package-preview-node > span:last-child { color:#79908b; }
.event-package-preview-body { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; padding:.7rem; }
.event-package-preview-body .wide { grid-column:1/-1; }
.event-package-preview-field { display:grid; gap:3px; min-width:0; }
.event-package-preview-field > small { color:#657873; font-size:10px; font-weight:750; }
.event-package-preview-field > span { min-height:35px; padding:.5rem .58rem; overflow:hidden; border:1px solid #d5e1de; border-radius:7px; color:#7b8986; background:#fff; font-size:11.5px; text-overflow:ellipsis; white-space:nowrap; }
.event-package-preview-field.is-textarea > span { min-height:55px; white-space:normal; }
.event-package-preview-contact { display:flex; align-items:center; gap:.35rem; flex-wrap:wrap; padding:.5rem; border:1px solid #d7e2df; border-radius:8px; background:#fbfdfc; }
.event-package-preview-contact > span:first-child { display:grid; gap:2px; min-width:180px; margin-right:auto; }
.event-package-preview-contact strong { font-size:11.5px; }
.event-package-preview-contact small { color:var(--muted); font-size:9.5px; }
.event-package-preview-card button { min-height:29px; padding:4px 8px; border:1px solid #cad8d5; border-radius:6px; color:#526964; background:#fff; font:inherit; font-size:10px; font-weight:700; pointer-events:none; }
.event-package-preview-card input { pointer-events:none; }
.event-package-preview-card button .icon { width:12px; height:12px; vertical-align:-2px; }
.event-package-preview-milestones { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.4rem; padding:.5rem; border:1px solid #d8e3e0; border-radius:8px; background:#fbfdfc; }
.event-package-preview-milestones > strong { grid-column:1/-1; font-size:11.5px; }
.event-package-preview-milestones > span { display:flex; align-items:center; gap:.35rem; min-height:36px; padding:.35rem; border:1px solid #dce6e3; border-radius:6px; background:#fff; font-size:10px; }
.event-package-preview-milestones i { width:15px; height:15px; border:1px solid #adbbb8; border-radius:3px; }
.event-package-preview-invitation-formal { display:flex; align-items:center; gap:.45rem; min-height:36px; padding:.45rem .5rem; border:1px solid #dfbdca; border-radius:7px; color:#713e58; background:#fff8fb; font-size:10.5px; }
.event-package-preview-invitation-formal i { flex:0 0 auto; width:15px; height:15px; border:1px solid #b68a9c; border-radius:3px; background:#fff; }
.event-package-preview-invitations { display:grid; gap:.35rem; overflow-x:auto; padding:.5rem; border:1px solid #dfbdca; border-radius:8px; background:#fff8fb; }
.event-package-preview-invitation-deadline { display:grid; grid-template-columns:minmax(220px,1fr) 118px 78px; gap:.45rem; align-items:center; min-height:38px; padding:.4rem .55rem; border:1px solid #e69aaa; border-radius:8px; color:#9e1028; background:#fff2f5; box-shadow:inset 3px 0 0 #f00000; font-size:9.5px; }
.event-package-preview-invitation-deadline strong { font-size:10px; }
.event-package-preview-invitation-deadline time,.event-package-preview-invitation-deadline span { white-space:nowrap; }
.event-package-preview-invitations > strong { color:#843e60; font-size:11.5px; }
.event-package-preview-invitations .head,.event-package-preview-invitations .row { display:grid; grid-template-columns:18px minmax(190px,1fr) 115px 78px 88px 24px; gap:.35rem; align-items:center; min-width:620px; padding:.3rem .4rem; border-radius:5px; }
.event-package-preview-invitations .head { color:#75465d; background:#fbeaf2; font-size:8.5px; font-weight:850; letter-spacing:.03em; text-transform:uppercase; }
.event-package-preview-invitations .row { min-height:34px; border:1px solid #ead2dc; color:#5f4a53; background:#fff; font-size:9.5px; }
.event-package-preview-invitations .row i { width:15px; height:15px; border:1px solid #bfa7b1; border-radius:3px; }
.event-package-preview-invitations .row b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.event-package-preview-invitations .row time { color:#765966; font-variant-numeric:tabular-nums; white-space:nowrap; }
.event-package-preview-invitations .row > span { color:#816473; white-space:nowrap; }
.event-package-preview-invitations .row > button { width:23px; min-height:23px; padding:0; font-size:15px; }
.event-package-preview-invitations > button { justify-self:start; }
.event-package-preview-table,.event-package-preview-steps,.event-package-preview-materials,.event-package-preview-dates { display:grid; gap:.35rem; padding:.5rem; border:1px solid color-mix(in srgb,var(--package-accent) 30%,#d8e3e0); border-radius:8px; background:color-mix(in srgb,var(--package-soft) 55%,#fff); }
.event-package-preview-table > strong,.event-package-preview-steps > strong,.event-package-preview-materials > strong,.event-package-preview-dates > strong { color:var(--package-accent); font-size:11.5px; }
.event-package-preview-table .head,.event-package-preview-table .row { display:grid; gap:.3rem; align-items:center; min-height:32px; padding:.3rem .4rem; border-radius:5px; }
.event-package-preview-table .head { color:#647873; background:var(--package-soft); font-size:8.5px; font-weight:850; letter-spacing:.03em; text-transform:uppercase; }
.event-package-preview-table .row { border:1px solid #dce6e3; color:#5b6b67; background:#fff; font-size:10.5px; }
.event-package-preview-table--program .head,.event-package-preview-table--program .row { grid-template-columns:24px 62px 55px 58px minmax(130px,1fr) 60px 20px; }
.event-package-preview-table--technology .head,.event-package-preview-table--technology .row { grid-template-columns:25px minmax(140px,1fr) minmax(120px,1fr) 25px; }
.event-package-preview-table--packing .head,.event-package-preview-table--packing .row { grid-template-columns:25px minmax(140px,1fr) minmax(120px,1fr); }
.event-package-preview-table--packing > strong { display:flex; align-items:baseline; gap:.4rem; }
.event-package-preview-table--packing > strong small { color:#71817d; font-size:9px; font-weight:600; }
.event-package-preview-table--costs .head,.event-package-preview-table--costs .row { grid-template-columns:minmax(130px,1fr) 95px minmax(120px,1fr); }
.event-package-preview-table--meetings .head,.event-package-preview-table--meetings .row { grid-template-columns:minmax(110px,.8fr) minmax(180px,1.3fr) 70px; }
.event-package-preview-table--emob-classes .head,.event-package-preview-table--emob-classes .row { grid-template-columns:1fr 1fr; }
.event-package-preview-table--emob-materials .row { grid-template-columns:minmax(120px,1fr) auto 42px minmax(120px,1fr); }
.event-package-preview-material-switch { gap:5px; color:#65708c; font-size:9.5px; pointer-events:none; }
.event-package-preview-material-switch strong { font-size:9.5px; }
.event-package-preview-material-switch input:checked + span { border-color:#4f60a8; background:#4f60a8; }
.event-package-preview-table--emob-materials .row button { justify-self:end; }
.event-package-preview-table--emob-times .head,.event-package-preview-table--emob-times .row { grid-template-columns:75px 100px minmax(120px,1fr); }
.event-package-preview-table .total { display:flex; justify-content:space-between; padding:.4rem; border-top:2px solid color-mix(in srgb,var(--package-accent) 45%,#ddd); color:var(--package-accent); font-size:11px; }
.event-package-preview-table > button,.event-package-preview-steps > button,.event-package-preview-materials > button,.event-package-preview-dates > button { justify-self:start; }
.event-package-preview-steps > span { display:grid; grid-template-columns:16px 14px minmax(130px,1fr) auto; gap:.35rem; align-items:center; min-height:35px; padding:.3rem .4rem; border:1px solid #dce6e3; border-radius:6px; color:#536762; background:#fff; font-size:10.5px; }
.event-package-preview-steps b { color:#93a4a0; font-size:12px; }
.event-package-preview-steps time { color:#788783; font-size:9.5px; font-variant-numeric:tabular-nums; }
.event-package-preview-steps.is-fixed > span { background:#f5f8f7; }
.event-package-preview-materials > span { display:grid; grid-template-columns:17px minmax(0,1fr); gap:.4rem; align-items:center; min-height:32px; padding:.3rem .4rem; border:1px solid #dce6e3; border-radius:6px; background:#fff; font-size:10.5px; }
.event-package-preview-address { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:.4rem; align-items:end; }
.event-package-preview-address > button { min-height:35px; }
.event-package-preview-location-options { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,1fr); gap:.4rem; align-items:end; }
.event-package-preview-location-check { display:flex; align-items:center; gap:.4rem; min-height:35px; padding:.42rem .5rem; border:1px solid #d7e2df; border-radius:7px; color:#5d706b; background:#fff; font-size:10.5px; font-weight:700; }
.event-package-preview-location-check i { width:15px; height:15px; border:1px solid #adbbb8; border-radius:3px; background:#fff; }
.event-package-preview-travel { display:grid; gap:.45rem; padding:.5rem; border:1px solid #e1c8b5; border-radius:8px; background:#fffaf6; }
.event-package-preview-travel > strong { color:var(--package-accent); font-size:11px; }
.event-package-preview-travel > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; }
.event-package-preview-travel > div:last-child { grid-template-columns:minmax(0,1fr) auto; align-items:end; }
.event-package-preview-travel span { display:grid; gap:2px; padding:.38rem .45rem; border:1px solid #eadbd0; border-radius:6px; color:#536762; background:#fff; font-size:10.5px; }
.event-package-preview-travel small { color:#7a685d; font-size:8.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.event-package-preview-travel button { min-height:35px; }
.event-package-preview-dates > span { display:flex; align-items:center; gap:.4rem; min-height:35px; padding:.35rem .45rem; border:1px solid #dce6e3; border-radius:6px; color:#5d506b; background:#fff; font-size:10.5px; }
.event-package-preview-dates > span .icon { width:14px; height:14px; }
.event-package-preview-dates > span > b { min-width:140px; color:#4f3c66; font-weight:700; }
.event-package-preview-dates > span button { margin-left:auto; }
.event-package-preview-responsibility { display:grid; grid-template-columns:1fr; gap:.5rem; padding-top:.1rem; }
.event-package-preview-responsibility > div { display:grid; gap:3px; padding:.45rem; border:1px solid #d8e3e0; border-radius:8px; background:#fbfdfc; }
.event-package-preview-responsibility strong { font-size:10.5px; }
.event-package-preview-responsibility span { padding:.38rem .45rem; border:1px solid #d7e2df; border-radius:6px; color:#82908d; background:#fff; font-size:10px; }
.form-actions.event-package-picker-actions { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:.55rem; align-items:center; margin:0; padding:.75rem 1rem; border-top:1px solid var(--line); background:#fff; }
.event-package-picker-actions .event-action-status { justify-self:start; }
.event-template-create { grid-template-columns:minmax(180px,.8fr) minmax(240px,1.2fr) auto; margin:0; padding:0; border:0; }
.event-template-meta { grid-template-columns:minmax(180px,.8fr) minmax(240px,1.2fr) auto; margin-bottom:1rem; }
.event-add-item label,.event-template-create label,.event-template-meta label { display:grid; gap:.25rem; }
.event-footer-actions { display:flex; justify-content:space-between; gap:.7rem; flex-wrap:wrap; margin-top:.7rem; padding-top:.65rem; border-top:1px solid var(--line); }
.event-template-state-actions { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.event-template-state-actions form { margin:0; }
.event-files { display:grid; gap:.35rem; margin-top:.45rem; padding:.45rem; border-radius:7px; background:var(--surface-soft); font-size:12px; }
.event-files > div { display:flex; align-items:center; gap:.35rem; }
.event-files > div form { margin-left:auto; }
.event-detached-files { margin:.65rem 0; padding:.65rem; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
.event-detached-files h3 { display:flex; align-items:center; gap:.4rem; margin:0; font-size:.78rem; }
.event-detached-files .event-files { margin-bottom:0; }
.event-file-upload { display:flex; align-items:end; gap:.4rem; }
.event-sidebar-files { display:grid; gap:0; width:100%; min-width:0; margin:0; padding:0; overflow:hidden; border-color:#d7e2df; background:rgba(255,255,255,.92); }
.event-sidebar-files-heading { display:flex; align-items:center; justify-content:space-between; gap:.45rem; min-width:0; min-height:48px; padding:.5rem .75rem; }
.event-sidebar-files-heading h3 { min-width:0; color:var(--primary-dark); font-size:14px; font-weight:700; line-height:1.25; letter-spacing:-.01em; }
.event-sidebar-files-heading h3 .icon { width:16px; height:16px; }
.event-sidebar-file-count { display:grid; place-items:center; min-width:24px; height:24px; padding:0 6px; border-radius:99px; color:#315f57; background:#e7f2ef; font-size:10.5px; font-weight:800; font-variant-numeric:tabular-nums; }
.event-sidebar-files-empty { margin:0 .75rem .75rem; padding:.55rem; border:1px dashed #d5e1de; border-radius:7px; color:var(--muted); background:#fbfdfc; font-size:11px; text-align:center; }
.event-sidebar-file-list { display:grid; gap:.3rem; max-height:280px; margin:0 .75rem .75rem !important; padding:0 !important; overflow:auto; background:transparent !important; }
.event-sidebar-file-row { display:grid !important; grid-template-columns:minmax(0,1fr) 28px; gap:.3rem !important; align-items:center; min-width:0; min-height:46px; padding:.38rem .4rem; border:1px solid #dce6e3; border-radius:7px; background:#fff; }
.event-sidebar-file-row > a { display:grid; grid-template-columns:17px minmax(0,1fr); gap:.38rem; align-items:center; min-width:0; color:var(--text); text-decoration:none; }
.event-sidebar-file-row > a:hover strong,.event-sidebar-file-row > a:focus-visible strong { color:var(--primary); text-decoration:underline; }
.event-sidebar-file-row > a > .icon { width:15px; height:15px; color:#5f7771; }
.event-sidebar-file-row > a > span { display:grid; min-width:0; gap:2px; }
.event-sidebar-file-row strong { display:-webkit-box; overflow:hidden; font-size:11.5px; line-height:1.25; overflow-wrap:anywhere; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.event-sidebar-file-row small { overflow:hidden; color:var(--muted); font-size:9.5px; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.event-sidebar-file-row form { margin:0; }
.event-sidebar-file-row .icon-button { width:27px; height:27px; }
.event-sidebar-file-upload { display:grid; gap:.38rem; min-width:0; margin:0 .75rem .75rem; padding-top:.75rem; border-top:1px solid #e2eae8; }
.event-sidebar-file-input { position:absolute !important; width:1px !important; height:1px !important; margin:-1px !important; padding:0 !important; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.event-sidebar-file-select,.event-sidebar-file-submit { justify-content:center; width:100%; }
.event-sidebar-file-select { cursor:pointer; }
.event-sidebar-file-selection { min-height:26px; padding:0 .15rem; overflow-wrap:anywhere; color:var(--muted); font-size:10px; line-height:1.3; }
.event-sidebar-file-selection.is-error { color:var(--danger); font-weight:700; }
.event-dialog { width:min(720px,calc(100vw - 2rem)); max-height:calc(100vh - 2rem); padding:1.2rem; overflow:auto; border:1px solid var(--line); border-radius:12px; color:var(--text); background:#fff; box-shadow:0 22px 70px rgba(0,0,0,.24); }
.event-dialog::backdrop { background:rgba(17,35,32,.55); }
.event-dialog.event-external-contact-dialog { width:min(1500px,calc(100vw - 2rem)); }
.event-external-contact-dialog .contact-text-import { margin-bottom:0; }
.event-external-contact-dialog .contact-form { padding:0; border:0; background:transparent; }
.event-external-contact-dialog .contact-form-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.event-external-contact-dialog .event-action-status { min-height:22px; margin:.55rem 0 0; }
.event-email-draft-dialog { width:min(860px,calc(100vw - 2rem)); }
.event-email-draft-content { display:grid; gap:.7rem; }
.event-email-draft-content label { display:grid; gap:.28rem; color:var(--muted); font-size:12px; font-weight:700; }
.event-email-draft-content input,.event-email-draft-content textarea { width:100%; color:#263936; background:#fbfdfc; font-size:14px; line-height:1.45; }
.event-email-draft-content textarea { min-height:430px; resize:vertical; font-family:inherit; white-space:pre-wrap; }
.event-email-draft-dialog .event-action-status:not(:empty) { display:block; }
.event-email-draft-actions { align-items:center; }
.event-email-draft-actions .disabled { pointer-events:none; opacity:.55; }
.dialog-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.dialog-heading h2,.dialog-heading p { margin:0; }
.event-map-dialog { width:min(900px,calc(100vw - 2rem)); }
.event-map-canvas { min-height:460px; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#e9efed; }
.event-map-canvas iframe { width:100%; height:460px; border:0; }
.event-route-map { position:relative; width:100%; height:460px; overflow:hidden; background:#dfe9e6; }
.event-route-map-tile { position:absolute; width:256px; height:256px; max-width:none; user-select:none; -webkit-user-drag:none; }
.event-route-map-line { position:absolute; inset:0; z-index:2; width:100%; height:100%; pointer-events:none; }
.event-route-map-line-shadow { fill:none; stroke:rgba(255,255,255,.9); stroke-width:8; stroke-linecap:round; stroke-linejoin:round; }
.event-route-map-line-route { fill:none; stroke:#176fa6; stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
.event-route-map-marker { position:absolute; z-index:3; display:grid; justify-items:center; transform:translate(-50%,-50%); }
.event-route-map-marker-pin { display:grid; place-items:center; width:24px; height:24px; border:3px solid #fff; border-radius:50%; box-shadow:0 2px 7px rgba(14,43,38,.35); background:#2f7fb4; color:#fff; font-size:10px; font-weight:900; }
.event-route-map-marker.is-origin .event-route-map-marker-pin { background:#167767; }
.event-route-map-marker.is-destination .event-route-map-marker-pin { background:#c45f21; }
.event-route-map-marker-label { position:absolute; top:29px; width:max-content; max-width:210px; padding:4px 7px; border:1px solid rgba(33,63,58,.2); border-radius:6px; box-shadow:0 2px 8px rgba(20,48,43,.16); background:rgba(255,255,255,.96); color:#243a36; font-size:10px; font-weight:750; line-height:1.25; text-align:center; }
.event-route-map-marker-label small { display:block; max-width:196px; overflow:hidden; color:#5f746f; font-size:9px; font-weight:550; text-overflow:ellipsis; white-space:nowrap; }
.event-route-map-attribution { position:absolute; right:5px; bottom:4px; z-index:4; padding:2px 5px; border-radius:3px; background:rgba(255,255,255,.88); color:#38534e; font-size:9px; }
.event-route-map-attribution a { color:inherit; }
.event-template-card.is-inactive { opacity:.7; }
.event-template-tree { display:grid; gap:.45rem; }
.event-template-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.55rem; margin-left:min(calc(var(--tree-depth) * 30px),180px); padding:.55rem; border-left:4px solid var(--template-type-color,#b7d7d1); background:color-mix(in srgb,var(--template-type-color,#b7d7d1) 7%,var(--surface-soft)); }
.event-template-item > form:first-child { display:grid; grid-template-columns:minmax(180px,1fr) minmax(140px,.4fr) auto; gap:.55rem; }
.event-template-fixed-type { display:inline-flex; align-items:center; min-height:36px; padding:.4rem .65rem; border:1px solid var(--line); border-radius:7px; color:var(--muted); background:#fff; font-size:12px; font-weight:700; }
.event-template-level { margin-right:auto; padding:3px 7px; border-radius:99px; color:#52645f; background:#e8f0ee; font-size:10.5px; font-weight:700; line-height:1.2; white-space:nowrap; }
.event-template-level.is-limit { color:#735c20; background:#fff1c5; }
.event-tree-depth-help { margin:.65rem 0 -.45rem; color:var(--muted); font-size:11.5px; line-height:1.4; }
.event-admin-list .settings-row small { display:block; margin-top:.2rem; color:var(--muted); }
.event-work-package-admin > form { display:grid; gap:.8rem; }
.event-travel-origin-admin form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.event-travel-origin-admin form > label { display:grid; gap:.25rem; color:var(--muted); font-size:12px; font-weight:700; }
.event-travel-origin-admin form > .wide { grid-column:1/-1; }
.event-work-package-admin-layout { display:grid; grid-template-columns:minmax(420px,1.25fr) minmax(310px,.75fr); gap:1rem; align-items:start; }
.event-work-package-admin-list { display:grid; gap:.4rem; margin:0; padding:0; list-style:none; }
.event-work-package-admin-row { position:relative; display:grid; grid-template-columns:34px 28px minmax(170px,1fr) 122px 66px; gap:.45rem; align-items:center; min-height:58px; padding:.45rem .5rem .45rem .35rem; border:1px solid #d9e4e1; border-left:5px solid var(--package-color); border-radius:9px; background:color-mix(in srgb,var(--package-color) 6%,#fff); transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease,opacity .14s ease; }
.event-work-package-admin-row.is-selected { border-color:color-mix(in srgb,var(--package-color) 58%,#d9e4e1); box-shadow:0 0 0 3px color-mix(in srgb,var(--package-color) 12%,transparent); }
.event-work-package-admin-row.is-dragging { opacity:.45; }
.event-work-package-admin-row.is-drop-target { box-shadow:0 -3px 0 var(--package-color); }
.event-work-package-admin-drag { display:grid; place-items:center; width:32px; height:38px; min-height:0; padding:0; border:0; border-radius:7px; color:#70817e; background:transparent; cursor:grab; }
.event-work-package-admin-drag:hover,.event-work-package-admin-drag:focus-visible { color:var(--package-color); background:#fff; }
.event-work-package-admin-drag:active { cursor:grabbing; }
.event-work-package-admin-drag .icon { width:16px; height:16px; }
.event-work-package-admin-position { display:grid; place-items:center; width:27px; height:27px; border-radius:50%; color:#536762; background:#fff; font-size:11px; font-weight:850; font-variant-numeric:tabular-nums; }
.event-work-package-admin-name { display:grid; min-width:0; gap:2px; }
.event-work-package-admin-name strong { overflow:hidden; font-size:13px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.event-work-package-admin-name small { color:var(--muted); font-size:9.5px; line-height:1.2; }
.event-work-package-color-choice { display:grid; grid-template-columns:25px minmax(0,1fr); gap:.4rem; align-items:center; min-height:37px; padding:.3rem .4rem; border:1px solid #cedbd8; border-radius:7px; color:#526762; background:#fff; font:inherit; font-size:10.5px; font-weight:750; cursor:pointer; }
.event-work-package-color-choice:hover,.event-work-package-color-choice:focus-visible { border-color:var(--package-color); outline:none; box-shadow:0 0 0 3px color-mix(in srgb,var(--package-color) 12%,transparent); }
.event-work-package-color-choice i { display:block; width:25px; height:25px; border:2px solid #fff; border-radius:6px; background:var(--swatch-color); box-shadow:0 0 0 1px #b8c7c3; }
.event-work-package-order-buttons { display:flex; gap:.25rem; }
.event-work-package-order-buttons .icon-button { width:30px; height:30px; }
.event-work-package-palette { position:sticky; top:calc(var(--app-header-height,68px) + 12px); display:grid; gap:.6rem; padding:.75rem; border:1px solid #d7e3e0; border-radius:10px; background:#f8fbfa; }
.event-work-package-palette > div:first-child { display:flex; align-items:end; justify-content:space-between; gap:.75rem; }
.event-work-package-palette > div:first-child > span { display:grid; gap:1px; min-width:0; }
.event-work-package-palette small { color:var(--muted); font-size:9.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.event-work-package-palette h3 { margin:0; overflow:hidden; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.event-work-package-palette > div:first-child > strong { color:#526762; font-size:11px; font-variant-numeric:tabular-nums; }
.event-work-package-palette > p { margin:0; color:var(--muted); font-size:11px; }
.event-work-package-swatches { display:grid; grid-template-columns:repeat(8,minmax(25px,1fr)); gap:.38rem; }
.event-work-package-swatch { position:relative; display:grid; place-items:center; width:100%; min-width:0; height:40px; min-height:0; padding:0; border:2px solid #fff; border-radius:6px; color:transparent; background:var(--swatch-color); box-shadow:0 0 0 1px #b8c7c3; cursor:pointer; transition:transform .12s ease,box-shadow .12s ease; }
.event-work-package-swatch:hover,.event-work-package-swatch:focus-visible { z-index:1; outline:none; transform:scale(1.12); box-shadow:0 0 0 2px #fff,0 0 0 4px var(--swatch-color); }
.event-work-package-swatch.is-selected { color:#fff; box-shadow:0 0 0 2px #fff,0 0 0 4px #203c37; }
.event-work-package-swatch .icon { width:15px; height:15px; stroke-width:2.8; filter:drop-shadow(0 1px 1px rgba(0,0,0,.45)); }
.event-work-package-admin-actions { justify-content:space-between; margin:0; padding-top:.8rem; border-top:1px solid var(--line); }
.event-work-package-admin-actions .muted { font-size:11.5px; }
.autosave-status[data-state="saving"] { color:var(--warning); }
.autosave-status[data-state="saved"] { color:var(--primary); }
.autosave-status[data-state="error"] { color:var(--danger); }

@media (max-width:1250px) {
    .event-filter-fields { grid-template-columns:repeat(4,minmax(130px,1fr)); }
    .event-card { scroll-margin-top:400px; }
}
@media (max-width:1180px) {
    .event-sticky-header { top:var(--app-header-height,106px); }
}
@media (hover:none) and (pointer:coarse) and (max-width:1400px) {
    .event-sticky-header { top:var(--app-header-height,62px); }
}
@media (max-width:1100px) {
    .event-card.is-open { display:block; padding:0; background:var(--surface); }
    .event-card.is-open > .event-summary { grid-template-columns:minmax(240px,.75fr) minmax(0,1fr) minmax(104px,auto); border:0; border-radius:0; background:transparent; }
    .event-card.is-open .event-date-block { min-height:104px; padding:.7rem .8rem; border-right:1px solid var(--line); border-bottom:0; }
    .event-card.is-open .event-overview { padding:.65rem .8rem; }
    .event-card.is-open .event-title-line { padding-right:0; }
    .event-card.is-open .event-progress-line { display:flex; }
    .event-card.is-open .event-progress { width:min(280px,42%); }
    .event-card.is-open .event-expand-icon { position:static; display:flex; min-height:100%; padding:.6rem .7rem; border-top:0; border-left:1px solid var(--line); }
    .event-card.is-open > .event-editor { display:grid; gap:.75rem; padding:.55rem; border-top:1px solid var(--line); background:#f7faf9; }
    .event-card.is-open .event-open-sidebar,.event-card.is-open .event-checklist-panel,.event-card.is-open .event-comments-panel { grid-column:auto; grid-row:auto; }
    .event-planning-lower { grid-template-columns:1fr; }
    .event-card.is-open .event-comments-panel { position:static; max-height:none; }
}
@media (max-width:800px) {
    .dashboard-work-package-popup { width:calc(100vw - .5rem); min-width:0; height:calc(100dvh - .5rem); min-height:0; }
    .dashboard-work-package-popup-header { padding:.6rem .7rem; }
    .dashboard-work-package-popup-eyebrow,.dashboard-work-package-popup-heading small { display:none; }
    .dashboard-work-package-popup-heading { display:block; }
    .dashboard-work-package-popup-actions [data-dashboard-work-package-popout],.dashboard-work-package-resize-handle { display:none; }
    .dashboard-work-package-popup-actions [data-dashboard-work-package-show] { width:36px; padding:0; font-size:0; }
    .dashboard-work-package-popup-actions [data-dashboard-work-package-show] .icon { width:17px; height:17px; }
    .event-tree-node > .event-tree-item.is-work-package-popup,
    .event-tree-root > .event-tree-node > .event-tree-item.is-work-package-popup { min-width:0; resize:none; }
    .event-work-package-popup-header { padding:.6rem .7rem; }
    .event-work-package-popup-eyebrow,.event-work-package-popup-heading small { display:none; }
    .event-work-package-popup-heading { display:block; }
    .event-work-package-popup-actions [data-event-work-package-popout] { display:none; }
    .event-card.is-open > .event-summary { grid-template-columns:minmax(240px,.7fr) minmax(0,1fr) minmax(96px,auto); }
    .event-page-heading .section-actions,.event-footer-actions { width:100%; justify-content:stretch; }
    .event-page-heading .section-actions .button { flex:1; }
    .event-filter-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .event-card { scroll-margin-top:560px; }
    .event-summary { grid-template-columns:minmax(240px,.7fr) minmax(0,1fr) minmax(96px,auto); }
    .event-date-block { min-height:104px; padding:.7rem .8rem; border-right:1px solid var(--line); border-bottom:0; }
    .event-overview { padding:.65rem .8rem; }
    .event-expand-icon { display:flex; padding:.55rem .6rem; }
    .event-editor { padding:.55rem; }
    .event-master-panel > summary { grid-template-columns:auto minmax(0,1fr) auto; }
    .event-master-facts { display:none; }
    .event-checklist-toolbar { align-items:flex-start; }
    .event-checklist-toolbar .event-planning-heading h2 { font-size:22px; }
    .event-drag-hint { display:none; }
    .event-timeline { min-height:0; padding:9px 10px; overflow:visible; }
    .event-timeline-track { top:16px; right:auto; bottom:16px; left:16px; width:3px; height:auto; }
    .event-timeline-track > span { display:none; }
    .event-timeline-month-ticks { display:none; }
    .event-timeline ol { display:grid; gap:9px; height:auto; }
    .event-timeline-marker { position:relative; top:auto; left:auto; display:grid; grid-template-columns:auto minmax(0,1fr); justify-items:start; width:auto; height:auto; max-width:none; min-height:31px; padding:0 0 0 27px; text-align:left; transform:none; }
    .event-timeline-marker .event-timeline-dot { top:4px; right:auto; left:1px; transform:none; }
    .event-timeline-caption,.event-timeline-marker.is-today .event-timeline-caption { position:static; display:grid; grid-column:2; align-items:start; justify-items:start; flex-direction:initial; width:auto; max-width:none; text-align:left; transform:none; }
    .event-timeline-caption > span { white-space:normal; }
    .event-timeline-marker.is-today .event-timeline-caption > span { grid-row:1; }
    .event-timeline-marker.is-today .event-timeline-caption time { grid-row:2; }
    .event-timeline-tooltip { top:27px; left:27px; transform:translateY(4px); }
    .event-timeline-tooltip::before { left:12px; transform:rotate(45deg); }
    .event-timeline-marker.has-workstep:hover .event-timeline-tooltip,.event-timeline-marker.has-workstep:focus-visible .event-timeline-tooltip { transform:none; }
    .event-tree-canvas { padding:.55rem; }
    .event-tree-output-actions { position:relative; top:auto; right:auto; flex-wrap:wrap; margin:0 0 .5rem auto; }
    .event-tree-hub { max-width:100%; }
    .event-dialog.event-work-package-dialog { width:calc(100vw - 1rem); min-width:0; height:calc(100dvh - 1rem); min-height:0; }
    .event-package-dialog-resize-handle { display:none; }
    .event-package-dialog-heading { cursor:default; }
    .event-package-picker-layout { grid-template-columns:1fr; grid-template-rows:auto minmax(440px,1fr); overflow:auto; }
    .event-package-picker-types { display:block; padding:.65rem; overflow:visible; border-right:0; border-bottom:1px solid var(--line); }
    .event-package-type-list { grid-template-columns:repeat(2,minmax(0,1fr)); max-height:175px; }
    .event-package-picker-preview { min-height:440px; }
    .event-package-preview-stage { padding:.65rem; }
    .event-package-preview-location-options { grid-template-columns:1fr; }
    .event-package-picker-actions { position:sticky; bottom:0; }
    .event-work-package-admin-layout { grid-template-columns:1fr; }
    .event-work-package-palette { position:static; }
    .event-work-package-admin-row { grid-template-columns:34px 28px minmax(120px,1fr) 116px 66px; }
    .event-item-fields,.event-form-grid,.event-readonly-data { grid-template-columns:1fr; }
    .event-item-fields .wide,.event-form-grid .wide { grid-column:auto; }
    .event-location-options { grid-template-columns:1fr; }
    .event-travel-route-grid { grid-template-columns:1fr; }
    .event-travel-route-grid > label:first-child,.event-travel-free-origin,.event-travel-origin-summary,.event-travel-vias,.event-travel-destination-source,.event-travel-destination,.event-travel-distance,.event-travel-calculate { grid-column:1; }
    .event-travel-via-row { grid-template-columns:20px minmax(0,1fr) 34px; }
    .event-travel-via-row > span { grid-row:1 / 3; }
    .event-travel-via-row select { grid-column:2; grid-row:1; }
    .event-travel-via-row input { grid-column:2; grid-row:2; }
    .event-travel-via-row .icon-button { grid-column:3; grid-row:1 / 3; }
    .event-emob-basics { grid-template-columns:1fr; }
    .event-emob-material-row { grid-template-columns:minmax(0,1fr) auto; }
    .event-emob-material-row .event-emob-material-demand,.event-emob-material-row .event-emob-stock,.event-emob-material-row.is-worksheets > button { grid-column:1/-1; justify-self:start; text-align:left; }
    .event-emob-time-table,.event-emob-class-table { overflow-x:auto; }
    .event-emob-time-head,.event-emob-time-row { min-width:580px; }
    .event-emob-class-head,.event-emob-class-row { min-width:420px; }
    .event-readonly-emob dl { grid-template-columns:1fr; }
    .event-invoice-fields,.event-readonly-invoice { grid-template-columns:1fr; }
    .event-invoice-customer { align-items:flex-start; flex-wrap:wrap; }
    .event-invoice-sevdesk { grid-template-columns:1fr auto; }
    .event-invoice-sevdesk .button { grid-column:1/-1; justify-self:start; }
    .event-package-preview-travel > div { grid-template-columns:1fr; }
    .event-travel-origin-admin form { grid-template-columns:1fr; }
    .event-responsibility-grid { grid-template-columns:1fr; }
    .event-work-package-people { grid-template-columns:1fr; }
    .event-work-package-person-open { justify-self:start; }
    .event-catering-milestones { grid-template-columns:1fr; }
    .event-program-table { overflow-x:auto; }
    .event-program-table-head,.event-program-row { min-width:890px; }
    .event-technology-table { overflow-x:auto; }
    .event-technology-table-head,.event-technology-row { min-width:680px; }
    .event-packing-table { overflow-x:auto; }
    .event-packing-table-head,.event-packing-row { min-width:620px; }
    .event-cost-table { overflow-x:auto; }
    .event-cost-table-head,.event-cost-row { min-width:650px; }
    .event-cost-total { min-width:650px; }
    .event-exhibitor-table { overflow-x:auto; overflow-y:visible; }
    .event-participant-table { overflow-x:auto; overflow-y:visible; }
    .event-participant-table-head,.event-participant-row { min-width:940px; }
    .event-participant-category-row { min-width:940px; }
    .event-exhibitor-table-head,.event-exhibitor-row { min-width:700px; }
    .event-exhibitors.is-presenters .event-exhibitor-table-head,.event-exhibitors.is-presenters .event-exhibitor-row { min-width:735px; }
    .event-exhibitor-total { min-width:700px; }
    .event-exhibitors.is-presenters .event-exhibitor-total { min-width:735px; }
    .event-readonly-exhibitors { overflow-x:auto; }
    .event-readonly-exhibitors [role="row"] { min-width:620px; }
    .event-readonly-participants { overflow-x:auto; }
    .event-readonly-participants [role="row"] { min-width:760px; }
    .event-readonly-participants .event-readonly-participant-category { min-width:0; }
    .event-meeting-table { overflow-x:auto; }
    .event-meeting-table-head,.event-meeting-row { min-width:740px; }
    .event-date-list-table { overflow-x:auto; }
    .event-date-list-head,.event-date-row { min-width:625px; }
    .event-work-step-row { grid-template-columns:25px 22px minmax(120px,1fr) auto 29px; }
    .event-work-step-drag { grid-column:1; grid-row:1 / span 2; }
    .event-work-step-complete { grid-column:2; grid-row:1 / span 2; }
    .event-work-step-date { grid-column:3; }
    .event-work-step-reminder { grid-column:4; grid-row:2; }
    .event-work-step-remove,.event-work-step-fixed { grid-column:5; grid-row:1 / span 2; }
    .event-work-step-quick-actions { grid-column:3/-1; grid-row:3; }
    .event-work-step-row > .event-line-assignee,.event-work-step-row > .event-line-person { grid-column:3/-1; grid-row:4; }
    .event-work-steps.event-invitation-dispatch .event-invitation-deadline { grid-template-columns:24px minmax(0,1fr) auto; }
    .event-invitation-deadline-icon { grid-column:1; grid-row:1 / span 2; }
    .event-invitation-deadline > strong { grid-column:2/-1; grid-row:1; }
    .event-invitation-deadline > .event-work-step-date { grid-column:2; grid-row:2; }
    .event-invitation-deadline > .event-work-step-reminder { grid-column:3; grid-row:2; }
    .event-invitation-deadline > .event-work-step-quick-actions { grid-column:2/-1; grid-row:3; }
    .event-line-assignee,.event-line-person { align-items:flex-start; flex-wrap:wrap; }
    .event-line-assignee-search { flex:1 1 150px; }
    .event-node-row { grid-template-columns:28px 19px minmax(76px,1fr) auto 28px; grid-template-rows:auto auto; }
    .event-node-meta { display:none; }
    .event-node-row-readonly { grid-template-columns:19px minmax(76px,1fr) auto 28px; }
    .event-node-row > .event-drag-handle { grid-column:1; grid-row:1 / span 2; }
    .event-node-row > .event-complete-check { grid-column:2; grid-row:1 / span 2; }
    .event-node-row > .event-node-label { grid-column:3; grid-row:1; }
    .event-node-row > .event-branch-toggle { grid-column:4; grid-row:1 / span 2; }
    .event-node-row > .event-node-toggle { grid-column:5; grid-row:1 / span 2; }
    .event-node-row > .event-responsible-avatars--header { grid-column:3; grid-row:2; justify-self:start; padding-left:0; }
    .event-node-row .autosave-status { display:none; }
    .event-node-row .autosave-status[data-state="saving"],.event-node-row .autosave-status[data-state="error"] { position:static; display:inline-flex; grid-column:3; grid-row:2; justify-self:start; margin-bottom:2px; }
    .event-node-row-readonly > .event-node-status-icon { grid-column:1; grid-row:1; }
    .event-node-row-readonly > .event-node-label { grid-column:2; grid-row:1; }
    .event-node-row-readonly > .event-responsible-avatars--header { grid-column:2; grid-row:2; justify-self:start; padding-left:0; }
    .event-node-row-readonly > .event-branch-toggle { grid-column:3; grid-row:1; }
    .event-node-row-readonly > .event-node-toggle { grid-column:4; grid-row:1; }
    .event-tree-node > .event-node-value-preview { margin:0; }
    .event-item-main,.event-add-item,.event-template-create,.event-template-meta,.event-template-item > form:first-child { grid-template-columns:1fr; }
    .event-template-item { margin-left:min(calc(var(--tree-depth) * 14px),70px); }
    .event-template-item { grid-template-columns:1fr; }
    .event-node-add-child { grid-template-columns:1fr; }
    .event-item-footer-bar { align-items:flex-start; }
    .event-node-depth-info { flex-basis:100%; }
    .event-map-canvas,.event-map-canvas iframe,.event-route-map { min-height:360px; height:360px; }
}
@media (max-width:520px) {
    .event-sticky-header { margin-top:-2px; }
    .event-package-dialog-heading .badge { display:none; }
    .event-package-dialog-heading-copy { grid-template-columns:1fr; }
    .event-package-dialog-heading p { grid-column:1; }
    .event-package-dialog-popout { display:none; }
    .event-package-type-list { grid-template-columns:1fr; }
    .event-package-preview-body { grid-template-columns:1fr; }
    .event-package-preview-body .wide { grid-column:auto; }
    .event-package-preview-milestones,.event-package-preview-responsibility { grid-template-columns:1fr; }
    .event-package-preview-milestones > strong { grid-column:auto; }
    .form-actions.event-package-picker-actions { grid-template-columns:1fr 1fr; }
    .event-package-picker-actions .event-action-status { grid-column:1/-1; }
    .event-package-picker-actions .button { width:100%; }
    .event-work-package-admin-row { grid-template-columns:30px 25px minmax(0,1fr) 62px; }
    .event-work-package-color-choice { grid-column:3/5; grid-row:2; }
    .event-work-package-order-buttons { grid-column:4; grid-row:1; }
    .event-work-package-swatches { gap:.3rem; }
    .event-work-package-swatch { height:32px; }
    .event-work-package-admin-actions { align-items:stretch; flex-direction:column; }
    .event-work-package-admin-actions .button { width:100%; }
}
@media (max-width:520px) {
    .event-card.is-open > .event-summary { grid-template-columns:1fr; }
    .event-card.is-open .event-date-block { display:grid; align-content:center; gap:.1rem; min-height:104px; padding:.65rem .7rem; border-right:0; border-bottom:1px solid var(--line); }
    .event-card.is-open .event-date-block > small { margin-left:0; }
    .event-card.is-open .event-expand-icon { min-height:42px; border-top:1px solid var(--line); border-left:0; }
    .event-summary { grid-template-columns:1fr; }
    .event-date-block { display:grid; align-content:center; gap:.1rem; min-height:104px; padding:.65rem .7rem; border-right:0; border-bottom:1px solid var(--line); }
    .event-date-block > small { margin-left:0; }
    .event-summary-affiliations { top:.6rem; right:.65rem; max-width:52%; }
    .event-summary-affiliations small { margin-left:0; }
    .event-type-badge { margin-left:0; }
    .event-expand-icon { min-height:42px; border-top:1px solid var(--line); border-left:0; }
    .event-affiliation-options { grid-template-columns:1fr; }
    .event-partner-heading { align-items:flex-start; flex-direction:column; }
    .event-tree-hub { max-width:100%; }
    .event-tree-canvas { --tree-indent:16px; --tree-connector:18px; }
    .event-tree-item { min-width:180px; }
    .event-tree-item.is-expanded { min-width:280px; }
    .event-tree-node:has(> .event-tree-item[data-event-depth="0"]) { --event-tree-package-column:494px; }
    .event-tree-node:has(> .event-tree-item[data-event-depth="1"]) { --event-tree-package-column:458px; }
    .event-tree-node:has(> .event-tree-item[data-event-depth="2"]) { --event-tree-package-column:422px; }
    .event-tree-node:has(> .event-tree-item[data-event-depth="3"]) { --event-tree-package-column:386px; }
    .event-tree-node:has(> .event-tree-item[data-event-depth="4"]) { --event-tree-package-column:350px; }
    .event-tree-node { grid-template-columns:minmax(180px,var(--event-tree-package-column)) minmax(170px,280px); column-gap:6px; }
    .event-node-meta { display:none; }
    .event-node-row { grid-template-columns:30px 20px minmax(72px,1fr) auto 30px; }
    .event-node-row-readonly { grid-template-columns:20px minmax(72px,1fr) auto 30px; }
}

.member-form input:not([type="checkbox"]):not([type="radio"]):disabled.is-filled,
.member-form select:disabled.is-filled,
.member-form textarea:disabled.is-filled,
.member-form input[readonly].is-filled,
.member-form textarea[readonly].is-filled {
    opacity: 1;
    color: var(--text);
    -webkit-text-fill-color: var(--text);
    font-weight: 600;
}

.icon {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.auth-icon,
.empty-icon {
    width: 28px;
    height: 28px;
}

.stack {
    display: grid;
    gap: 14px;
}

.narrow {
    max-width: 360px;
}

label {
    display: grid;
    gap: 6px;
    color: var(--muted);
    font-weight: 700;
}

input,
select,
textarea {
    width: 100%;
    min-height: 40px;
    padding: 9px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--text);
    background: #fff;
    font: inherit;
}

textarea {
    resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
    outline: 2px solid rgba(15, 107, 95, .18);
    border-color: var(--primary);
}

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

.wide {
    grid-column: 1 / -1;
}

.actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.form-actions {
    display: flex;
    justify-content: flex-start;
    gap: 10px;
}

.check-list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.check-list label,
.check-inline {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text);
    font-weight: 500;
}

.check-list input,
.check-inline input {
    width: auto;
    min-height: auto;
}

.check-list small {
    color: var(--muted);
}

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

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

.module-access-grid span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.area-access-user-list {
    display: grid;
    gap: 10px;
    margin-top: 16px;
}

.permission-hierarchy-info {
    margin-top: 14px;
    overflow: hidden;
    border: 1px solid #bfd8d3;
    border-radius: 10px;
    background: #f5fbf9;
}

.permission-hierarchy-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    color: var(--primary-dark);
    border-bottom: 1px solid #d4e7e3;
}

.permission-hierarchy-heading .icon {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
}

.permission-hierarchy-heading span,
.permission-hierarchy-heading strong,
.permission-hierarchy-heading small {
    display: block;
}

.permission-hierarchy-heading small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
}

.permission-hierarchy-content {
    padding: 14px;
}

.permission-hierarchy-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.permission-hierarchy-grid article {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 9px;
    padding: 11px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.permission-hierarchy-number {
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--primary);
    font-size: 12px;
    font-weight: 850;
}

.permission-hierarchy-grid article strong {
    font-size: 13px;
}

.permission-hierarchy-grid article p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.permission-hierarchy-result {
    margin: 10px 0 0;
    padding: 10px 12px;
    border-radius: 8px;
    color: var(--text);
    background: #e7f3f0;
    font-size: 12px;
    line-height: 1.5;
}

.area-access-user {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface);
}

.area-access-user-summary {
    display: grid;
    grid-template-columns: minmax(220px, 1.35fr) minmax(160px, 1fr) auto auto;
    align-items: center;
    gap: 14px;
    min-height: 64px;
    padding: 12px 16px;
    cursor: pointer;
    list-style: none;
}

.area-access-user-summary::-webkit-details-marker {
    display: none;
}

.area-access-user-summary:hover {
    background: var(--surface-soft);
}

.area-access-user[open] > .area-access-user-summary {
    border-bottom: 1px solid var(--line);
    background: var(--surface-soft);
}

.area-access-user-identity {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.area-access-user-identity strong {
    overflow: hidden;
    color: var(--text);
    font-size: 15px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.area-access-user-identity small {
    overflow: hidden;
    color: var(--muted);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.area-access-user-roles,
.area-access-user-summary-status {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.area-access-user-summary-status {
    justify-content: flex-end;
}

.area-access-user-summary .badge.warning {
    color: #7a5700;
    background: #fff4cc;
}

.area-access-user-area-count {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.area-access-user-expand {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    color: var(--primary-dark);
    font-size: 0;
    font-weight: 800;
    white-space: nowrap;
}

.area-access-user-expand::before {
    content: 'Aufklappen';
    font-size: 12px;
}

.area-access-user[open] .area-access-user-expand::before {
    content: 'Zuklappen';
}

.area-access-user-expand::after {
    content: '⌄';
    font-size: 18px;
    line-height: 1;
    transform: translateY(-2px);
}

.area-access-user[open] .area-access-user-expand::after {
    content: '⌃';
    transform: translateY(2px);
}

.area-access-user-body {
    display: grid;
    gap: 18px;
    padding: 18px;
}

.area-access-user [hidden] {
    display: none !important;
}

.area-access-user-settings {
    display: grid;
    grid-template-columns: minmax(280px, .8fr) minmax(320px, 1.2fr);
    gap: 14px;
}

.area-access-user-settings > section,
.area-access-permissions {
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--surface-soft);
}

.area-access-user-settings h3,
.area-access-permissions h3 {
    margin: 0 0 12px;
    font-size: 14px;
}

.user-name {
    display: inline-flex;
    font-weight: 800;
}

.user-profile-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    max-width: none;
}

.user-profile-form label {
    gap: 4px;
    color: var(--muted);
    font-size: 12px;
}

.user-profile-form input {
    min-height: 34px;
    padding: 7px 9px;
    font-size: 14px;
    font-weight: 700;
}

.user-profile-status {
    grid-column: 1 / -1;
    justify-self: flex-start;
}

.user-profile-form .check-inline {
    grid-column: 1 / -1;
}

.user-organisation-markers {
    grid-column: 1 / -1;
    display: grid;
    gap: 9px;
}

.user-staff-area-permissions {
    display: grid;
    gap: 8px;
    margin-left: 22px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: rgba(255, 255, 255, .58);
    transition: opacity .18s ease;
}

.user-staff-area-permissions.is-disabled {
    opacity: .6;
}

.user-staff-area-permissions-title {
    color: var(--text);
    font-size: 12px;
    font-weight: 800;
}

.user-staff-area-permission-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px 12px;
}

.user-profile-form .user-staff-area-permission,
.user-create-staff-area-permissions .user-staff-area-permission {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    color: var(--text);
    font-weight: 700;
}

.user-create-staff-area-permissions {
    margin-left: 0;
}

.user-create-staff-area-permissions > small {
    color: var(--muted);
    font-weight: 600;
}

.user-profile-form .user-staff-area-permission input,
.user-create-staff-area-permissions .user-staff-area-permission input {
    width: auto;
    min-height: 0;
    padding: 0;
}

.user-staff-area-permission span,
.user-staff-area-permission .icon {
    display: inline-flex;
    align-items: center;
}

.user-staff-area-permission span {
    gap: 5px;
}

.user-staff-area-permission .icon {
    width: 15px;
    height: 15px;
    color: var(--primary);
}

@media (max-width: 700px) {
    .user-staff-area-permission-grid {
        grid-template-columns: 1fr;
    }
}

.badge-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.area-access-user-actions {
    display:flex;
    align-items:center;
    gap:.5rem;
    flex-wrap:wrap;
    margin-top: 0;
}

.area-access-user-actions form { margin:0; }

.area-access-status {
    margin: 0;
}

.area-access-permissions-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.area-access-permissions-heading h3 {
    margin-bottom: 0;
}

.area-access-permission-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(180px, 1fr));
    gap: 8px;
    margin-top: 12px;
}

.area-access-permission-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 48px;
    padding: 9px 11px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.area-access-permission-name {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 750;
}

.user-role-detail-panel {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}

.user-role-detail-panel .role-form-inline {
    box-shadow: inset 3px 0 0 var(--primary);
}

.role-form-inline {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.role-form-context {
    flex: 1 0 100%;
}

.role-form-context strong,
.role-form-context small {
    display: block;
}

.role-form-context small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
}

.role-form-user {
    min-width: 220px;
    margin-right: 8px;
}

.role-form-user small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
}

@media (max-width: 1200px) {
    .area-access-user-summary {
        grid-template-columns: minmax(220px, 1.25fr) minmax(150px, 1fr) auto;
    }

    .area-access-user-expand {
        grid-column: 3;
        grid-row: 1 / span 2;
    }

    .area-access-user-summary-status {
        grid-column: 1 / 3;
        justify-content: flex-start;
    }

    .area-access-permission-grid {
        grid-template-columns: repeat(3, minmax(180px, 1fr));
    }
}

@media (max-width: 820px) {
    .area-access-user-summary {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .area-access-user-roles,
    .area-access-user-summary-status {
        grid-column: 1;
    }

    .area-access-user-expand {
        grid-column: 2;
        grid-row: 1 / span 3;
    }

    .area-access-user-settings {
        grid-template-columns: 1fr;
    }

    .permission-hierarchy-grid {
        grid-template-columns: 1fr;
    }

    .area-access-permission-grid {
        grid-template-columns: repeat(2, minmax(150px, 1fr));
    }
}

@media (max-width: 560px) {
    .area-access-user-summary,
    .area-access-user-body {
        padding: 12px;
    }

    .area-access-user-expand {
        width: 22px;
        overflow: hidden;
        color: transparent;
        gap: 0;
    }

    .area-access-user-expand::after {
        color: var(--primary-dark);
    }

    .area-access-user-expand::before {
        display: none;
    }

    .user-profile-form,
    .area-access-permission-grid {
        grid-template-columns: 1fr;
    }

    .area-access-permission-card {
        align-items: flex-start;
    }
}

.role-form-user strong,
.role-form-user small {
    display: block;
}

.user-role-status {
    margin-left: auto;
}

.role-matrix-table th:not(:first-child),
.role-matrix-table td:not(:first-child) {
    text-align: center;
    width: 150px;
}

.role-matrix-table td:first-child small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
}

.role-matrix-group td {
    color: var(--primary-dark);
    background: #e9f4f2;
    font-weight: 800;
}

.permission-granted {
    color: var(--primary-dark);
    font-weight: 800;
}

.permission-granted .icon {
    width: 15px;
    height: 15px;
    vertical-align: -2px;
}

.permission-denied {
    color: var(--muted);
}

.system-check-summary {
    grid-template-columns: minmax(280px, 1.35fr) repeat(4, minmax(0, 1fr));
    margin-bottom: 18px;
}

.system-check-search-tile {
    align-content: start;
    min-width: 0;
}

.system-check-search-form {
    display: grid;
    gap: 8px;
}

.system-check-search-form label {
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.system-check-search-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.system-check-search-row input {
    min-width: 0;
    flex: 1;
}

.system-check-search-row .button {
    white-space: nowrap;
}

.system-check-search-form small {
    min-height: 16px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.35;
}

.system-check-headline .panel-heading {
    margin-bottom: 0;
}

.system-check-headline-detail {
    margin: 6px 0 0;
    color: var(--text);
    font-weight: 700;
}

.system-check-details {
    padding: 0;
    overflow: hidden;
}

.system-check-summary-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    min-height: 72px;
    padding: 20px;
    cursor: pointer;
    list-style: none;
}

.system-check-summary-row::-webkit-details-marker {
    display: none;
}

.system-check-summary-row::after {
    content: "";
    width: 9px;
    height: 9px;
    margin-top: 9px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    color: var(--muted);
    transform: rotate(45deg);
    transition: transform .14s ease;
}

.system-check-details[open] .system-check-summary-row::after {
    transform: rotate(225deg);
}

.system-check-summary-row h2 {
    margin-bottom: 4px;
}

.system-check-header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
    margin-left: auto;
}

.system-check-badges {
    justify-content: flex-end;
    margin-top: 0;
    padding-top: 2px;
}

.system-check-panel-action {
    margin: 0;
}

.system-check-details .table-wrap {
    margin: 0 20px 20px;
}

.system-check-integration-config {
    margin: 0 20px 20px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}

.system-check-integration-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.35fr);
    gap: 16px;
}

.system-check-integration-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
}

.system-check-integration-card .panel-heading {
    margin-bottom: 12px;
}

.system-check-integration-card > .table-wrap {
    margin: 0;
}

.system-check-integration-card .sevdesk-env-example {
    margin-bottom: 12px;
}

.system-check-integration-card .flash:last-child {
    margin-bottom: 0;
}

.system-check-planned-use {
    margin-top: 16px;
}

.system-check-phplist-help {
    margin-top: 16px;
}

.system-check-phplist-help ol {
    margin: 14px 0 0;
    padding-left: 22px;
}

.system-check-phplist-help li + li {
    margin-top: 8px;
}

.system-check-phplist-locations {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 20px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}

.system-check-phplist-locations p {
    margin: 0;
}

.system-check-planned-use > .table-wrap {
    margin: 0;
}

@media (max-width: 900px), (hover: none) and (pointer: coarse) and (max-width: 1000px) and (max-height: 600px) {
    .system-check-integration-grid {
        grid-template-columns: 1fr;
    }

    .system-check-phplist-locations {
        grid-template-columns: 1fr;
    }
}

.system-check-table {
    min-width: 1080px;
}

.system-check-table th:first-child,
.system-check-table td:first-child {
    width: 150px;
}

.system-check-table th:nth-child(2),
.system-check-table td:nth-child(2) {
    width: 250px;
}

.system-check-table td {
    vertical-align: middle;
}

.system-check-action-note {
    margin-bottom: 8px;
}

.system-check-action-form {
    margin: 0;
    display: flex;
    align-items: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.system-check-date-field {
    display: grid;
    gap: 4px;
    min-width: 165px;
    font-size: 12px;
    font-weight: 800;
    color: var(--muted);
}

.system-check-date-field input {
    min-height: 34px;
    padding: 5px 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--text);
    font: inherit;
}

.system-check-date-control {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
    align-items: center;
}

.system-check-date-field input:disabled {
    opacity: 1;
    color: var(--text);
    background: var(--surface-soft);
    cursor: not-allowed;
}

.system-check-date-edit {
    display: inline-grid;
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    place-items: center;
    color: var(--muted);
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    cursor: pointer;
}

.system-check-date-edit:hover,
.system-check-date-edit:focus-visible {
    color: var(--primary-dark);
    border-color: var(--primary);
    background: var(--surface-soft);
}

.system-check-date-edit .icon {
    width: 17px;
    height: 17px;
}

.system-check-date-edit[hidden],
.system-check-date-submit[hidden] {
    display: none !important;
}

.check-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 28px;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.check-status .icon {
    width: 15px;
    height: 15px;
}

.check-status-ok,
.check-badge-ok {
    color: var(--primary-dark);
    background: #dff1ed;
}

.check-status-warning,
.check-badge-warning {
    color: #8a5200;
    background: #ffedbf;
}

.check-status-error,
.check-badge-error {
    color: #8d1f1f;
    background: #ffd6d6;
}

.check-status-info {
    color: #486178;
    background: #eaf0f5;
}

.system-check-table .system-check-row-error > td {
    background-color: #ffe1e1;
}

.system-check-table .system-check-row-error > td:first-child {
    box-shadow: inset 6px 0 0 var(--danger);
}

.system-check-table .system-check-row-warning > td {
    background-color: #fff0c2;
}

.system-check-table .system-check-row-warning > td:first-child {
    box-shadow: inset 6px 0 0 var(--warning);
}

.system-check-table .system-check-row.is-search-hit > td {
    box-shadow: inset 0 0 0 2px rgba(8, 119, 103, .45);
}

.system-check-table .system-check-row.is-search-hit > td:first-child {
    box-shadow: inset 6px 0 0 var(--primary), inset 0 0 0 2px rgba(8, 119, 103, .45);
}

.role-management-table td {
    vertical-align: top;
}

.role-management-table th:first-child,
.role-management-table td:first-child {
    width: 90px;
}

.individual-permission-overview {
    margin-top: 16px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.individual-permission-overview > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    background: var(--surface-soft);
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.individual-permission-overview > summary::-webkit-details-marker {
    display: none;
}

.individual-permission-overview > summary > span:first-child {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.individual-permission-overview > summary::after {
    content: "";
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transition: transform .14s ease;
}

.individual-permission-overview[open] > summary::after {
    transform: rotate(225deg) translateY(-2px);
}

.individual-permission-overview > .table-wrap {
    padding: 0 14px 14px;
}

.individual-permission-table td > small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
}

.individual-permission-state {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 800;
}

.individual-permission-state .icon {
    width: 15px;
    height: 15px;
}

.individual-permission-state.is-allowed {
    color: var(--success);
}

.individual-permission-state.is-denied {
    color: var(--danger);
}

.role-management-table th:last-child,
.role-management-table td:last-child {
    width: 150px;
}

.role-permission-details {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.role-permission-details > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 42px;
    padding: 9px 12px;
    background: var(--surface-soft);
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.role-permission-details > summary::-webkit-details-marker {
    display: none;
}

.role-permission-details > summary::after {
    content: "";
    width: 8px;
    height: 8px;
    margin-left: 2px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    color: var(--muted);
    transform: rotate(45deg) translateY(-2px);
    transition: transform .14s ease;
}

.role-permission-details[open] > summary::after {
    transform: rotate(225deg) translateY(-2px);
}

.role-permission-details > summary .badge {
    margin-left: auto;
}

.role-permission-details-body {
    padding: 12px;
}

.role-permission-fieldset {
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 14px;
}

.role-permission-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(220px, 1fr));
    gap: 12px;
}

.role-permission-grid.compact {
    grid-template-columns: repeat(2, minmax(200px, 1fr));
    gap: 10px;
}

.role-permission-group {
    display: grid;
    gap: 7px;
    align-content: start;
    padding: 10px;
    border: 1px solid var(--line);
    border-right: 4px solid #2d8cff;
    border-radius: 8px;
    background: var(--surface-soft);
}

.role-permission-group strong {
    color: var(--primary-dark);
}

.role-permission-group label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-weight: 600;
    line-height: 1.3;
}

.role-permission-group input[type="checkbox"] {
    width: auto;
    min-height: auto;
    margin-top: 2px;
}

.role-location-permissions {
    display: grid;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}

.inventory-location-permission-list {
    display: grid;
    gap: 8px;
}

.inventory-location-permission-row {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) auto auto;
    align-items: center;
    gap: 10px 18px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.inventory-location-permission-row label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
}

.inventory-location-permission-row input[type="checkbox"] {
    width: auto;
    min-height: auto;
}

.inventory-location-permission-list.compact .inventory-location-permission-row {
    grid-template-columns: minmax(150px, 1fr) auto;
}

.inventory-location-permission-list.compact .inventory-location-permission-row > strong {
    grid-column: 1 / -1;
}

@media (max-width: 720px) {
    .inventory-location-permission-row,
    .inventory-location-permission-list.compact .inventory-location-permission-row {
        grid-template-columns: 1fr;
    }

    .inventory-location-permission-list.compact .inventory-location-permission-row > strong {
        grid-column: auto;
    }
}

.area-access-check {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--text);
    font-weight: 600;
    white-space: nowrap;
}

.area-access-check input {
    width: auto;
    min-height: auto;
}

.detail-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 20px;
}

.detail-grid div {
    padding: 12px;
    border-radius: 8px;
    background: var(--surface-soft);
}

.detail-grid span {
    display: block;
    color: var(--muted);
    font-size: 12px;
}

.detail-grid strong {
    display: block;
    margin-top: 4px;
}

.chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0;
}

.chips span {
    padding: 6px 9px;
    border-radius: 999px;
    background: var(--surface-soft);
}

.timeline {
    display: grid;
    gap: 10px;
    padding-left: 20px;
}

.timeline span {
    display: block;
    color: var(--muted);
    font-size: 13px;
}

.comments {
    display: grid;
    gap: 12px;
    margin-bottom: 16px;
}

.comments article {
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
}

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

.comment-form {
    display: grid;
    gap: 10px;
}

.comments-split {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr);
    align-items: start;
    gap: 18px;
    margin-bottom: 18px;
}

.comments-split .panel {
    margin-bottom: 0;
}

.comments-split .comments {
    margin-bottom: 0;
}

.comment-head-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-left: auto;
}

.comment-sort {
    display: none;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.has-sortable-comments .comment-sort {
    display: inline-flex;
}

.comment-sort .button {
    min-height: 32px;
}

.comment-sort .button.is-active {
    border-color: var(--primary);
    color: #fff;
    background: var(--primary);
}

[data-comment-ajax-region] {
    transition: opacity .12s ease;
}

[data-comment-loading="true"] [data-comment-ajax-region] {
    opacity: .62;
}

[data-comment-page-target][aria-disabled="true"] {
    pointer-events: none;
}

.comment-item {
    display: grid;
    grid-template-columns: 55px minmax(0, 1fr);
    gap: 12px;
    background: linear-gradient(180deg, #fff, #fbfdfc);
}

.comments article.comment-item-with-actions {
    padding-bottom: 7px;
}

.comment-avatar {
    display: grid;
    place-items: center;
    width: 55px;
    aspect-ratio: 1;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: var(--primary-dark);
    background: var(--surface-soft);
    font-size: 20px;
    font-weight: 900;
}

.comment-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translate(var(--avatar-x, 0px), var(--avatar-y, 0px)) scale(var(--avatar-zoom, 1));
    transform-origin: center center;
}

.comment-content {
    min-width: 0;
}

.comment-meta {
    display: flex;
    align-items: center;
    gap: 10px;
}

.comment-meta {
    flex-wrap: wrap;
    margin-bottom: 6px;
}

.comment-meta strong {
    font-size: 14px;
}

.comment-content p {
    margin-bottom: 0;
}

.comment-actions {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 6px;
}

.comment-delete-form {
    margin: 0;
}

.comment-actions .button.danger {
    color: var(--danger);
    border-color: var(--line);
    background: var(--surface);
}

.comment-actions .button.danger:hover {
    color: #7f1f1f;
    border-color: rgba(161, 43, 43, 0.45);
    background: #fff6f6;
}

.comment-edit-panel {
    display: grid;
    gap: 8px;
}

.comment-edit-panel[open] {
    flex: 1 1 100%;
    width: 100%;
}

.comment-edit-panel summary {
    list-style: none;
}

.comment-edit-panel[open] > summary,
.comment-edit-panel[open] + .comment-delete-form {
    display: none;
}

.comment-edit-panel summary::-webkit-details-marker {
    display: none;
}

.comment-edit-form {
    display: grid;
    gap: 10px;
    width: 100%;
}

.comment-edit-form .comment-edit-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.comment-edit-form .comment-edit-actions .button {
    width: auto;
}

.mention {
    display: inline;
    padding: 1px 5px;
    border-radius: 5px;
    color: var(--primary-dark);
    background: #e9f4f2;
    font-weight: 800;
}

.mention-box {
    position: relative;
    display: block;
}

.mention-suggestions {
    position: absolute;
    z-index: 20;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    display: grid;
    gap: 4px;
    padding: 6px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.mention-suggestions[hidden] {
    display: none;
}

.mention-suggestion {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 8px 10px;
    border: 0;
    border-radius: 6px;
    color: var(--text);
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.mention-suggestion[data-active="true"],
.mention-suggestion:hover {
    color: var(--primary-dark);
    background: var(--surface-soft);
}

.mention-suggestion small {
    color: var(--muted);
    font-size: 12px;
}

.comment-entry-panel {
    position: sticky;
    top: 86px;
}

.preline {
    white-space: pre-line;
}

.definition-list {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 8px 14px;
}

.definition-list dt {
    color: var(--muted);
    font-weight: 700;
}

.definition-list dd {
    margin: 0;
}

.profile-detail-column .definition-list {
    width: 100%;
    grid-template-columns: max-content minmax(0, 1fr);
}

.profile-detail-column .definition-list dt {
    white-space: nowrap;
}

.profile-layout {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    align-items: stretch;
}

.profile-column {
    display: grid;
    gap: 16px;
    align-content: start;
    justify-items: start;
    min-width: 0;
    padding: 6px 32px 10px;
}

.profile-column:first-child {
    padding-left: 0;
}

.profile-column:last-child {
    padding-right: 0;
}

.profile-column + .profile-column {
    border-left: 1px solid var(--line);
}

.profile-column-heading {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.profile-column-heading h3 {
    margin: 1px 0 3px;
    font-size: 16px;
}

.profile-column-heading p,
.profile-security-description {
    margin: 0;
    color: var(--muted);
    line-height: 1.55;
}

.profile-column-icon {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    color: var(--primary-dark);
    background: var(--surface-soft);
}

.profile-security-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 9px 12px;
    border-radius: 8px;
    font-weight: 700;
}

.profile-security-status.is-active {
    color: var(--primary-dark);
    background: var(--surface-soft);
}

.profile-security-status.is-inactive {
    color: var(--muted);
    background: var(--surface-soft);
}

.profile-avatar-preview {
    display: grid;
    place-items: center;
    width: 180px;
    max-width: 100%;
    aspect-ratio: 1;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: var(--primary-dark);
    background: var(--surface-soft);
    box-shadow: inset 0 0 0 6px rgba(255, 255, 255, .72);
}

.profile-avatar-preview.is-draggable {
    cursor: grab;
    touch-action: none;
}

.profile-avatar-preview.is-dragging {
    cursor: grabbing;
}

.profile-avatar-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translate(var(--avatar-x, 0px), var(--avatar-y, 0px)) scale(var(--avatar-zoom, 1));
    transform-origin: center center;
    user-select: none;
    will-change: transform;
}

.profile-avatar-preview span {
    font-size: 58px;
    font-weight: 900;
}

.profile-upload-form {
    max-width: 320px;
}

.profile-adjust-form {
    display: grid;
    gap: 14px;
    max-width: 680px;
    padding: 14px 0;
    border-block: 1px solid var(--line);
}

.profile-image-tools {
    width: 180px;
    max-width: 100%;
    padding: 0;
    border-block: 0;
}

.profile-image-tools .profile-control-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
}

.profile-image-tools .profile-control-row output {
    min-height: auto;
    padding-top: 0;
    text-align: left;
}

.profile-control-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 74px;
    gap: 14px;
    align-items: end;
}

.profile-control-row output {
    min-height: 40px;
    padding-top: 10px;
    color: var(--muted);
    font-weight: 800;
    text-align: right;
    white-space: nowrap;
}

.profile-save-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

input[type="file"] {
    min-height: 44px;
}

input[type="range"] {
    min-height: 32px;
    padding-inline: 0;
    accent-color: var(--primary);
}

.tree-select {
    position: relative;
}

.tree-select-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--text);
    background: #fff;
    font: inherit;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}

.tree-select-trigger::after {
    content: "";
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transition: transform .14s ease;
}

.tree-select-trigger span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tree-select.is-open .tree-select-trigger::after {
    transform: rotate(225deg) translateY(-1px);
}

.tree-select-trigger:focus {
    outline: 2px solid rgba(15, 107, 95, .18);
    border-color: var(--primary);
}

.tree-select-menu {
    position: absolute;
    z-index: 20;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    height: min(320px, 58vh);
    min-height: 180px;
    max-height: 72vh;
    overflow: auto;
    resize: vertical;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.tree-group {
    display: grid;
    gap: 6px;
}

.tree-group + .tree-group {
    margin-top: 7px;
    padding-top: 7px;
    border-top: 1px solid var(--line);
}

.tree-group-type {
    margin-left: 10px;
    padding-left: 10px;
    border-left: 2px solid var(--line);
}

.tree-group-title {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.tree-options {
    display: grid;
    gap: 3px;
}

.tree-option {
    display: grid;
    grid-template-columns: minmax(180px, .42fr) minmax(0, 1fr);
    align-items: center;
    gap: 8px 14px;
    width: 100%;
    padding: 6px 8px;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--text);
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.tree-option:hover,
.tree-option[aria-selected="true"] {
    border-color: var(--line);
    background: var(--surface-soft);
}

.tree-option-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 800;
}

.tree-option-meta {
    display: flex;
    min-width: 0;
    flex-wrap: nowrap;
    gap: 10px;
    overflow: hidden;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.25;
    white-space: nowrap;
}

.tree-option-meta span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.inline-form {
    display: flex;
    gap: 8px;
    margin: 12px 0;
}

.reset-form {
    align-items: end;
}

.reset-form label {
    min-width: 280px;
}

.danger-panel {
    border-color: rgba(161, 43, 43, .35);
}

.role-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.role-form label {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--text);
    font-weight: 500;
}

.role-form input {
    width: auto;
    min-height: auto;
}

.drag-handle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--muted);
    background: var(--surface);
    cursor: grab;
}

.drag-handle:active {
    cursor: grabbing;
}

.drag-handle:disabled {
    cursor: not-allowed;
    opacity: .55;
}

[data-sortable-types] tr,
[data-sortable-roles] tr {
    transition: background .12s ease, opacity .12s ease;
}

[data-sortable-types] tr.is-dragging,
[data-sortable-roles] tr.is-dragging {
    opacity: .45;
}

[data-sortable-types] tr.drag-over td,
[data-sortable-roles] tr.drag-over td {
    background: var(--surface-soft);
}

.type-reorder-form {
    display: flex;
    justify-content: flex-end;
    margin-top: 14px;
}

.autosave-status {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 8px;
    border-radius: 999px;
    color: var(--muted);
    background: var(--surface-soft);
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.autosave-status[data-state="dirty"],
.autosave-status[data-state="saving"] {
    color: var(--warning);
    background: #fff8e8;
}

.autosave-status[data-state="saved"] {
    color: var(--primary-dark);
    background: #dff1ed;
}

.autosave-status[data-state="error"] {
    color: var(--danger);
    background: #fdeaea;
}

.pagination {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 16px;
}

.pagination-summary {
    color: var(--muted);
    font-weight: 700;
}

.button.disabled {
    opacity: .55;
    cursor: not-allowed;
}

.flash {
    padding: 12px 14px;
    margin-bottom: 16px;
    border-radius: 8px;
    font-weight: 700;
}

.flash.success {
    color: var(--primary-dark);
    background: #dff1ed;
}

.flash.error {
    color: var(--danger);
    background: #fdeaea;
}

.flash.warning {
    color: var(--warning);
    background: #fff2cf;
}

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

.empty-panel {
    padding: 46px;
}

.secret-box {
    display: grid;
    gap: 6px;
    width: fit-content;
    max-width: 100%;
    padding: 14px;
    border-radius: 8px;
    background: var(--surface-soft);
}

.secret-box strong,
.break-word {
    overflow-wrap: anywhere;
}

.otp-fieldset {
    display: grid;
    gap: 13px;
    margin: 0;
    padding: 0;
    border: 0;
}

.otp-fieldset legend {
    padding: 0;
    color: var(--muted);
    font-weight: 800;
    line-height: 1.25;
}

.otp-cells {
    display: grid;
    grid-template-columns: repeat(6, 50px);
    gap: 10px;
    max-width: 100%;
}

.otp-cell {
    width: 100%;
    height: 50px;
    min-height: 50px;
    padding: 0;
    text-align: center;
    font-size: 24px;
    font-weight: 900;
}

.auth-card-otp .otp-fieldset {
    display: block;
}

.auth-card-otp .otp-fieldset legend {
    display: block;
    width: 100%;
    margin: 0 0 18px;
    text-align: left;
}

.auth-card-otp .otp-cells {
    grid-template-columns: repeat(6, 46px);
    justify-content: start;
    gap: 9px;
}

.auth-card-otp .otp-cell {
    height: 48px;
    min-height: 48px;
}

.two-factor-grid {
    display: grid;
    grid-template-columns: 344px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
    margin-bottom: 18px;
}

.qr-card {
    width: 344px;
    max-width: 100%;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.qr-code {
    display: grid;
    place-items: center;
    width: min(320px, 100%);
    aspect-ratio: 1;
    height: auto;
    margin-bottom: 10px;
}

.qr-code svg {
    display: block;
    width: 100%;
    height: 100%;
}

.qr-error {
    color: var(--danger);
    font-weight: 700;
    text-align: center;
}

.install-body {
    min-height: 100vh;
    display: grid;
    place-items: center;
    background: var(--bg);
}

@media (min-width: 1921px) and (max-width: 2240px) {
    .topbar {
        gap: 10px;
    }

    .brand-logo {
        height: 38px;
        max-width: 60px;
    }

    .main-nav {
        gap: 2px;
    }

    .main-nav a {
        gap: 5px;
        padding-inline: 6px;
        font-size: 14px;
    }

    .main-nav a > .icon {
        width: 17px;
        height: 17px;
    }
}

@media (min-width: 1181px) and (max-width: 1920px) {
    .topbar {
        gap: 8px;
    }

    .brand-logo {
        height: 38px;
        max-width: 60px;
    }

    .main-nav {
        gap: 1px;
    }

    .main-nav a {
        gap: 4px;
        padding-inline: 5px;
        font-size: 13.5px;
    }

    .main-nav a > .icon {
        width: 16px;
        height: 16px;
    }
}

@media (max-width: 1180px) {
    :root {
        --content-gutter: 24px;
    }

    .addresslist-sticky-controls {
        top: 106px;
    }

    .calls-sticky-controls {
        top: 106px;
    }

    .calls-primary-controls {
        display: block;
    }

    .calls-tabs {
        border-bottom: 1px solid var(--line);
    }

    .calls-searchbar {
        width: 100%;
        min-width: 0;
        max-width: none;
        margin-left: 0;
        background: #f8fbfa;
    }

    .addresslist-workbench .table-wrap {
        overflow-x: auto;
    }

    .topbar {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 10px 14px;
    }

    .brand {
        min-width: 0;
        flex: 1 1 auto;
    }

    .brand-logo {
        height: 32px;
        max-width: 160px;
    }

    .main-nav {
        order: 3;
        width: 100%;
        justify-content: flex-start;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }

    .nav-entry {
        flex: 0 0 auto;
    }

    .submenu {
        position: fixed;
        top: 106px;
        right: 24px;
        left: auto;
        max-width: calc(100vw - 48px);
        max-height: min(420px, 58vh);
        overflow: auto;
    }

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

    #tools-grid.tools-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .dashboard-status-metric {
        grid-column: auto;
    }

    .role-permission-grid {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }

    .call-row-shell {
        --call-summary-columns: 76px minmax(0, .8fr) 64px minmax(0, 1fr) 112px minmax(0, 1.4fr) 54px 142px 64px;
    }

    .call-labels {
        column-gap: 14px;
    }

    .call-callback-indicator {
        line-height: 1.25;
        white-space: normal;
    }

    .call-detail {
        grid-template-columns: minmax(0, 1fr) minmax(300px, .85fr);
    }

    .call-detail-main,
    .call-comments {
        grid-column: 1;
    }

    .call-comments {
        margin-top: 18px;
        padding: 18px 0 0;
        border-top: 1px solid var(--line);
        border-left: 0;
    }

    .call-comment-compose {
        grid-column: 2;
        grid-row: 1 / span 2;
    }
}

@media (max-width: 900px), (hover: none) and (pointer: coarse) and (max-width: 1000px) and (max-height: 600px) {
    .account-dashboard-calendar-list {
        grid-template-columns: 1fr;
    }

    .dashboard-status-metric {
        grid-column: auto;
    }

    .dashboard-planner-grid,
    .dashboard-planner-grid.is-calendar-only { grid-template-columns: 1fr; }
    .dashboard-week-panel,
    .dashboard-planner-sidebar { grid-column: 1; }
    .dashboard-open-todo-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    :root {
        --content-gutter: 16px;
    }

    .topbar {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .brand {
        min-width: 0;
    }

    .main-nav {
        width: 100%;
    }

    .main-nav a,
    .logout-form button {
        min-height: 38px;
        padding: 7px 9px;
    }

    input,
    select,
    textarea {
        font-size: 16px;
    }

    .split,
    .comments-split,
    .metric-grid,
    .form-grid,
    .addresslist-edit-grid,
    .contact-form-grid,
    .two-factor-grid,
    .detail-grid,
    .profile-layout {
        grid-template-columns: 1fr;
    }

    #tools-grid.tools-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .event-external-contact-dialog .contact-form-grid {
        grid-template-columns: 1fr;
    }

    .profile-column,
    .profile-column:first-child,
    .profile-column:last-child {
        padding: 20px 0;
    }

    .profile-column:first-child {
        padding-top: 4px;
    }

    .profile-column:last-child {
        padding-bottom: 4px;
    }

    .profile-column + .profile-column {
        border-top: 1px solid var(--line);
        border-left: 0;
    }

    .page-heading {
        display: grid;
    }

    .dashboard-bridge-summary {
        justify-items: start;
    }

    .dashboard-bridge-status {
        justify-self: start;
        max-width: 100%;
        margin-top: 0;
        white-space: normal;
    }

    .page-heading .button,
    .section-actions .button {
        width: auto;
    }

    .contact-heading-actions,
    .addresslist-heading-actions {
        justify-content: flex-start;
    }

    .contact-search-row {
        grid-template-columns: max-content minmax(0, 1fr);
    }

    .contact-selection-controls {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }

    .panel-heading {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .panel-heading > * {
        min-width: 0;
    }

    .addresslist-control-row {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .addresslist-actions {
        margin-left: 0;
    }

    .contact-toolbar,
    .contact-filters {
        align-items: flex-start;
        justify-content: flex-start;
    }

    .contact-profile-field {
        grid-template-columns: 1fr;
    }

    .section-actions {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 2px;
    }

    .section-actions .button {
        flex: 0 0 auto;
    }

    .module-access-grid,
    .role-permission-grid,
    .role-permission-grid.compact {
        grid-template-columns: 1fr;
    }

    .role-form-inline {
        display: grid;
        grid-template-columns: 1fr;
    }

    .role-form-user,
    .user-role-status {
        min-width: 0;
        margin-right: 0;
        margin-left: 0;
    }

    .calls-heading {
        align-items: stretch;
    }

    .calls-heading-actions {
        justify-content: flex-start;
    }

    .calls-sync-meta {
        max-width: none;
        text-align: left;
    }

    .calls-metric-value-row {
        flex-wrap: wrap;
    }

    .calls-filterbar {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 16px;
        -webkit-overflow-scrolling: touch;
    }

    .calls-searchbar {
        padding-inline: 16px;
    }

    .calls-filter {
        flex: 0 0 auto;
    }

    .call-summary {
        grid-template-columns: 92px minmax(0, 1fr) auto;
        gap: 6px 10px;
        min-height: 68px;
        padding: 10px 16px 10px 24px;
    }

    .call-row-controls {
        display: block;
        min-height: 0;
        padding: 0;
    }

    .call-row-controls > .call-do-not-callback-button {
        position: absolute;
        top: 82px;
        left: 126px;
    }

    .call-resolved-control {
        grid-row: 1 / span 5;
    }

    .call-kind,
    .call-target-area,
    .call-number-area,
    .call-do-not-callback-slot,
    .call-labels {
        grid-column: 2 / 3;
    }

    .call-target-area {
        margin-inline: 0;
    }

    .call-labels {
        display: flex;
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: 6px 10px;
    }

    .call-label-slot,
    .call-label-slot-contact,
    .call-label-slot-status,
    .call-label-slot-callback {
        justify-content: flex-start;
    }

    .call-duration {
        grid-column: 3 / 4;
        font-size: 12px;
    }

    .call-date {
        grid-column: 3 / 4;
        justify-self: end;
        font-size: 12px;
    }

    .call-detail {
        grid-template-columns: 1fr;
        padding: 12px 18px 22px 34px;
    }

    .call-detail-main,
    .call-comments,
    .call-comment-compose {
        grid-column: 1;
        grid-row: auto;
    }

    .call-detail-main {
        padding-right: 0;
    }

    .call-comment-compose {
        margin-top: 18px;
        padding: 18px 0 0;
        border-top: 1px solid var(--line);
        border-left: 0;
    }

    .call-detail-close {
        align-self: flex-start;
        order: 2;
        margin: 20px 0 0;
    }

    .call-entry-meta {
        order: 3;
        text-align: left;
    }

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

    .call-audio .button {
        grid-column: 2;
        justify-self: end;
    }

    .comment-entry-panel {
        position: static;
    }

    .comment-head-actions {
        flex-wrap: wrap;
        justify-content: flex-start;
        margin-left: 0;
    }

    .tree-group-type {
        margin-left: 10px;
        padding-left: 10px;
    }

    .secret-field {
        min-width: 0;
        flex-wrap: wrap;
    }

    .secret-value {
        max-width: 100%;
    }
}

@media (max-width: 600px) {
    #tools-grid.tools-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

@media (max-width: 560px) {
    :root {
        --content-gutter: 10px;
    }

    .dashboard-calendar-event-dialog {
        width: calc(100vw - 20px);
        max-height: calc(100dvh - 20px);
    }

    .dashboard-calendar-event-dialog-header,
    .dashboard-calendar-event-dialog-content,
    .dashboard-calendar-event-dialog-actions {
        padding-right: 15px;
        padding-left: 15px;
    }

    .dashboard-calendar-event-details > div {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    .dashboard-data-grid > div {
        align-items: center;
        flex-direction: row;
        gap: 12px;
    }

    .dashboard-today-task {
        grid-template-columns: minmax(0, 1fr);
        gap: 2px;
    }

    .dashboard-week-panel,
    .dashboard-open-todos-panel { padding: 13px; }

    .dashboard-week-days {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .dashboard-calendar-day {
        display: grid;
        grid-template-columns: 62px minmax(0, .9fr) minmax(0, 1.1fr);
        border-top: 1px solid var(--line);
        border-left: 0;
    }

    .dashboard-week-column-headings {
        grid-template-columns: 62px minmax(0, .9fr) minmax(0, 1.1fr);
    }

    .dashboard-calendar-day:first-child { border-top: 0; }

    .dashboard-calendar-day > header {
        min-height: 68px;
        align-content: center;
        align-items: center;
        flex-direction: column;
        justify-content: center;
        border-right: 1px solid var(--line);
        border-bottom: 0;
    }

    .dashboard-calendar-day-entries {
        grid-template-columns: minmax(0, 1fr);
        min-height: 68px;
        max-height: none;
        padding: 5px;
    }

    .dashboard-calendar-entry { padding: 7px; }

    .dashboard-open-todo-list { grid-template-columns: 1fr; }

    .page-shell {
        width: min(100% - 20px, var(--content-max));
        margin-top: 14px;
    }

    .contact-search-row {
        grid-template-columns: 1fr;
    }

    .contact-search-row > label,
    .contact-search-row > input,
    .contact-selection-controls {
        grid-column: 1;
    }

    .topbar {
        gap: 8px 10px;
        min-height: 0;
        padding-block: 8px;
    }

    .brand {
        gap: 8px;
        font-size: 13px;
    }

    .brand-logo {
        height: 28px;
        max-width: 132px;
    }

    .submenu {
        top: 98px;
        right: 10px;
        max-width: calc(100vw - 20px);
    }

    .panel {
        padding: 16px;
    }

    .auth-card {
        padding: 24px;
    }

    .auth-card-otp {
        padding: 30px 22px 28px;
    }

    .auth-card h1 + .stack {
        margin-top: 12px;
    }

    .otp-cells {
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 7px;
    }

    .otp-cell {
        height: auto;
        min-height: 46px;
        font-size: 22px;
    }

    .auth-card-otp .auth-logo {
        margin-bottom: 18px;
    }

    .auth-card-otp h1 + .stack {
        margin-top: 0;
    }

    .auth-card-otp .otp-fieldset legend {
        margin-bottom: 16px;
    }

    .auth-card-otp .otp-cells {
        grid-template-columns: repeat(6, 44px);
        gap: 7px;
    }

    .auth-card-otp .otp-cell {
        min-height: 46px;
    }

    .collapsible-panel summary {
        min-height: 52px;
        padding: 15px 16px;
        font-size: 16px;
    }

    .collapsible-panel form {
        padding: 0 16px 16px;
    }

    h1 {
        font-size: 24px;
    }

    h2 {
        font-size: 17px;
    }

    .metric {
        padding: 14px;
    }

    .metric strong {
        font-size: 24px;
    }

    .panel-heading {
        gap: 8px;
    }

    .button {
        min-height: 42px;
    }

    .button.small {
        min-height: 34px;
    }

    .profile-avatar-preview {
        width: 148px;
    }

    .profile-image-tools {
        width: 148px;
    }

    .definition-list {
        grid-template-columns: 1fr;
        gap: 3px 0;
    }

    .profile-detail-column .definition-list {
        grid-template-columns: 1fr;
    }

    .profile-detail-column .definition-list dt {
        white-space: normal;
    }

    .definition-list dd {
        margin-bottom: 8px;
    }

    .profile-control-row {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .profile-control-row output {
        min-height: auto;
        padding-top: 0;
        text-align: left;
    }

    .actions,
    .form-actions,
    .inline-form {
        display: grid;
    }

    .actions .button,
    .form-actions .button,
    .inline-form .button,
    .comment-form .button,
    .profile-upload-form .button,
    .stack > .button {
        width: 100%;
    }

    .reset-form label {
        min-width: 0;
    }

    .calls-tabs {
        padding-inline: 16px;
    }

    .calls-filterbar {
        padding-inline: 16px;
    }

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

    .call-row-controls > .call-do-not-callback-button {
        top: 100px;
        left: 24px;
    }

    .call-resolved-control {
        grid-row: auto;
        grid-column: 1 / -1;
    }

    .call-duration,
    .call-date {
        grid-column: 2 / 3;
        justify-self: start;
        text-align: left;
    }

    .call-kind,
    .call-target-area,
    .call-number-area,
    .call-do-not-callback-slot,
    .call-labels {
        grid-column: 1 / 2;
    }

    .tree-option {
        grid-template-columns: 1fr;
        gap: 3px;
    }

    .tree-option-meta {
        flex-wrap: wrap;
        white-space: normal;
    }

    .comment-item {
        grid-template-columns: 47px minmax(0, 1fr);
        gap: 10px;
    }

    .comments article {
        padding: 10px;
    }

    .comments article.comment-item-with-actions {
        padding-bottom: 5px;
    }

    .comment-avatar {
        width: 47px;
        font-size: 17px;
    }

    .comment-sort {
        gap: 5px;
    }

    .comment-sort .button {
        padding-inline: 8px;
        font-size: 12px;
    }

    .mention-suggestion {
        display: grid;
        justify-content: stretch;
        gap: 2px;
    }

    .pagination {
        display: grid;
        justify-content: stretch;
    }

    .pagination .button,
    .pagination-summary {
        width: 100%;
        text-align: center;
    }

    .qr-card {
        width: 100%;
    }

    .qr-code {
        margin-inline: auto;
    }

    .empty-panel {
        padding: 28px 16px;
    }
}

@media (max-width: 380px) {
    .auth-shell {
        padding: 14px;
    }

    .auth-card {
        padding: 20px;
    }

    .auth-card-otp {
        padding: 26px 18px 24px;
    }

    .otp-cells {
        gap: 5px;
    }

    .otp-cell {
        min-height: 42px;
        font-size: 20px;
    }

    .auth-card-otp .otp-cells {
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 6px;
    }
}

/* Responsive Bedienebene fuer primaere Touchgeraete. Die vorhandene
   Desktopdarstellung bleibt davon unberuehrt. */
.nav-toggle,
.nav-backdrop,
.nav-submenu-toggle,
.touch-sort-controls {
    display: none;
}

@media (max-width: 1180px),
       (hover: none) and (pointer: coarse) and (max-width: 1400px) {
    :root {
        --app-header-height: 62px;
    }

    html {
        overflow-y: auto;
        scrollbar-gutter: auto;
    }

    html,
    body {
        max-width: 100%;
        overflow-x: clip;
    }

    body.nav-open {
        overflow: hidden;
    }

    body.nav-open .topbar {
        position: fixed;
        inset: 0 0 auto;
        width: 100%;
    }

    html:has(body.nav-open),
    html:has(body.has-dialog-open) {
        overflow: hidden;
    }

    input,
    select,
    textarea,
    .addresslist-edit-grid input,
    .contact-editor-dialog .contact-form-grid input,
    .contact-editor-dialog .contact-form-grid select,
    .contact-editor-dialog .contact-form-grid textarea,
    .contact-editor-dialog .contact-form-grid .segmented-control span,
    .contact-editor-dialog .contact-readonly-control,
    .user-profile-form input,
    .user-profile-form select,
    .user-profile-form textarea {
        font-size: 16px;
    }

    button,
    .button,
    .button.small,
    [role="button"],
    summary,
    .switch-inline,
    .check-inline,
    .calls-tabs a,
    .calls-filter,
    .tree-option,
    .mention-suggestion,
    .callback-contact-suggestion {
        min-height: 44px;
    }

    .icon-button,
    .addresslist-sort-button,
    .addresslist-marker,
    .member-marker,
    .drag-handle {
        min-width: 44px;
        width: 44px;
        min-height: 44px;
        height: 44px;
    }

    .addresslist-table .button.small.icon-button {
        width: 44px;
        min-width: 44px;
        height: 44px;
        min-height: 44px;
        padding: 8px;
    }

    .member-sort-button {
        min-height: 44px;
        margin: 0;
        padding: 8px 10px;
    }

    .inline-collapsible summary,
    .callback-phone-option,
    .call-resolved-control,
    .call-comments-heading .comment-sort .button,
    .call-phone-number-table input,
    .inventory-filter-row :is(input, select),
    .addresslist-filters input[type="search"],
    .addresslist-filters select[data-addresslist-category-filter],
    .addresslist-edit-grid input,
    .segmented-control,
    .segmented-control span,
    .user-profile-form input,
    .tree-select-trigger {
        min-height: 44px;
    }

    .call-do-not-callback-button {
        width: auto;
        height: auto;
        min-width: 44px;
        min-height: 44px;
        padding: 8px 10px;
    }

    .topbar {
        z-index: 100;
        align-items: center;
        flex-wrap: nowrap;
        gap: 10px;
        min-height: 62px;
        padding-top: max(9px, env(safe-area-inset-top));
        padding-right: max(var(--content-gutter), env(safe-area-inset-right));
        padding-bottom: 9px;
        padding-left: max(var(--content-gutter), env(safe-area-inset-left));
        backdrop-filter: none;
    }

    .section-submenu {
        top: var(--app-header-height, 62px);
    }

    .brand {
        min-width: 0;
        flex: 1 1 auto;
    }

    .nav-toggle {
        position: relative;
        z-index: 102;
        display: inline-grid;
        width: 44px;
        min-width: 44px;
        height: 44px;
        padding: 10px;
        place-content: center;
        gap: 4px;
        border: 1px solid var(--line);
        border-radius: 8px;
        color: var(--primary-dark);
        background: var(--surface);
        cursor: pointer;
    }

    .nav-toggle-line {
        display: block;
        width: 20px;
        height: 2px;
        border-radius: 999px;
        background: currentColor;
        transition: transform .18s ease, opacity .18s ease;
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle-line:nth-child(1) {
        transform: translateY(6px) rotate(45deg);
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle-line:nth-child(2) {
        opacity: 0;
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle-line:nth-child(3) {
        transform: translateY(-6px) rotate(-45deg);
    }

    .logout-form {
        position: relative;
        z-index: 102;
        flex: 0 0 auto;
    }

    .logout-form button {
        width: 44px;
        min-height: 44px;
    }

    .main-nav {
        position: fixed;
        z-index: 101;
        top: var(--app-header-height);
        right: 0;
        bottom: 0;
        height: calc(100vh - var(--app-header-height));
        height: calc(100dvh - var(--app-header-height));
        display: flex;
        width: min(420px, 100vw);
        max-width: 100%;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 4px;
        overflow-x: hidden;
        overflow-y: auto;
        padding: 14px max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
        border-left: 1px solid var(--line);
        background: var(--surface);
        box-shadow: -18px 24px 52px rgba(24, 36, 34, .2);
        clip-path: inset(0 0 0 100%);
        visibility: hidden;
        transform: none;
        transition: clip-path .2s ease, visibility .2s ease;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
    }

    body.nav-open .main-nav {
        clip-path: inset(0);
        visibility: visible;
    }

    .nav-entry {
        width: 100%;
        flex: 0 0 auto;
    }

    .main-nav > .nav-entry > a {
        width: 100%;
        min-height: 48px;
        justify-content: flex-start;
        padding: 10px 12px;
        color: var(--text);
        font-weight: 750;
    }

    .main-nav > .nav-entry.has-submenu > a {
        padding-right: 58px;
    }

    .main-nav > .nav-entry > a.active {
        color: var(--primary-dark);
        background: #e8f4f1;
    }

    .nav-submenu-toggle {
        position: absolute;
        z-index: 1;
        top: 2px;
        right: 2px;
        display: grid;
        width: 44px;
        min-width: 44px;
        height: 44px;
        min-height: 44px;
        padding: 0;
        place-items: center;
        border: 1px solid transparent;
        border-radius: 8px;
        color: var(--muted);
        background: transparent;
        cursor: pointer;
    }

    .nav-submenu-toggle:hover,
    .nav-submenu-toggle:focus-visible {
        color: var(--primary-dark);
        border-color: var(--line);
        background: var(--surface-soft);
        outline: 0;
    }

    .nav-submenu-toggle .icon {
        width: 18px;
        height: 18px;
        transition: transform .18s ease;
    }

    .nav-submenu-toggle[aria-expanded="true"] .icon {
        transform: rotate(180deg);
    }

    .has-submenu > a::after {
        display: none;
    }

    .main-nav .submenu {
        position: static;
        display: grid;
        width: auto;
        min-width: 0;
        max-width: none;
        max-height: none;
        margin: 0 0 6px 21px;
        padding: 2px 0 4px 12px;
        overflow: visible;
        border: 0;
        border-left: 2px solid var(--line);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .main-nav .nav-entry:not(.is-submenu-open) > .submenu {
        display: none;
    }

    .main-nav .submenu::before {
        display: none;
    }

    .main-nav .submenu a {
        min-height: 44px;
        padding: 9px 10px;
        white-space: normal;
    }

    .nav-backdrop {
        position: fixed;
        z-index: 99;
        inset: var(--app-header-height) 0 0;
        display: block;
        width: 100%;
        height: auto;
        min-height: calc(100vh - var(--app-header-height));
        min-height: calc(100dvh - var(--app-header-height));
        padding: 0;
        border: 0;
        border-radius: 0;
        background: rgba(24, 36, 34, .42);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .2s ease, visibility .2s ease;
    }

    body.nav-open .nav-backdrop {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .page-shell,
    .page-shell > *,
    .panel,
    .panel > *,
    .split > *,
    .comments-split > * {
        min-width: 0;
    }

    .split,
    .comments-split,
    .system-check-integration-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .comment-entry-panel {
        position: static;
    }

    .member-sticky-controls,
    .addresslist-sticky-controls,
    .calls-sticky-controls {
        top: var(--app-header-height);
    }

    .member-list-panel .table-wrap,
    .addresslist-workbench .table-wrap,
    .contact-workbench .table-wrap,
    .table-wrap {
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    .table-wrap.has-wide-table {
        border-right: 1px solid rgba(15, 107, 95, .2);
        border-left: 1px solid rgba(15, 107, 95, .2);
        border-radius: 6px;
        scrollbar-color: var(--primary) var(--surface-soft);
    }

    .table-wrap.has-wide-table:focus-visible {
        outline: 2px solid rgba(15, 107, 95, .34);
        outline-offset: 2px;
    }

    .table-wrap.has-wide-table::before {
        content: "\2194  Tabelle seitlich wischen";
        position: sticky;
        z-index: 7;
        left: 8px;
        display: inline-flex;
        width: max-content;
        max-width: calc(100vw - 48px);
        min-height: 30px;
        align-items: center;
        margin: 8px 8px 4px;
        padding: 4px 9px;
        border: 1px solid #cbd8d5;
        border-radius: 999px;
        color: var(--primary-dark);
        background: rgba(255, 255, 255, .94);
        box-shadow: 0 2px 8px rgba(24, 36, 34, .08);
        font-size: 12px;
        font-weight: 800;
        pointer-events: none;
    }

    .calls-panel {
        overflow: visible;
    }

    .call-row-shell {
        display: flex;
        min-width: 0;
        flex-direction: column;
    }

    .call-row-shell > .call-row {
        order: 1;
    }

    .call-summary {
        grid-template-columns: 92px minmax(0, 1fr) auto;
        gap: 6px 10px;
        min-width: 0;
        min-height: 68px;
        padding: 10px 16px 10px 24px;
    }

    .call-resolved-control {
        grid-row: 1 / span 5;
    }

    .call-kind,
    .call-target-area,
    .call-number-area,
    .call-do-not-callback-slot,
    .call-labels {
        grid-column: 2 / 3;
    }

    .call-target-area {
        margin-inline: 0;
    }

    .call-labels {
        display: flex;
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: 6px 10px;
    }

    .call-label-slot,
    .call-label-slot-contact,
    .call-label-slot-status,
    .call-label-slot-callback {
        justify-content: flex-start;
    }

    .call-duration,
    .call-date {
        grid-column: 3 / 4;
        font-size: 12px;
    }

    .call-date {
        justify-self: end;
    }

    .call-row-controls,
    .call-row-shell.has-day-break > .call-row-controls {
        position: static;
        order: 2;
        display: flex;
        min-height: 0;
        justify-content: flex-end;
        padding: 7px 16px 10px;
        border-bottom: 1px solid var(--line);
        background: var(--surface);
        pointer-events: auto;
    }

    .call-row-controls > .call-do-not-callback-button {
        position: static;
        max-width: 100%;
        pointer-events: auto;
    }

    .addresslist-dialog-panel {
        max-height: calc(100dvh - 28px);
        overscroll-behavior: contain;
    }

    .tree-select-menu,
    .mention-suggestions,
    .callback-contact-suggestions {
        max-height: min(320px, calc(100dvh - var(--app-header-height) - 120px));
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .member-export-drag-handle {
        cursor: default;
        touch-action: auto;
    }
}

@media (max-width: 680px) {
    .calls-sticky-controls {
        overflow: visible;
    }

    .calls-tabs {
        padding: 10px 12px 4px;
    }

    .calls-searchbar,
    .calls-search-form {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .calls-searchbar {
        padding: 9px 12px;
    }

    .calls-search-field {
        min-width: 0;
        max-width: none;
        flex-basis: 100%;
    }

    .calls-search-submit,
    .calls-search-reset {
        flex: 1 1 auto;
        justify-content: center;
    }

    .calls-phone-filter-chip {
        max-width: 100%;
    }

    .calls-phone-filter-chip span {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

@media (max-width: 1180px),
       (hover: none) and (pointer: coarse) and (max-width: 1400px) {
    input,
    select,
    textarea,
    .addresslist-edit-grid input,
    .contact-editor-dialog .contact-form-grid input,
    .contact-editor-dialog .contact-form-grid select,
    .contact-editor-dialog .contact-form-grid textarea,
    .contact-editor-dialog .contact-form-grid .segmented-control span,
    .contact-editor-dialog .contact-readonly-control,
    .user-profile-form input,
    .user-profile-form select,
    .user-profile-form textarea {
        font-size: 16px;
    }

    button,
    .button,
    .button.small,
    [role="button"],
    summary,
    .switch-inline,
    .check-inline,
    .calls-tabs a,
    .calls-filter,
    .tree-option,
    .mention-suggestion,
    .callback-contact-suggestion {
        min-height: 44px;
    }

    .icon-button,
    .addresslist-sort-button,
    .addresslist-marker,
    .member-marker,
    .drag-handle {
        min-width: 44px;
        width: 44px;
        min-height: 44px;
        height: 44px;
    }

    [data-sortable-types] .drag-handle,
    [data-sortable-addresslist-columns] .drag-handle,
    [data-sortable-roles] .drag-handle {
        display: none;
    }

    .touch-sort-controls {
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }

    .touch-sort-button {
        width: 44px;
        min-width: 44px;
        padding: 0;
        font-size: 20px;
        line-height: 1;
    }
}

/* Das iPad Pro liegt im Querformat oberhalb der normalen Tablet-Breakpoints.
   Das Touch-Merkmal haelt diese kompaktere Dashboard-Anordnung vom Desktop fern. */
@media (hover: none) and (pointer: coarse) and (min-width: 901px) and (max-width: 1400px) {
    .member-profile-summary {
        grid-template-columns: clamp(100px, 10vw, 140px) minmax(0, 1fr);
        gap: .75rem;
    }

    .member-contact-photo-column .member-profile-image {
        width: 100%;
        font-size: clamp(1.8rem, 3.2vw, 3rem);
    }
}

@media (min-width: 901px) and (max-width: 1400px) {
    .member-list-panel .table-wrap {
        overflow-x: auto;
    }

    .member-table thead th {
        position: static;
        top: auto;
    }

    .table-wrap > table.accounting-invoice-table {
        min-width: 100%;
    }

    .accounting-col-status {
        width: 11%;
    }

    .accounting-col-date {
        width: 12%;
    }

    .accounting-col-sender {
        width: 15%;
    }

    .accounting-col-preview {
        width: 40%;
    }

    .accounting-col-attachments {
        width: 22%;
    }

    .accounting-invoice-table th,
    .accounting-invoice-table td {
        padding-inline: 10px;
    }

    .accounting-attachments .button {
        width: 100%;
        min-width: 0;
    }

    .accounting-attachments .button span {
        min-width: 0;
        flex: 1 1 auto;
    }

    .accounting-attachments .button small {
        flex: 0 0 auto;
        white-space: nowrap;
        overflow-wrap: normal;
    }
}

@media (min-width: 901px) and (max-width: 1180px) {
    .member-list-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .member-list-heading > div:first-child .muted {
        white-space: normal;
    }

    .member-list-controls {
        display: grid;
        width: 100%;
        grid-template-columns: repeat(12, minmax(0, 1fr));
        align-items: end;
        justify-content: stretch;
    }

    .member-list-panel .member-search {
        grid-column: span 7;
        width: 100%;
        min-width: 0;
    }

    .member-list-panel .member-criteria-filter {
        grid-column: span 5;
        width: 100%;
        min-width: 0;
    }

    .member-marker-filter-switch,
    .member-clarification-filter-switch,
    .member-action-undo,
    .member-list-controls [data-member-sort-reset] {
        grid-column: span 3;
    }

    .member-list-controls [data-member-marker-clear] {
        grid-column: 1 / -1;
    }

    .member-list-controls > *,
    .member-list-controls [data-member-marker-clear] .button {
        width: 100%;
        min-width: 0;
        margin: 0;
    }

    .calls-tabs {
        position: static;
        top: auto;
        overflow: visible;
        padding: 10px 12px 4px;
    }

    .calls-tabs a {
        min-width: 0;
        flex: 1 1 0;
        justify-content: center;
        padding-inline: 6px;
    }

    .call-row-shell {
        display: block;
        --call-summary-columns: 82px minmax(120px, .8fr) 74px minmax(170px, 1fr) minmax(48px, .4fr) 64px 156px;
    }

    .call-summary {
        grid-template-columns: var(--call-summary-columns);
        grid-template-rows: auto auto;
        gap: 4px 8px;
        min-height: 88px;
        padding: 8px 16px 8px 20px;
    }

    .call-resolved-control {
        grid-row: 1 / 3;
        grid-column: 1;
    }

    .call-target-area {
        grid-row: 1;
        grid-column: 2;
        margin-inline: 6px;
    }

    .call-kind {
        grid-row: 1;
        grid-column: 3;
    }

    .call-number-area {
        grid-row: 1;
        grid-column: 4;
    }

    .call-do-not-callback-slot {
        grid-row: 1;
        grid-column: 5;
    }

    .call-labels {
        display: grid;
        grid-row: 2;
        grid-column: 2 / 6;
        grid-template-columns: minmax(120px, 1.05fr) minmax(78px, .7fr) minmax(0, 1fr);
        column-gap: 10px;
    }

    .call-label-slot {
        max-width: 100%;
        overflow: hidden;
    }

    .call-label-slot-callback {
        justify-content: center;
    }

    .call-duration {
        grid-row: 1 / 3;
        grid-column: 6;
        align-self: center;
        font-size: 12px;
    }

    .call-date {
        grid-row: 1 / 3;
        grid-column: 7;
        align-self: center;
        justify-self: center;
        width: 156px;
        font-size: 12px;
    }

    .call-row-controls,
    .call-row-shell.has-day-break > .call-row-controls {
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        display: grid;
        grid-template-columns: var(--call-summary-columns);
        grid-template-rows: auto auto;
        align-items: center;
        gap: 4px 8px;
        min-height: 88px;
        padding: 8px 16px 8px 20px;
        border: 0;
        background: transparent;
        pointer-events: none;
    }

    .call-row-shell.has-day-break > .call-row-controls {
        top: 3px;
    }

    .call-row-controls > .call-do-not-callback-button {
        grid-row: 1;
        grid-column: 5;
        pointer-events: auto;
    }
}

@media (min-width: 1181px) and (max-width: 1400px) {
    #tools-grid.tools-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

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

    .member-tile {
        min-height: 150px;
        justify-content: flex-start;
    }

    .member-list-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .member-list-heading > div:first-child .muted {
        white-space: normal;
    }

    .member-list-controls {
        display: grid;
        width: 100%;
        grid-template-columns: repeat(12, minmax(0, 1fr));
        align-items: end;
        justify-content: stretch;
    }

    .member-list-panel .member-search {
        grid-column: span 7;
        width: 100%;
        min-width: 0;
    }

    .member-list-panel .member-criteria-filter {
        grid-column: span 5;
        width: 100%;
        min-width: 0;
    }

    .member-marker-filter-switch,
    .member-clarification-filter-switch {
        grid-column: span 2;
    }

    .member-action-undo {
        grid-column: span 3;
    }

    .member-list-controls [data-member-sort-reset] {
        grid-column: span 2;
    }

    .member-list-controls [data-member-marker-clear] {
        grid-column: span 3;
    }

    .member-list-controls > *,
    .member-list-controls [data-member-marker-clear] .button {
        width: 100%;
        min-width: 0;
        margin: 0;
    }

    .calls-tabs {
        position: static;
        top: auto;
        overflow: visible;
        padding: 10px 14px 4px;
    }

    .calls-tabs a {
        min-width: 0;
        flex: 1 1 0;
        justify-content: center;
        padding-inline: 8px;
    }

    .call-row-shell {
        display: block;
        --call-summary-columns: 76px minmax(0, .65fr) 82px minmax(0, .95fr) 112px minmax(0, 1.6fr) 54px 142px 64px;
    }

    .call-summary {
        grid-template-columns: var(--call-summary-columns);
        gap: 10px;
        min-height: 64px;
        padding: 6px 18px 6px 24px;
    }

    .call-resolved-control {
        grid-row: auto;
        grid-column: auto;
    }

    .call-kind,
    .call-target-area,
    .call-number-area,
    .call-do-not-callback-slot,
    .call-labels {
        grid-column: auto;
    }

    .call-target-area {
        margin-inline: 8px;
    }

    .call-labels {
        display: grid;
        grid-template-columns: minmax(120px, 1.05fr) minmax(78px, .7fr) minmax(0, 1fr);
        column-gap: 8px;
    }

    .call-label-slot {
        max-width: 100%;
        overflow: hidden;
    }

    .call-label-slot-callback {
        justify-content: center;
    }

    .call-duration,
    .call-date {
        font-size: 13px;
    }

    .call-duration {
        grid-column: 7;
    }

    .call-date {
        grid-column: 8 / -1;
        justify-self: center;
    }

    .call-row-controls,
    .call-row-shell.has-day-break > .call-row-controls {
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        display: grid;
        grid-template-columns: var(--call-summary-columns);
        align-items: center;
        gap: 10px;
        min-height: 64px;
        padding: 6px 18px 6px 24px;
        border: 0;
        background: transparent;
        pointer-events: none;
    }

    .call-row-shell.has-day-break > .call-row-controls {
        top: 3px;
    }

    .call-row-controls > .call-do-not-callback-button {
        grid-column: 5;
        pointer-events: auto;
    }
}

@media (hover: none) and (pointer: coarse) and (min-width: 1181px) and (max-width: 1400px) {
    :root { --content-gutter: 24px; }

    .dashboard-metric-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-auto-rows: auto;
    }

    .dashboard-planner-grid,
    .dashboard-planner-grid.is-calendar-only {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-week-panel,
    .dashboard-planner-grid.is-calendar-only .dashboard-week-panel {
        grid-column: auto;
    }

    .dashboard-planner-sidebar {
        grid-column: 1 / -1;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 901px) and (max-width: 1180px) {
    .dashboard-planner-grid,
    .dashboard-planner-grid.is-calendar-only {
        grid-template-columns: minmax(0, 1fr);
    }

    .dashboard-week-panel,
    .dashboard-planner-grid.is-calendar-only .dashboard-week-panel,
    .dashboard-planner-sidebar {
        grid-column: 1;
    }

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

@media (max-width: 560px),
       (max-width: 1000px) and (max-height: 600px) {
    :root {
        --content-gutter: max(10px, env(safe-area-inset-left), env(safe-area-inset-right));
    }

    .auth-shell,
    .install-body {
        min-height: 100dvh;
    }

    .topbar {
        padding-right: max(10px, env(safe-area-inset-right));
        padding-left: max(10px, env(safe-area-inset-left));
    }

    .brand-logo {
        max-width: min(132px, 38vw);
    }

    .main-nav {
        width: 100vw;
        border-left: 0;
    }

    .page-shell {
        width: calc(100% - 20px);
        margin-top: 14px;
        margin-bottom: 24px;
    }

    .panel {
        padding: 16px;
    }

    h1 {
        font-size: 24px;
    }

    h2 {
        font-size: 17px;
    }

    .actions,
    .form-actions,
    .inline-form {
        display: grid;
    }

    .actions .button,
    .form-actions .button,
    .inline-form .button,
    .comment-form .button,
    .profile-upload-form .button,
    .stack > .button {
        width: 100%;
    }

    .page-heading,
    .panel-heading,
    .member-list-heading,
    .calls-heading {
        gap: 10px;
    }

    .page-heading {
        width: 100%;
        grid-template-columns: minmax(0, 1fr);
    }

    .member-sticky-controls,
    .addresslist-sticky-controls {
        position: static;
        top: auto;
        margin: -16px -16px 14px;
        padding: 14px 16px 10px;
    }

    .contact-sticky-controls {
        position: static;
        top: auto;
        margin: -16px -16px 14px;
        padding: 14px 16px 0;
    }

    .member-table thead th,
    .addresslist-table thead th {
        position: static;
        top: auto;
    }

    .member-list-controls,
    .addresslist-primary-actions,
    .addresslist-filters,
    .contact-toolbar,
    .contact-filters,
    .accounting-heading-actions,
    .calls-heading-actions,
    .calls-metric-actions,
    .bank-directory-actions,
    .system-check-header-actions {
        display: grid;
        width: 100%;
        grid-template-columns: minmax(0, 1fr);
        justify-content: stretch;
        gap: 8px;
    }

    .member-list-controls > *,
    .addresslist-primary-actions > *,
    .addresslist-filters > *,
    .contact-toolbar > *,
    .contact-filters > *,
    .accounting-heading-actions > *,
    .calls-heading-actions > *,
    .calls-metric-actions > * {
        width: 100%;
        min-width: 0;
        margin: 0;
    }

    .member-list-panel .member-search,
    .member-list-panel .member-criteria-filter,
    .addresslist-filters input[type="search"],
    .addresslist-filters select[data-addresslist-category-filter],
    .contact-filters input[type="search"] {
        width: 100%;
        min-width: 0;
    }

    .switch-inline input {
        width: 1px;
        height: 1px;
        min-height: 0;
        margin: 0;
        padding: 0;
    }

    .member-delete-button {
        margin-left: 0;
    }

    .backup-preview-grid,
    .backup-restore-failure-details,
    .member-bank-lookup-result,
    .member-related-toolbar {
        grid-template-columns: minmax(0, 1fr);
    }

    .member-bank-lookup-result,
    .member-related-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .panel.member-export-panel[data-member-export-panel],
    .panel.member-delete-dialog,
    .member-image-dialog,
    .member-sevdesk-contact-dialog,
    .addresslist-dialog-panel,
    .contact-editor-dialog .contact-dialog-panel {
        width: 100vw;
        max-width: 100vw;
        height: 100dvh;
        max-height: 100dvh;
        margin: 0;
        border-radius: 0;
    }

    .addresslist-dialog:not([hidden]),
    .contact-editor-dialog:not([hidden]) {
        place-items: stretch;
        padding: 0;
    }

    .addresslist-dialog-panel,
.contact-editor-dialog .contact-dialog-panel {
        width: 100%;
        max-width: 100%;
        padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
    }

    .addresslist-dialog-header,
    .member-image-dialog-header,
    .member-sevdesk-contact-dialog-header,
    .member-export-panel .panel-heading {
        position: sticky;
        z-index: 3;
        top: -16px;
        padding-top: max(12px, env(safe-area-inset-top));
        padding-bottom: 12px;
        background: var(--surface);
    }

    .addresslist-dialog-header h3,
    .addresslist-dialog-header .contact-dialog-name {
        overflow-wrap: anywhere;
        font-size: 23px;
    }

    .member-export-panel[data-member-export-panel] #member-export-form {
        overflow-y: auto;
    }

    .member-export-panel[data-member-export-panel] .member-export-fields {
        min-height: 0;
    }

    .call-summary {
        grid-template-columns: minmax(0, 1fr) auto;
        padding: 12px 14px;
    }

    .call-resolved-control {
        grid-row: auto;
        grid-column: 1 / -1;
    }

    .call-kind,
    .call-target-area,
    .call-number-area,
    .call-do-not-callback-slot,
    .call-labels {
        grid-column: 1 / 2;
    }

    .call-duration,
    .call-date {
        grid-column: 2 / 3;
        justify-self: start;
        text-align: left;
    }

    .call-row-controls {
        padding-inline: 14px;
    }

    .call-detail {
        padding: 12px 16px 22px 20px;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) {
        display: block;
        min-width: 0;
        border-collapse: separate;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) colgroup,
    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        white-space: nowrap;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody {
        display: grid;
        gap: 12px;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody > tr {
        display: block;
        overflow: hidden;
        border: 1px solid var(--line);
        border-radius: 10px;
        background: var(--surface);
    }

    .table-wrap > table.responsive-table-ready > tbody > tr[hidden] {
        display: none !important;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody > tr > td {
        display: grid;
        width: auto;
        min-width: 0;
        grid-template-columns: minmax(105px, 35%) minmax(0, 1fr);
        gap: 10px;
        align-items: start;
        padding: 10px 12px;
        overflow: visible;
        border-bottom: 1px solid var(--line);
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody > tr > td::before {
        grid-column: 1;
        grid-row: 1;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody > tr > td > * {
        grid-column: 2;
        min-width: 0;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody > tr > td > form:not(:has(button, input:not([type="hidden"]), select, textarea)) {
        display: none;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody > tr > td[data-label=""] {
        grid-template-columns: minmax(0, 1fr);
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody > tr > td[data-label=""] > * {
        grid-column: 1;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody > tr > th {
        display: block;
        width: auto;
        padding: 10px 12px;
        overflow-wrap: anywhere;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody > tr > td :is(input, select, textarea),
    .addresslist-import-map select {
        min-width: 0;
        max-width: 100%;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody > tr > td:last-child {
        border-bottom: 0;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody > tr > td::before {
        content: attr(data-label);
        color: var(--muted);
        font-size: 11px;
        font-weight: 800;
        letter-spacing: .02em;
        text-transform: uppercase;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody > tr > td[data-label=""]::before,
    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody > tr > td[colspan]::before {
        display: none;
    }

    .table-wrap > table.responsive-table-ready:has(thead th):not(:has(thead th:nth-child(8))):not(.member-table):not(.contact-table):not(.addresslist-table) > tbody > tr > td[colspan] {
        display: block;
    }

    .table-wrap > table.responsive-table-ready:not(:has(thead)) {
        min-width: 0;
    }

    .table-wrap > .member-table,
    .table-wrap > .contact-table,
    .table-wrap > .addresslist-table {
        display: block;
        min-width: 0;
    }

    .contact-table > thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
    }

    .member-table > thead,
    .addresslist-table > thead {
        position: static;
        display: block;
        width: 100%;
        height: auto;
        margin: 0 0 10px;
        overflow-x: auto;
        clip: auto;
        clip-path: none;
    }

    .member-table > thead > tr,
    .addresslist-table > thead > tr {
        display: flex;
        width: max-content;
        min-width: 100%;
        align-items: center;
        gap: 6px;
    }

    .member-table > thead > tr::before,
    .addresslist-table > thead > tr::before {
        content: "\2194  Sortierung wischen:";
        display: inline-flex;
        min-height: 44px;
        align-items: center;
        padding: 0 6px;
        color: var(--muted);
        font-size: 11px;
        font-weight: 800;
        text-transform: uppercase;
    }

    .member-table > thead th,
    .addresslist-table > thead th {
        position: static;
        display: none;
        width: auto;
        height: auto;
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .member-table > thead th:has(.member-sort-button),
    .addresslist-table > thead th:has(.addresslist-sort-buttons) {
        display: block;
    }

    .addresslist-table > thead th:has(.addresslist-sort-buttons) {
        width: auto;
        min-width: max-content;
        max-width: none;
    }

    .member-table > thead .member-sort-button {
        margin: 0;
        min-height: 44px;
        padding: 8px 10px;
        border: 1px solid var(--line);
        background: var(--surface);
        white-space: nowrap;
    }

    .addresslist-table > thead .addresslist-sortable-heading {
        display: flex;
        align-items: center;
        gap: 4px;
        padding-left: 8px;
        border: 1px solid var(--line);
        border-radius: 8px;
        background: var(--surface);
        white-space: nowrap;
    }

    .addresslist-table > thead .addresslist-sort-buttons {
        display: flex;
    }

    .member-table > tbody,
    .contact-table > tbody,
    .addresslist-table > tbody {
        display: grid;
        gap: 12px;
    }

    .member-table tr[data-member-row],
    .contact-table tr[data-contact-row],
    .addresslist-table tr[data-addresslist-row] {
        position: relative;
        display: grid;
        overflow: hidden;
        border: 1px solid var(--line);
        border-radius: 12px;
        background: var(--surface);
        box-shadow: 0 3px 12px rgba(24, 36, 34, .05);
    }

    .member-table tr[hidden],
    .contact-table tr[hidden],
    .addresslist-table tr[hidden] {
        display: none;
    }

    .member-table tr[data-member-row] {
        grid-template-columns: 52px 58px minmax(0, 1fr) 52px;
        padding: 10px;
    }

    .member-table tr[data-member-row] > td {
        display: none;
        width: auto;
        padding: 6px 8px;
        overflow: visible;
        border: 0;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .member-table tr[data-member-row] > td:nth-child(1),
    .member-table tr[data-member-row] > td:nth-child(2),
    .member-table tr[data-member-row] > td:nth-child(3),
    .member-table tr[data-member-row] > td:nth-child(4),
    .member-table tr[data-member-row] > td:nth-child(5),
    .member-table tr[data-member-row] > td:nth-child(6),
    .member-table tr[data-member-row] > td:nth-child(7),
    .member-table tr[data-member-row] > td:nth-child(8),
    .member-table tr[data-member-row] > td:nth-child(9),
    .member-table tr[data-member-row] > td:nth-child(13),
    .member-table tr[data-member-row] > td:nth-child(14),
    .member-table tr[data-member-row] > td:nth-child(15) {
        display: block;
    }

    .member-table tr[data-member-row] > td:nth-child(1) { grid-column: 1; grid-row: 1 / span 2; }
    .member-table tr[data-member-row] > td:nth-child(2) { grid-column: 2; grid-row: 1 / span 2; }
    .member-table tr[data-member-row] > td:nth-child(3) { grid-column: 3; grid-row: 1; padding-bottom: 0; }
    .member-table tr[data-member-row] > td:nth-child(4) { grid-column: 3; grid-row: 2; padding-top: 0; font-size: 17px; font-weight: 800; }
    .member-table tr[data-member-row] > td:nth-child(15) { grid-column: 4; grid-row: 1 / span 2; }

    .member-table tr[data-member-row] > td:nth-child(1),
    .member-table tr[data-member-row] > td:nth-child(15) {
        padding: 4px;
    }

    .member-table tr[data-member-row] > td:nth-child(2) {
        padding-right: 5px;
        padding-left: 5px;
    }

    .member-table tr[data-member-row] > td:nth-child(n+5):nth-child(-n+14) {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: minmax(92px, 32%) minmax(0, 1fr);
        gap: 8px;
        border-top: 1px solid var(--line);
    }

    .member-table tr[data-member-row] > td:nth-child(10),
    .member-table tr[data-member-row] > td:nth-child(11),
    .member-table tr[data-member-row] > td:nth-child(12) {
        display: none !important;
    }

    .member-table tr[data-member-row] > td:nth-child(n+5):nth-child(-n+14)::before,
    .contact-table tr[data-contact-row] > td:is(:nth-child(3), :nth-child(n+5):nth-child(-n+10))::before,
    .addresslist-table tr[data-addresslist-row] > td::before {
        content: attr(data-label);
        color: var(--muted);
        font-size: 11px;
        font-weight: 800;
        text-transform: uppercase;
    }

    .member-table .member-avatar {
        width: 48px;
        height: 48px;
    }

    .contact-table tr[data-contact-row] {
        grid-template-columns: 46px 58px minmax(0, 1fr) 52px;
        padding: 10px;
    }

    .contact-table tr[data-contact-row] > td {
        display: grid;
        width: auto;
        grid-template-columns: minmax(90px, 30%) minmax(0, 1fr);
        gap: 8px;
        padding: 7px 8px;
        overflow: visible;
        border: 0;
        border-top: 1px solid var(--line);
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .contact-table tr[data-contact-row] > td:nth-child(1) { grid-column: 1; grid-row: 1 / span 2; display: block; border-top: 0; padding:4px; }
    .contact-table tr[data-contact-row] > td:nth-child(2) { grid-column: 2; grid-row: 1 / span 2; display: block; border-top: 0; padding:4px; }
    .contact-table tr[data-contact-row] > td:nth-child(4) { grid-column: 3; grid-row: 1; display: block; border-top: 0; font-size: 17px; }
    .contact-table tr[data-contact-row] > td:nth-child(11) { grid-column: 4; grid-row: 1 / span 2; display: block; border-top: 0; }
    .contact-table tr[data-contact-row] > td:nth-child(3),
    .contact-table tr[data-contact-row] > td:nth-child(n+5):nth-child(-n+10) { grid-column: 1 / -1; }
    .contact-table tr[data-contact-row] > td:nth-child(5) { display: none; }

    .contact-table tr[data-contact-row] > td:nth-child(11) {
        padding: 4px;
    }

    .contact-table tr[data-contact-row] > td:nth-child(3) .contact-association-values {
        justify-content: flex-start;
    }

    .addresslist-table tr[data-addresslist-row] {
        padding: 8px;
    }

    .addresslist-table tr[data-addresslist-row] > td {
        display: grid;
        width: auto;
        grid-template-columns: minmax(105px, 35%) minmax(0, 1fr);
        gap: 8px;
        height: auto;
        padding: 8px 10px;
        overflow: visible;
        border: 0;
        border-bottom: 1px solid var(--line);
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .addresslist-table tr[data-addresslist-row] > td:last-child {
        border-bottom: 0;
    }

    .addresslist-table tr[data-addresslist-row] > td:first-child {
        display: flex;
        min-height: 48px;
        align-items: center;
        justify-content: space-between;
    }

    .addresslist-table tr[data-addresslist-row] > td:has(.addresslist-cell-value.is-empty):not(:first-child) {
        display: none;
    }

    .member-table > tbody > tr:not([data-member-row]),
    .contact-table > tbody > tr:not([data-contact-row]),
    .addresslist-table > tbody > tr:not([data-addresslist-row]) {
        display: block;
        border: 1px solid var(--line);
        border-radius: 10px;
        background: var(--surface);
    }

    .member-table > tbody > tr:not([data-member-row]) > td,
    .contact-table > tbody > tr:not([data-contact-row]) > td,
    .addresslist-table > tbody > tr:not([data-addresslist-row]) > td {
        display: block;
        width: auto;
        padding: 18px 12px;
    }

    .table-wrap:has(> .member-table),
    .table-wrap:has(> .contact-table),
    .table-wrap:has(> .addresslist-table),
    .table-wrap.is-card-table {
        overflow: visible;
        border: 0;
    }

    .tools-calendar-response-grid.is-card-table {
        max-height: none;
    }

    .table-wrap:has(> .member-table)::before,
    .table-wrap:has(> .contact-table)::before,
    .table-wrap:has(> .addresslist-table)::before,
    .table-wrap.is-card-table::before {
        display: none;
    }
}

@media (min-width: 561px) and (max-width: 1000px) and (max-height: 600px) {
    .accounting-heading-actions,
    .calls-heading-actions,
    .calls-metric-actions,
    .member-list-controls,
    .addresslist-primary-actions,
    .contact-toolbar,
    .contact-filters {
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    }
}

.accounting-allocation-toolbar { display:flex; align-items:end; gap:1rem; flex-wrap:wrap; margin-bottom:1rem; }
.accounting-allocation-toolbar label { min-width:180px; }
.accounting-allocation-toolbar label:first-child { flex:1 1 320px; }
.allocation-last-sync { margin:0 0 .65rem auto; }
.accounting-allocation-months { display:grid; gap:1rem; }
.accounting-allocation-month { padding:0; overflow:hidden; }
.accounting-allocation-month > summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.15rem; cursor:pointer; background:var(--surface-soft); list-style:none; }
.accounting-allocation-month > summary::-webkit-details-marker { display:none; }
.accounting-allocation-month > summary > span:first-child { display:flex; flex:0 0 auto; align-items:center; gap:.75rem; flex-wrap:nowrap; }
.accounting-allocation-month > summary > span:first-child > strong { flex:0 0 112px; white-space:nowrap; }
.accounting-allocation-month > summary > span:first-child > small { flex:0 0 82px; white-space:nowrap; }
.accounting-allocation-month > summary small { color:var(--muted); }
.allocation-month-complete-switch { appearance:none; display:inline-flex; align-items:center; gap:8px; min-height:32px; margin:0 0 0 .15rem; padding:0 0 0 .9rem; border:0; border-left:1px solid var(--border); border-radius:0; background:transparent; color:var(--text); font:inherit; font-size:.78rem; white-space:nowrap; cursor:pointer; }
.allocation-month-complete-track { position:relative; width:34px; height:18px; flex:0 0 auto; border:1px solid var(--line); border-radius:999px; background:#edf2f1; transition:background .14s ease,border-color .14s ease; }
.allocation-month-complete-track::after { content:""; position:absolute; top:2px; left:2px; width:12px; height:12px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(24,36,34,.2); transition:transform .14s ease; }
.allocation-month-complete-switch[aria-checked=true] .allocation-month-complete-track { border-color:var(--primary); background:var(--primary); }
.allocation-month-complete-switch[aria-checked=true] .allocation-month-complete-track::after { transform:translateX(16px); }
.allocation-month-complete-switch:focus-visible .allocation-month-complete-track { outline:2px solid rgba(15,107,95,.24); outline-offset:2px; }
.allocation-month-complete-switch:disabled { opacity:.78; cursor:default; }
.allocation-month-actions { display:flex; gap:.4rem; flex-wrap:wrap; }
.allocation-month-actions .disabled { pointer-events:none; opacity:.5; }
.allocation-receipt-request-dialog { width:min(780px,calc(100vw - 2rem)); max-height:calc(100vh - 2rem); padding:1.15rem; overflow:auto; }
.allocation-receipt-request-dialog[open] { position:fixed; inset:50% auto auto 50%; margin:0; transform:translate(-50%,-50%); }
.allocation-receipt-request-dialog::backdrop { background:rgba(15,32,31,.55); }
.allocation-receipt-request-dialog .panel-heading { margin-bottom:1rem; }
.allocation-receipt-request-dialog .panel-heading h2,
.allocation-receipt-request-dialog .panel-heading p { margin:0; }
.allocation-receipt-request-list { display:grid; max-height:min(42vh,430px); margin:1rem 0; overflow:auto; border:1px solid var(--border); border-radius:var(--radius); }
.allocation-receipt-request-item { display:grid; grid-template-columns:120px minmax(0,1fr) 130px; gap:1rem; align-items:start; padding:.8rem .9rem; background:var(--surface); }
.allocation-receipt-request-item[hidden] { display:none; }
.allocation-receipt-request-item + .allocation-receipt-request-item { border-top:1px solid var(--border); }
.allocation-receipt-request-item span > strong,
.allocation-receipt-request-item span > small { display:block; }
.allocation-receipt-request-item small { margin-top:.2rem; color:var(--muted); }
.allocation-receipt-request-amount { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.allocation-receipt-request-form { margin:0; }
.allocation-receipt-request-deadline { display:grid; gap:.35rem; max-width:260px; margin:1rem 0; font-weight:700; }
.accounting-allocation-table { min-width:1885px; table-layout:fixed; }
.accounting-allocation-table th:nth-child(1){width:125px}.accounting-allocation-table th:nth-child(2){width:100px}.accounting-allocation-table th:nth-child(3){width:190px}.accounting-allocation-table th:nth-child(4){width:175px}.accounting-allocation-table th:nth-child(5){width:120px}.accounting-allocation-table th:nth-child(6){width:285px}.accounting-allocation-table th:nth-child(7){width:210px}.accounting-allocation-table th:nth-child(8){width:165px}.accounting-allocation-table th:nth-child(9){width:150px}.accounting-allocation-table th:nth-child(10){width:170px}.accounting-allocation-table th:nth-child(11){width:140px}
.accounting-allocation-table td { vertical-align:top; }
.accounting-allocation-table form { margin:0; }
.accounting-allocation-table input:not([type=checkbox]),.accounting-allocation-table textarea { width:100%; min-width:0; }
.accounting-allocation-table textarea { resize:vertical; }
.allocation-economic-heading { white-space:nowrap; }
.allocation-percentage-control { position:relative; display:block; }
.allocation-percentage-control input { padding-right:2rem; }
.allocation-percentage-control > span { position:absolute; right:.75rem; top:50%; transform:translateY(-50%); pointer-events:none; color:var(--muted); opacity:0; }
.allocation-percentage-form.is-filled .allocation-percentage-control > span { opacity:1; }
.allocation-percentage-form.is-nonzero .allocation-percentage-control input,.allocation-percentage-form.is-nonzero .allocation-percentage-control > span { font-weight:800; color:var(--text); }
.allocation-credit-date.is-empty:not(:focus) { color:transparent; }
.allocation-credit-date.is-empty:not(:focus)::-webkit-datetime-edit { color:transparent; opacity:0; }
.allocation-credit-date.is-empty:not(:focus)::-webkit-date-and-time-value { color:transparent; }
.accounting-allocation-table small[data-allocation-save] { display:block; margin-top:.25rem; color:var(--muted); }
.accounting-allocation-table small[data-allocation-save][data-state=error] { color:var(--danger); }
.accounting-allocation-table small[data-allocation-save][data-state=saved] { color:var(--success); }
.allocation-amount { text-align:right; white-space:nowrap; font-weight:700; }
.allocation-text { white-space:pre-line; overflow-wrap:anywhere; }
.allocation-text small { display:block; margin-top:.35rem; color:var(--muted); }
.allocation-done-switch { align-items:center; }
.allocation-transaction-date > span { display:block; white-space:nowrap; }
.allocation-transaction-date > small { display:block; margin-top:.2rem; color:var(--muted); font-size:.72rem; font-weight:500; white-space:nowrap; }
.accounting-allocation-row { cursor:default; }
.accounting-allocation-row.is-comment-open > td:first-child,
.accounting-allocation-comment-row.is-comment-open > td { box-shadow:inset 4px 0 0 #2f6fdb; }
.accounting-allocation-row-receipt-missing > td { background:#fff4df; }
.accounting-allocation-row-receipt-missing:hover > td { background:#ffedca; }
.accounting-allocation-row [data-receipt-available-control].is-disabled { opacity:.5; }
.allocation-comment-count { white-space:nowrap; }
.accounting-allocation-comment-row > td { padding:0; background:var(--surface-soft); }
.allocation-comments { padding:1rem 1.25rem 1.25rem; border-top:2px solid var(--primary); }
.allocation-comments-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.allocation-comments-heading h3,.allocation-comments-heading p { margin:0; }
.allocation-comment-list { display:grid; gap:.75rem; }
.allocation-comment-list .comment-item { margin:0; }
.allocation-comments-split { margin-bottom:0; }
.allocation-comments-split .panel { padding:1rem; background:var(--surface); }
.allocation-comments-split .comment-entry-panel { position:static; }
.allocation-comments-split .comment-entry-panel h3 { margin-top:0; }
.allocation-comment-overview .panel-heading { margin-bottom:.75rem; }
.allocation-comment-form { margin:0; }
.allocation-comment-form textarea { width:100%; }
.allocation-comment-form .button { width:100%; }
.allocation-comment-status[data-state=saved] { color:var(--success); }
.allocation-comment-status[data-state=error] { color:var(--danger); }
@media(max-width:800px){.accounting-allocation-heading{align-items:flex-start}.accounting-heading-actions{gap:.5rem}.accounting-allocation-month>summary{align-items:flex-start;flex-direction:column}.accounting-allocation-month>summary>span:first-child>strong,.accounting-allocation-month>summary>span:first-child>small{flex-basis:auto}.allocation-last-sync{margin-left:0}.accounting-allocation-toolbar>*{width:100%}.allocation-receipt-request-item{grid-template-columns:1fr}.allocation-receipt-request-amount{text-align:left}}

.cash-book-heading .accounting-heading-actions,.cash-book-export-actions,.cash-book-row-actions { display:flex; align-items:end; gap:.5rem; flex-wrap:wrap; }
.cash-book-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-bottom:1rem; }
.cash-book-summary .panel { display:grid; gap:.25rem; padding:1rem 1.15rem; }
.cash-book-summary small,.cash-book-summary span { color:var(--muted); }
.cash-book-summary strong { font-size:1.45rem; }
.cash-book-income strong { color:var(--success); }.cash-book-expense strong { color:var(--danger); }.cash-book-balance { border-color:var(--primary); }
.cash-book-entry-form { display:grid; grid-template-columns:repeat(4,minmax(150px,1fr)); gap:.8rem; }
.cash-book-entry-form .cash-book-form-wide { grid-column:span 2; }
.cash-book-ledger { padding:0; overflow:visible; }
.cash-book-ledger .panel-heading { padding:1rem 1.15rem; margin:0; }
.cash-book-ledger-heading { position:sticky; top:calc(var(--app-header-height,68px) + var(--section-submenu-height,58px)); z-index:8; background:var(--surface); border-bottom:1px solid var(--border); border-radius:var(--radius) var(--radius) 0 0; box-shadow:0 5px 12px rgba(24,36,34,.07); }
.cash-book-table-wrap { max-height:none; overflow-x:auto; }
.cash-book-table { width:100%; min-width:1320px; table-layout:fixed; }
.cash-book-table thead { position:static; }
.cash-book-table th:nth-child(1){width:7%}.cash-book-table th:nth-child(2){width:6%}.cash-book-table th:nth-child(3){width:7%}.cash-book-table th:nth-child(4){width:28%}.cash-book-table th:nth-child(5),.cash-book-table th:nth-child(6){width:7%}.cash-book-table th:nth-child(7){width:9%}.cash-book-table th:nth-child(8){width:5%}.cash-book-table th:nth-child(9){width:24%;text-align:right}
.cash-book-table th:nth-child(5),.cash-book-table th:nth-child(6),.cash-book-table th:nth-child(7) { text-align:right; }
.cash-book-table td { vertical-align:middle; }.cash-book-table td small { display:block; margin-top:.25rem; color:var(--muted); }
.cash-book-amount { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.cash-book-opening-row td { background:var(--surface-soft); }
.cash-book-month-start td { border-top:3px solid rgba(15,107,95,.45); }
.cash-book-row-canceled td { color:var(--muted); background:var(--surface-soft); }
.cash-book-row-canceled td > strong,.cash-book-row-canceled td:nth-child(4) > strong { text-decoration:line-through; }
.cash-book-canceled-badge { display:inline-flex; margin:.35rem 0 0 .5rem; }
.cash-book-row-actions { display:grid; grid-template-columns:max-content max-content; align-items:center; justify-content:end; gap:.4rem; width:100%; }
.cash-book-row-actions .button { width:auto; min-width:0; padding-inline:.65rem; justify-content:center; white-space:nowrap; }
.cash-book-row-actions .cash-book-receipt-action { width:180px; }
.cash-book-row-actions .icon { width:14px; height:14px; }
.cash-book-row-actions .cash-book-receipt-available { border-color:var(--primary); }
.cash-book-form-row td { padding:0; background:var(--surface-soft); }
.cash-book-inline-panel { padding:1rem 1.15rem; border-block:1px solid var(--primary); }
.cash-book-inline-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.cash-book-inline-heading h3,.cash-book-inline-heading p { margin:0; }
.cash-book-delete-form { display:flex; justify-content:flex-end; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--border); }
.cash-book-dialog { width:min(680px,calc(100vw - 2rem)); max-height:calc(100vh - 2rem); max-height:calc(100dvh - 2rem); padding:1.15rem; overflow:auto; }
.cash-book-dialog[open] { position:fixed; inset:50% auto auto 50%; margin:0; transform:translate(-50%,-50%); }
.cash-book-dialog::backdrop { background:rgba(15,32,31,.55); }
.cash-book-dialog .panel-heading { padding:0 0 1rem; }
.cash-book-file-list { display:grid; gap:.65rem; }
.cash-book-file-list .button { justify-content:flex-start; text-align:left; }
.cash-book-file-list span,.cash-book-file-list small { display:block; }
.cash-book-history { margin-top:1rem; }
.cash-book-table tfoot { position:static; }.cash-book-table tfoot td { background:var(--surface-soft); border-top:2px solid var(--primary); }
@media(max-width:1000px){.cash-book-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.cash-book-entry-form{grid-template-columns:repeat(2,minmax(150px,1fr))}}
@media(max-width:1100px){.cash-book-ledger-heading{top:calc(var(--app-header-height,68px) + var(--section-submenu-height,0px))}}
@media (max-width:1180px),(hover:none) and (pointer:coarse) and (max-width:1400px){.cash-book-ledger-heading{top:calc(var(--app-header-height,62px) + var(--section-submenu-height,0px))}}
@media(max-width:600px){.cash-book-heading .accounting-heading-actions,.cash-book-export-actions{width:100%}.cash-book-summary{grid-template-columns:1fr}.cash-book-entry-form{grid-template-columns:1fr}.cash-book-entry-form .cash-book-form-wide{grid-column:auto}}
.in-kind-donation-summary { grid-template-columns:minmax(260px,420px); }
.in-kind-donation-table { width:100%; min-width:1180px; table-layout:fixed; }
.in-kind-donation-table th:nth-child(1){width:12%}.in-kind-donation-table th:nth-child(2){width:14%;text-align:right}.in-kind-donation-table th:nth-child(3){width:43%}.in-kind-donation-table th:nth-child(4){width:14%}.in-kind-donation-table th:nth-child(5){width:17%;text-align:right}
.in-kind-donation-table td { vertical-align:top; }
.in-kind-donation-table tfoot td { background:var(--surface-soft); border-top:2px solid var(--primary); }
.in-kind-donation-form { display:grid; grid-template-columns:minmax(180px,.75fr) minmax(210px,.8fr) minmax(300px,2fr) minmax(210px,.9fr); gap:.8rem; align-items:start; }
.in-kind-donation-form textarea { width:100%; resize:vertical; }
.in-kind-donation-form-actions { grid-column:1/-1; }
@media(max-width:1000px){.in-kind-donation-form{grid-template-columns:repeat(2,minmax(180px,1fr))}.in-kind-donation-description{grid-column:1/-1}}
@media(max-width:600px){.in-kind-donation-form{grid-template-columns:1fr}.in-kind-donation-description{grid-column:auto}}

/* Buchhaltung: Auswertung */
.accounting-evaluation-switcher {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin:0 0 18px;
}
.accounting-evaluation-option {
    min-height:64px;
    justify-content:flex-start;
    gap:11px;
    padding:10px 14px;
    text-align:left;
}
.accounting-evaluation-option .icon { width:22px; height:22px; flex:0 0 auto; }
.accounting-evaluation-option span { display:grid; gap:2px; }
.accounting-evaluation-option strong { font-size:15px; }
.accounting-evaluation-option small { font-size:11px; font-weight:650; opacity:.78; }
.accounting-evaluation-option:disabled { color:var(--muted); border-style:dashed; background:var(--surface-soft); opacity:1; }
.accounting-evaluation-panel { width:50%; margin-inline:auto; padding:0; overflow:hidden; }
.accounting-evaluation-panel-heading { margin:0; padding:16px 18px; border-bottom:1px solid var(--line); }
.accounting-evaluation-panel-heading h2,.accounting-evaluation-panel-heading p { margin:0; }
.accounting-evaluation-panel-heading .icon { color:var(--primary); }
.accounting-evaluation-area-search { display:grid; grid-template-columns:minmax(180px,1fr) auto auto; align-items:center; gap:8px; padding:12px 18px; border-bottom:1px solid var(--line); background:var(--surface-soft); }
.accounting-evaluation-area-search label { position:relative; display:block; margin:0; }
.accounting-evaluation-area-search label > .icon { position:absolute; top:50%; left:11px; width:17px; height:17px; color:var(--primary); pointer-events:none; transform:translateY(-50%); }
.accounting-evaluation-area-search input { width:100%; min-width:0; padding-left:37px; background:var(--surface); }
.accounting-evaluation-area-search output { min-width:112px; font-size:11px; font-weight:650; text-align:right; white-space:nowrap; }
.accounting-evaluation-summary-row[hidden],.accounting-evaluation-detail-row[hidden],.accounting-evaluation-search-empty[hidden] { display:none; }
.accounting-evaluation-search-empty td { padding:18px; color:var(--muted); text-align:center; }
.accounting-evaluation-table { width:100%; min-width:680px; table-layout:fixed; }
.accounting-evaluation-table > thead th:first-child { width:46%; }
.accounting-evaluation-table > thead th:not(:first-child),.accounting-evaluation-table > tbody > .accounting-evaluation-summary-row > td,.accounting-evaluation-table > tfoot td { text-align:right; }
.accounting-evaluation-table > tbody > .accounting-evaluation-summary-row > th { text-align:left; font-weight:750; }
.accounting-evaluation-row-toggle small { display:block; margin-top:2px; color:var(--muted); font-size:11px; font-weight:600; }
.accounting-evaluation-money { white-space:nowrap; font-variant-numeric:tabular-nums; font-weight:700; }
.accounting-evaluation-money > strong { display:block; }
.accounting-evaluation-money > small { display:block; margin-top:3px; color:var(--muted); font-size:9px; font-weight:600; line-height:1.35; }
.accounting-evaluation-table > tfoot th > small { display:block; margin-top:2px; color:var(--muted); font-size:10px; font-weight:600; }
.accounting-evaluation-table .is-income { color:var(--primary); }
.accounting-evaluation-table .is-expense { color:var(--danger); }
.accounting-evaluation-summary-row { cursor:pointer; }
.accounting-evaluation-summary-row > * { transition:background-color .18s ease; }
.accounting-evaluation-summary-row:hover > *,.accounting-evaluation-summary-row:focus-within > * { background:#eef8f6; }
.accounting-evaluation-row-toggle { display:flex; width:100%; align-items:center; gap:9px; padding:0; border:0; appearance:none; color:inherit; background:transparent; cursor:pointer; font:inherit; text-align:left; }
.accounting-evaluation-row-toggle > span:last-child { display:grid; min-width:0; gap:1px; }
.accounting-evaluation-row-toggle strong { color:inherit; font:inherit; font-size:1rem; }
.accounting-evaluation-row-chevron { display:grid; place-items:center; width:22px; height:22px; flex:0 0 auto; border-radius:50%; color:var(--primary); background:rgba(15,107,95,.1); transition:transform .24s ease,background-color .18s ease; }
.accounting-evaluation-row-chevron .icon { width:14px; height:14px; }
.accounting-evaluation-summary-row.is-open .accounting-evaluation-row-chevron { color:#fff; background:var(--primary); transform:rotate(180deg); }
.accounting-evaluation-detail-row > td { padding:0 !important; border-top:0; text-align:left; background:#f7faf9; }
.accounting-evaluation-detail-shell { display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows .3s ease,opacity .22s ease; }
.accounting-evaluation-detail-row.is-open .accounting-evaluation-detail-shell { grid-template-rows:1fr; opacity:1; }
.accounting-evaluation-detail-inner { min-height:0; overflow:hidden; }
.accounting-evaluation-bookings-wrap { margin:0; padding:10px 14px 14px 45px; }
.accounting-evaluation-booking-table { width:100%; min-width:560px; border:1px solid var(--line); background:#fff; table-layout:fixed; }
.accounting-evaluation-booking-table th,.accounting-evaluation-booking-table td { text-align:left; vertical-align:top; }
.accounting-evaluation-booking-table th:nth-child(1){width:54px}.accounting-evaluation-booking-table th:nth-child(2){width:100px}.accounting-evaluation-booking-table th:nth-child(3){width:125px}.accounting-evaluation-booking-table th:nth-child(5){width:125px}
.accounting-evaluation-booking-table th:first-child,.accounting-evaluation-booking-table td:first-child { text-align:center; }
.accounting-evaluation-booking-table th:last-child,.accounting-evaluation-booking-table td:last-child { text-align:right; }
.accounting-evaluation-booking-table td:nth-child(4) { overflow-wrap:anywhere; }
.accounting-evaluation-booking-table td strong,.accounting-evaluation-booking-table td small { display:block; }
.accounting-evaluation-booking-table td small { margin-top:2px; color:var(--muted); font-size:11px; font-weight:500; line-height:1.3; }
.accounting-evaluation-booking-switch { justify-content:center; margin:0; }
.accounting-evaluation-booking-table tbody td { transition:opacity .18s ease,background-color .18s ease; }
.accounting-evaluation-booking-table tbody tr.is-temporarily-excluded > td:not(:first-child) { opacity:.34; background:var(--surface-soft); }
.accounting-evaluation-booking-table tfoot th,.accounting-evaluation-booking-table tfoot td { padding-block:12px; border-top:2px solid var(--primary); background:#e9f5f2; }
.accounting-evaluation-booking-table tfoot th { text-align:left; text-transform:none; }
.accounting-evaluation-booking-table tfoot th small { display:block; margin-top:2px; color:var(--muted); font-size:11px; font-weight:600; text-transform:none; }
.accounting-evaluation-booking-table tfoot output { font:inherit; }
.accounting-evaluation-empty-bookings { margin:0; padding:14px 18px 14px 45px; color:var(--muted); font-size:12px; }
.accounting-evaluation-table tbody tr.is-unassigned > * { background:#fff8e8; }
.accounting-evaluation-table tbody tr.is-unassigned th { color:#805b12; }
.accounting-evaluation-table tbody tr.is-excluded > * { color:var(--muted); background:var(--surface-soft); }
.accounting-evaluation-table tfoot > tr > * { padding-block:14px; border-top:2px solid var(--primary); background:#e9f5f2; font-size:15px; }
.accounting-evaluation-note { margin:0; padding:12px 18px; border-top:1px solid var(--line); background:var(--surface-soft); font-size:12px; }
@media(max-width:1200px){.accounting-evaluation-panel{width:72%}}
@media(max-width:700px){
    .accounting-evaluation-heading{align-items:stretch;flex-direction:column}
    .accounting-evaluation-heading .accounting-heading-actions{justify-content:flex-start}
    .accounting-evaluation-switcher{grid-template-columns:1fr}
    .accounting-evaluation-panel{width:100%}
    .accounting-evaluation-area-search{grid-template-columns:minmax(0,1fr) auto}
    .accounting-evaluation-area-search output{grid-column:1/-1;min-width:0;text-align:left}
    .accounting-evaluation-bookings-wrap{padding-left:14px}
    .accounting-evaluation-empty-bookings{padding-left:18px}
}
@media(prefers-reduced-motion:reduce){.accounting-evaluation-detail-shell,.accounting-evaluation-row-chevron{transition:none}}

/* Buchhaltung: Laufender Haushalt */
.accounting-running-budget{width:100%}
.accounting-running-budget-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin:0 0 10px}
.accounting-running-budget-toolbar>span{display:inline-flex;align-items:center;gap:6px;margin-right:2px;color:var(--muted);font-size:12px;font-weight:750}
.accounting-running-budget-toolbar>span .icon{width:16px;height:16px}
.accounting-running-budget-grid,.accounting-running-budget-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.accounting-running-budget-grid{align-items:stretch}
.accounting-running-budget-grid.is-balancing{align-items:start}
.accounting-running-budget-editor-grid{align-items:start}
.accounting-running-budget-side{display:flex;min-width:0;flex-direction:column;padding:0;overflow:hidden}
.accounting-running-budget-side-heading{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);background:var(--surface-soft)}
.accounting-running-budget-side-heading>span,.accounting-running-budget-editor-side>header>span{display:grid;width:40px;height:40px;place-items:center;border-radius:10px;color:#fff;background:var(--primary)}
.accounting-running-budget-side.is-expense .accounting-running-budget-side-heading>span,.accounting-running-budget-editor-side.is-expense>header>span{background:#a33a3a}
.accounting-running-budget-side-heading .icon{width:22px;height:22px}
.accounting-running-budget-side-heading h2,.accounting-running-budget-side-heading small,.accounting-running-budget-editor-side>header h2,.accounting-running-budget-editor-side>header small{display:block;margin:0}
.accounting-running-budget-side-heading small,.accounting-running-budget-editor-side>header small{margin-top:2px;color:var(--muted);font-size:11px}
.accounting-running-budget-side-heading>strong{font-size:1.25rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.accounting-running-budget-side.is-income .accounting-running-budget-side-heading>strong{color:var(--primary)}
.accounting-running-budget-side.is-expense .accounting-running-budget-side-heading>strong{color:var(--danger)}
.accounting-running-budget-empty{display:grid;min-height:250px;place-items:center;align-content:center;gap:8px;padding:28px;text-align:center}
.accounting-running-budget-empty h3,.accounting-running-budget-empty p{margin:0}
.accounting-running-budget-empty p{max-width:420px;color:var(--muted);font-size:13px}
.accounting-running-budget-empty .empty-icon{width:42px;height:42px;color:var(--primary);opacity:.72}
.accounting-running-budget-sections{display:grid}
.accounting-running-budget-section+.accounting-running-budget-section{border-top:1px solid var(--line)}
.accounting-running-budget-section>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 14px;background:#fae5d7}
.accounting-running-budget-section>header h3{min-width:0;margin:0;font-size:14px;overflow-wrap:anywhere}
.accounting-running-budget-section dl{margin:0}
.accounting-running-budget-section dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-height:44px;padding:7px 14px;border-top:1px solid rgba(175,190,195,.58)}
.accounting-running-budget-section dl>div:first-child{border-top:0}
.accounting-running-budget-section dt{min-width:0}.accounting-running-budget-section dt span,.accounting-running-budget-section dt small{display:block}
.accounting-running-budget-section dt span{overflow-wrap:anywhere}.accounting-running-budget-section dt small{margin-top:1px;color:var(--muted);font-size:10px;font-weight:650}
.accounting-running-budget-section dd{margin:0;font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}
.accounting-running-budget-section dl>div.is-empty{color:var(--muted);font-size:12px}
.accounting-running-budget-section dl>div.is-spacer{min-height:44px;background:#fff}
.accounting-running-budget-balance-spacer{display:grid;background:#fff}
.accounting-running-budget-balance-row{box-sizing:border-box;min-height:1px;border-top:1px solid rgba(175,190,195,.58);background:#fff}
.accounting-running-budget-side-footer{margin-top:0;border-top:1px solid var(--line)}
.accounting-running-budget-unrepresented{color:var(--muted);background:var(--surface-soft);font-size:12px}
.accounting-running-budget-unrepresented>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:11px 14px;cursor:pointer;list-style:none}
.accounting-running-budget-unrepresented>summary::-webkit-details-marker{display:none}
.accounting-running-budget-unrepresented>summary>span{position:relative;min-width:0;padding-left:17px}
.accounting-running-budget-unrepresented>summary>span::before{position:absolute;top:50%;left:0;content:"›";font-size:18px;line-height:1;transform:translateY(-50%);transition:transform .16s ease}
.accounting-running-budget-unrepresented[open]>summary>span::before{transform:translateY(-50%) rotate(90deg)}
.accounting-running-budget-unrepresented>summary>span>span,.accounting-running-budget-unrepresented>summary small{display:block}
.accounting-running-budget-unrepresented>summary small{margin-top:1px;font-size:10px;line-height:1.35;overflow-wrap:anywhere}
.accounting-running-budget-unrepresented>summary:hover{filter:brightness(.985)}
.accounting-running-budget-unrepresented>summary:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.accounting-running-budget-unrepresented strong,.accounting-running-budget-side-total strong,.accounting-running-budget-side-breakdown strong{font-variant-numeric:tabular-nums;white-space:nowrap}
.accounting-running-budget-unrepresented.has-value{color:#805b12;background:#fff8e8}
.accounting-running-budget-unrepresented-details{border-top:1px solid rgba(128,91,18,.2);background:rgba(255,255,255,.48)}
.accounting-running-budget-unrepresented-details dl{margin:0}
.accounting-running-budget-unrepresented-details dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:8px 14px 8px 31px;border-top:1px solid rgba(175,190,195,.38)}
.accounting-running-budget-unrepresented-details dl>div:first-child{border-top:0}
.accounting-running-budget-unrepresented-details dt{min-width:0;overflow-wrap:anywhere}
.accounting-running-budget-unrepresented-details dd{margin:0;font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}
.accounting-running-budget-unrepresented-details .is-unassigned{font-style:italic}
.accounting-running-budget-unrepresented-details p{margin:0;padding:9px 14px 9px 31px}
.accounting-running-budget-side-total{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 14px}
.accounting-running-budget-side-breakdown{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:5px 14px;color:var(--muted);background:#f7faf9;font-size:11px}
.accounting-running-budget-side-breakdown.is-placeholder>*{visibility:hidden}
.accounting-running-budget-side-total{border-top:2px solid var(--primary);background:#e9f5f2;font-size:15px;font-weight:800}
.accounting-running-budget-side.is-expense .accounting-running-budget-side-total{border-top-color:#a33a3a;background:#fff1f1}
.accounting-running-budget-result{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px;padding:16px 20px;border:2px solid var(--primary);background:linear-gradient(135deg,#eef8f6,#fff)}
.accounting-running-budget-result span small,.accounting-running-budget-result span strong{display:block}.accounting-running-budget-result span small{color:var(--muted);font-size:11px}.accounting-running-budget-result span strong{margin-top:2px;font-size:18px}
.accounting-running-budget-result span em{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-style:normal;font-weight:650}
.accounting-running-budget-result output{font-size:1.55rem;font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}.accounting-running-budget-result output.is-income{color:var(--primary)}.accounting-running-budget-result output.is-expense{color:var(--danger)}
.accounting-running-budget-note{margin:10px 2px 0;font-size:12px;line-height:1.45}
.accounting-running-budget-editor{display:grid;gap:16px}
.accounting-running-budget-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px}
.accounting-running-budget-editor-heading h2,.accounting-running-budget-editor-heading p{margin:0}.accounting-running-budget-editor-heading p{margin-top:3px;font-size:12px}
.accounting-running-budget-editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.accounting-running-budget-editor-actions .autosave-status[data-state="dirty"]{color:#805b12}.accounting-running-budget-editor-actions .autosave-status[data-state="saving"]{color:var(--primary)}.accounting-running-budget-editor-actions .autosave-status[data-state="error"]{color:var(--danger);font-weight:750}
.accounting-running-budget-editor-side{min-width:0;padding:0;overflow:visible}
.accounting-running-budget-editor-side>header{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 14px;border-bottom:1px solid var(--line);background:var(--surface-soft)}
.accounting-running-budget-editor-side>header>span{width:36px;height:36px;border-radius:9px}
.accounting-running-budget-editor-sections{display:grid;gap:12px;padding:12px}
.accounting-running-budget-editor-section{border:1px solid #c9d8d5;border-radius:10px;background:#fff;box-shadow:0 2px 7px rgba(20,55,60,.05)}
.accounting-running-budget-editor-section.is-dragging,.accounting-running-budget-editor-row.is-dragging{opacity:.5;outline:2px dashed var(--primary);outline-offset:2px}
.accounting-running-budget-editor-section-heading{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:end;gap:8px;padding:10px;border-bottom:1px solid var(--line);border-radius:9px 9px 0 0;background:#fae5d7}
.accounting-running-budget-editor-section-heading>label,.accounting-running-budget-row-name{display:grid;gap:3px;margin:0}
.accounting-running-budget-editor-section-heading label>span,.accounting-running-budget-row-name>span,.accounting-running-budget-category-label{font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.025em}
.accounting-running-budget-editor-section-heading input,.accounting-running-budget-editor-row input{width:100%;min-width:0;background:#fff}
.accounting-running-budget-editor-section-heading input{font-weight:750}
.accounting-running-budget-order-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}
.accounting-running-budget-order-actions .icon-button,.accounting-running-budget-editor-section-heading>.drag-handle,.accounting-running-budget-editor-row>.drag-handle{width:32px;height:32px;padding:0;justify-content:center}
.accounting-running-budget-editor-rows{display:grid}
.accounting-running-budget-editor-row{display:grid;grid-template-columns:32px minmax(150px,.85fr) minmax(250px,1.25fr) auto;align-items:start;gap:8px;padding:10px;border-top:1px solid var(--line);background:#fff}
.accounting-running-budget-editor-row:first-child{border-top:0}
.accounting-running-budget-category-picker{position:relative;display:grid;gap:3px;min-width:0}
.accounting-running-budget-category-control{display:flex;min-height:36px;align-items:center;gap:4px;flex-wrap:wrap;padding:3px 7px;border:1px solid var(--line);border-radius:8px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.accounting-running-budget-category-control:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(15,107,95,.13)}
.accounting-running-budget-category-control>input{width:auto;min-width:95px;min-height:26px;flex:1 1 125px;padding:2px 1px;border:0;border-radius:0;background:transparent;box-shadow:none}
.accounting-running-budget-category-control>input:focus{outline:0;box-shadow:none}
.accounting-running-budget-category-chips{display:flex;min-width:0;max-width:100%;align-items:center;gap:4px;flex-wrap:wrap}
.accounting-running-budget-category-chips>span{display:inline-flex;min-width:0;max-width:100%;align-items:center;gap:4px;padding:3px 4px 3px 8px;border-radius:999px;color:#175d8f;background:#e7f2f9;font-size:11px;font-weight:700;overflow-wrap:anywhere}
.accounting-running-budget-category-chips>span>.icon-button{width:20px;height:20px;flex:none;padding:0;border:0;color:inherit;background:transparent;font-size:15px}
.accounting-running-budget-category-results{position:absolute;z-index:18;top:calc(100% + 4px);right:0;left:0;max-height:250px;padding:5px;overflow:auto;border:1px solid #9fc8c0;border-radius:8px;background:#fff;box-shadow:0 14px 35px rgba(20,55,60,.2)}
.accounting-running-budget-category-results button{display:flex;width:100%;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px;border:0;border-radius:6px;background:transparent;cursor:pointer;text-align:left}
.accounting-running-budget-category-results button:hover,.accounting-running-budget-category-results button:focus-visible{background:#eef8f6}.accounting-running-budget-category-results button:disabled{color:var(--muted);background:#f4f6f5;cursor:not-allowed}
.accounting-running-budget-category-results button small{font-size:10px;text-align:right}.accounting-running-budget-category-results p{margin:0;padding:9px;color:var(--muted);font-size:11px;text-align:center}
.accounting-running-budget-add-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 10px 10px}
.accounting-running-budget-editor-empty{margin:0 12px 12px;padding:22px;border:1px dashed #b8cbc7;border-radius:9px;color:var(--muted);background:var(--surface-soft);font-size:12px;text-align:center}
.accounting-running-budget-editor-footer{position:sticky;z-index:12;bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-color:#9fc8c0;box-shadow:0 10px 28px rgba(20,55,60,.16)}
.accounting-running-budget-editor-footer span{color:var(--muted);font-size:12px}
@media(max-width:1180px){.accounting-running-budget-editor-grid{grid-template-columns:1fr}.accounting-running-budget-editor-row{grid-template-columns:32px minmax(160px,.85fr) minmax(260px,1.25fr) auto}}
@media(max-width:900px){.accounting-running-budget-grid{grid-template-columns:1fr}.accounting-running-budget-editor-heading{align-items:stretch;flex-direction:column}.accounting-running-budget-editor-actions{justify-content:flex-start}}
@media(max-width:700px){.accounting-running-budget-toolbar{flex-wrap:wrap}.accounting-running-budget-side-heading{grid-template-columns:38px minmax(0,1fr)}.accounting-running-budget-side-heading>strong{grid-column:2}.accounting-running-budget-result{align-items:flex-start;flex-direction:column}.accounting-running-budget-editor-side>header{grid-template-columns:36px minmax(0,1fr)}.accounting-running-budget-editor-side>header>.button{grid-column:1/-1;width:100%;justify-content:center}.accounting-running-budget-editor-section-heading{grid-template-columns:32px minmax(0,1fr)}.accounting-running-budget-editor-section-heading>.accounting-running-budget-order-actions{grid-column:2}.accounting-running-budget-editor-row{grid-template-columns:32px minmax(0,1fr)}.accounting-running-budget-editor-row>.accounting-running-budget-row-name,.accounting-running-budget-editor-row>.accounting-running-budget-category-picker,.accounting-running-budget-editor-row>.accounting-running-budget-order-actions{grid-column:2}.accounting-running-budget-editor-row>.accounting-running-budget-order-actions{justify-content:flex-start}.accounting-running-budget-editor-footer{align-items:stretch;flex-direction:column}.accounting-running-budget-editor-footer .button{width:100%;justify-content:center}}

/* Buchhaltung: Haushalt */
.budget-control-panel { margin:0; padding:0; overflow:hidden; }
.budget-quick-search { display:grid; grid-template-columns:auto minmax(280px,1fr) auto; align-items:center; gap:12px 16px; margin:0; padding:13px 16px; }
.budget-quick-search > label { display:flex; align-items:center; gap:10px; margin:0; }
.budget-quick-search > label strong,.budget-quick-search > label small { display:block; }
.budget-quick-search > label small { margin-top:2px; color:var(--muted); font-size:11px; }
.budget-quick-search-icon { display:grid; place-items:center; width:34px; height:34px; flex:0 0 auto; border-radius:8px; color:var(--primary); background:var(--surface-soft); }
.budget-quick-search-icon .icon { width:19px; height:19px; }
.budget-quick-search-control { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.budget-quick-search-control input { width:100%; min-width:0; border-color:rgba(15,107,95,.45); background:var(--surface-soft); font-weight:650; }
.budget-quick-search-control input:focus { border-color:var(--primary); background:var(--surface); box-shadow:0 0 0 3px rgba(15,107,95,.13); }
.budget-quick-search-meta { display:flex; align-items:center; justify-content:flex-end; gap:14px; }
.budget-quick-search output { min-width:185px; font-size:12px; text-align:right; }
.budget-quick-search output.is-empty { color:var(--danger); font-weight:750; }
.budget-open-only-switch { min-height:34px; }
.budget-open-only-switch b { font-size:12px; }
.budget-quick-search-empty { grid-column:1/-1; margin:0; padding:9px 11px; border-radius:7px; color:var(--danger); background:#fff1f1; font-weight:700; text-align:center; }
.budget-tile-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:stretch; gap:14px; margin-bottom:18px; }
.budget-tile-grid > .panel { min-width:0; min-height:240px; }
.budget-summary-tile { display:flex; flex-direction:column; gap:14px; }
.budget-tile-heading { display:flex; align-items:center; gap:10px; }
.budget-tile-heading > span,.budget-placeholder-icon { display:grid; place-items:center; width:38px; height:38px; flex:0 0 auto; border-radius:9px; color:var(--primary); background:var(--surface-soft); }
.budget-tile-heading .icon,.budget-placeholder-icon .icon { width:21px; height:21px; }
.budget-tile-heading strong,.budget-tile-heading small { display:block; }
.budget-tile-heading small { margin-top:2px; color:var(--muted); font-size:12px; }
.budget-summary-list { display:grid; gap:0; margin:0; }
.budget-summary-list > div { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:5px 0; }
.budget-summary-list dt { color:var(--muted); font-size:13px; font-weight:700; }
.budget-summary-list dd { margin:0; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; }
.budget-summary-list .budget-summary-total { padding-top:10px; border-top:1px solid var(--line); }
.budget-summary-list .budget-summary-total-secondary { margin-top:1px; border-top-style:dashed; }
.budget-summary-list .budget-summary-in-kind { margin-top:2px; padding-top:9px; border-top:1px dashed var(--line); }
.budget-summary-list .budget-summary-subline,.budget-summary-list .budget-summary-thin { padding-top:2px; color:var(--muted); }
.budget-summary-list .budget-summary-subline dt,.budget-summary-list .budget-summary-subline dd,.budget-summary-list .budget-summary-thin dt,.budget-summary-list .budget-summary-thin dd { font-size:11px; font-weight:650; }
.budget-summary-list .budget-summary-divider { padding-top:10px; border-top:1px solid var(--line); }
.budget-summary-tile > small { margin-top:auto; line-height:1.35; }
.budget-placeholder-tile { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:10px; color:var(--muted); background:linear-gradient(145deg,var(--surface),var(--surface-soft)); }
.budget-placeholder-tile strong { color:var(--text); font-size:17px; }
.budget-placeholder-tile p { margin:0; font-size:13px; }
.budget-evaluation-tile { color:inherit; border-color:rgba(15,107,95,.38); background:linear-gradient(145deg,#fff,#eef8f6); cursor:pointer; text-decoration:none; transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease; }
.budget-evaluation-tile:hover,.budget-evaluation-tile:focus-visible { color:inherit; border-color:var(--primary); box-shadow:0 8px 22px rgba(15,107,95,.14); transform:translateY(-2px); text-decoration:none; }
.budget-evaluation-tile .budget-placeholder-icon { color:#fff; background:var(--primary); }
.budget-evaluation-action { display:inline-flex; align-items:center; gap:7px; margin-top:auto; padding:8px 11px; border-radius:7px; color:#fff; background:var(--primary); font-size:12px; font-weight:800; }
.budget-evaluation-action .icon { width:16px; height:16px; }
.budget-heading { margin-top:0; }
.budget-sync-state { display:flex; align-items:center; gap:12px 26px; flex-wrap:wrap; margin:0; padding:12px 16px; border-bottom:1px solid var(--line); background:var(--surface-soft); font-size:13px; }
.budget-section { margin-top:18px; }
.budget-section:not(.panel) { padding:0; }
.budget-section-heading { margin-bottom:10px; }
.budget-subsection-heading { margin:16px 0 8px; padding:10px 12px; border-radius:8px; background:var(--surface-soft); }
.budget-subsection-heading h3,.budget-subsection-heading p { margin:0; }
.budget-subsection-heading h3 { font-size:15px; }
.budget-section-heading h2,.budget-section-heading p { margin:0; }
.budget-section-heading .icon { color:var(--primary); }
.budget-months { display:grid; gap:10px; }
.budget-month { padding:0; overflow:hidden; }
.budget-month > summary { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px 16px; cursor:pointer; list-style:none; background:var(--surface-soft); }
.budget-month > summary::-webkit-details-marker { display:none; }
.budget-month > summary > span { display:flex; align-items:baseline; gap:10px; }
.budget-month > summary small { color:var(--muted); }
.budget-month > summary > .icon { width:17px; height:17px; transition:transform .15s ease; }
.budget-month[open] > summary > .icon { transform:rotate(180deg); }
.budget-table { min-width:1950px; table-layout:fixed; }
.budget-table th:nth-child(1){width:105px}.budget-table th:nth-child(2){width:105px}.budget-table th:nth-child(3){width:190px}.budget-table th:nth-child(4){width:220px}.budget-table th:nth-child(5){width:285px}.budget-table th:nth-child(6){width:125px}.budget-table th:nth-child(7){width:230px}.budget-table th:nth-child(8){width:125px}.budget-table th:nth-child(9){width:125px}.budget-table th:nth-child(10){width:280px}
.budget-table th:nth-child(6),.budget-table th:nth-child(8),.budget-table th:nth-child(9) { padding-right:28px; text-align:right; }
.budget-table tr.is-filtering-out > td { pointer-events:none; animation:budget-row-filter-out .24s ease forwards; }
@keyframes budget-row-filter-out { to { opacity:0; transform:translateY(-5px); } }
.budget-table td { vertical-align:top; }
.budget-table form { margin:0; }
.budget-table input,.budget-table select { width:100%; min-width:0; }
.budget-table [data-budget-save] { display:block; margin-top:3px; font-size:11px; }
.budget-purpose { white-space:pre-line; }
.budget-money { padding-right:28px; text-align:right; white-space:nowrap; font-weight:750; font-variant-numeric:tabular-nums; }
.budget-category-cell > * + * { margin-top:8px; }
.budget-category-cell .budget-split-open { width:100%; justify-content:center; }
.budget-category-assigned-summary { display:flex; align-items:center; gap:6px; }
.budget-category-assigned-summary[hidden],.budget-category-editor[hidden] { display:none; }
.budget-category-assigned-summary strong { min-width:0; color:#175d8f; font-weight:800; overflow-wrap:anywhere; }
.budget-category-editor > .button { width:100%; justify-content:center; }
.budget-category-assigned-summary .budget-category-edit-button { width:28px; min-width:28px; height:28px; min-height:28px; flex:0 0 28px; padding:4px; border-color:transparent; border-radius:6px; color:#6b7e88; background:transparent; }
.budget-category-assigned-summary .budget-category-edit-button:hover,.budget-category-assigned-summary .budget-category-edit-button:focus-visible { color:#175d8f; border-color:#b8d3e2; background:#edf5fa; }
.budget-category-assigned-summary .budget-category-edit-button .icon { width:15px; height:15px; }
.budget-category-editor > * + * { margin-top:8px; }
.budget-split-row > td { background:var(--surface-soft); }
.budget-split-row-followup > td { border-top:1px dashed var(--line); }
.budget-split-label { display:block; margin-top:5px; color:var(--primary); font-size:11px; font-weight:750; line-height:1.35; }
.budget-split-shared-hint { display:block; margin-top:5px; font-size:11px; }
.budget-split-category { display:grid; gap:3px; }
.budget-split-category small { color:var(--muted); font-size:11px; }
.budget-split-category strong { color:var(--text); overflow-wrap:anywhere; }
.budget-split-category.is-assigned strong,.budget-category-assigned-text { color:#175d8f; font-weight:800; }
.budget-category-picker { position:relative; display:grid; gap:5px; min-width:0; }
.budget-category-search,select[data-budget-category-select]:not(.is-assigned),select[data-budget-split-category]:not(.is-assigned) { width:100%; min-width:0; color:var(--muted); border-color:var(--line); background:var(--surface-soft); font-weight:650; }
.budget-category-search:focus { border-color:var(--primary); background:var(--surface); box-shadow:0 0 0 3px rgba(15,107,95,.13); }
.budget-category-search.is-assigned,select[data-budget-category-select].is-assigned,select[data-budget-split-category].is-assigned { color:var(--primary-dark); border-color:rgba(15,107,95,.72); background:#e4f3f0; font-weight:750; }
.budget-category-search.is-assigned::placeholder { color:var(--primary-dark); opacity:1; }
.budget-category-search.is-assigned:focus { background:#f4fbf9; }
.budget-category-search-results { position:fixed; z-index:1000; display:grid; gap:3px; overflow:auto; padding:6px; border:1px solid var(--line); border-radius:9px; background:var(--surface); box-shadow:0 14px 34px rgba(24,36,34,.2); }
.budget-category-search-results[hidden] { display:none; }
.budget-category-search-results.is-dialog-results { position:absolute; z-index:20; }
.budget-category-search-result { display:flex; align-items:center; width:100%; min-height:36px; padding:7px 9px; border:0; border-radius:6px; color:var(--text); background:transparent; font:inherit; font-size:13px; font-weight:650; line-height:1.25; text-align:left; cursor:pointer; }
.budget-category-search-result:hover,.budget-category-search-result.is-active { color:#fff; background:var(--primary); }
.budget-category-search-result.is-selected:not(.is-active)::after { content:'✓'; margin-left:auto; color:var(--primary); font-weight:900; }
.budget-category-search-result.is-create { color:var(--primary); font-weight:800; }
.budget-category-search-result.is-create:hover,.budget-category-search-result.is-create.is-active { color:#fff; }
.budget-category-search-result.is-unassigned { color:var(--muted); }
.budget-category-search-result.is-unassigned:hover,.budget-category-search-result.is-unassigned.is-active { color:#fff; }
.budget-category-search-more { display:block; padding:7px 9px; color:var(--muted); font-size:11px; }
.budget-allocation-summary { display:grid; gap:5px; }
.budget-allocation-summary > span { display:grid; grid-template-columns:auto minmax(0,1fr); gap:7px; align-items:baseline; overflow-wrap:anywhere; }
.budget-allocation-summary strong { white-space:nowrap; font-variant-numeric:tabular-nums; }
.budget-split-dialog { width:min(820px,calc(100vw - 2rem)); min-width:min(520px,calc(100vw - 2rem)); min-height:320px; max-width:calc(100vw - 1rem); max-height:calc(100dvh - 1rem); padding:1.2rem; overflow:auto; box-sizing:border-box; }
.budget-split-dialog[open] { position:fixed; inset:50% auto auto 50%; margin:0; transform:translate(-50%,-50%); }
.budget-split-dialog[open].is-positioned { inset:auto; transform:none; }
.budget-split-dialog::backdrop { background:rgba(15,32,31,.55); }
.budget-split-dialog .panel-heading { margin-bottom:12px; }
.budget-split-dialog .panel-heading h2,.budget-split-dialog .panel-heading p,.budget-split-dialog > p { margin:0; }
.budget-split-dialog-heading { cursor:move; touch-action:none; user-select:none; }
.budget-split-dialog-heading-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; flex-wrap:wrap; cursor:default; }
.budget-split-dialog.is-dragging,.budget-split-dialog.is-resizing { user-select:none; }
.budget-split-resize-handle { position:fixed; z-index:1001; display:block; width:26px; height:26px; border-radius:0 0 10px 0; cursor:nwse-resize; touch-action:none; }
.budget-split-resize-handle::after { content:""; position:absolute; right:5px; bottom:5px; width:10px; height:10px; border-right:2px solid #4f6d67; border-bottom:2px solid #4f6d67; opacity:.8; }
.budget-split-resize-handle[hidden] { display:none; }
.budget-split-lines { display:grid; gap:9px; }
.budget-split-line { display:grid; grid-template-columns:minmax(130px,.4fr) minmax(180px,.7fr) minmax(220px,1fr) auto; gap:9px; align-items:center; }
.budget-split-line input,.budget-split-line select { width:100%; min-width:0; }
.budget-split-tools { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.budget-split-tools [data-budget-split-total] { color:var(--danger); font-variant-numeric:tabular-nums; }
.budget-split-tools [data-budget-split-total].is-complete { color:var(--primary); }
.app-budget-split-popup .budget-split-dialog { z-index:1000; width:calc(100vw - 1rem); height:calc(100dvh - 1rem); max-width:none; max-height:none; }
.app-budget-split-popup .budget-split-dialog-heading { cursor:default; }
.app-budget-split-popup [data-budget-split-popout],.app-budget-split-popup .budget-split-resize-handle { display:none; }
.budget-tile-grid .is-income,.budget-table .is-income { color:var(--primary) !important; }
.budget-tile-grid .is-expense,.budget-table .is-expense { color:var(--danger) !important; }
.budget-category-admin { margin-top:18px; scroll-margin-top:150px; }
.budget-category-table { min-width:900px; }
.budget-category-table input[name="name"] { width:100%; }
.budget-category-table .form-actions { flex-wrap:nowrap; }
.budget-category-table form { margin:0; }
.budget-category-table [data-budget-category-row] > td { transition:padding-top .28s ease,padding-bottom .28s ease,border-color .2s ease; }
.budget-category-row-collapse { min-width:0; overflow:hidden; opacity:1; transform:translateY(0); transition:height .28s cubic-bezier(.4,0,.2,1),opacity .18s ease,transform .28s ease; }
.budget-category-table [data-budget-category-row].is-removing > td { padding-top:0; padding-bottom:0; border-bottom-color:transparent; }
.budget-category-table [data-budget-category-row].is-removing .budget-category-row-collapse { opacity:0; transform:translateY(-5px); }
.budget-category-create { margin-top:16px; padding-top:16px; border-top:1px solid var(--line); }
@media(prefers-reduced-motion:reduce){.budget-category-table [data-budget-category-row] > td,.budget-category-row-collapse{transition:none}}
.accounting-area-reset { margin-top:18px; scroll-margin-top:150px; }
.accounting-area-reset-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.accounting-area-reset-card { display:flex; flex-direction:column; justify-content:space-between; gap:16px; min-width:0; padding:16px; border:1px solid rgba(161,43,43,.25); border-radius:10px; background:rgba(161,43,43,.025); }
.accounting-area-reset-card h3,.accounting-area-reset-card p { margin-top:0; }
.accounting-area-reset-card form { margin:0; }
.accounting-area-reset-card .button { justify-content:center; }

.travel-expense-heading { align-items:flex-start; }
.travel-expense-heading-actions { display:grid; flex:none; gap:6px; justify-items:end; }
.travel-expense-heading-buttons { display:flex; flex-wrap:wrap; align-items:stretch; justify-content:flex-end; gap:8px; }
.travel-expense-heading-buttons form { display:flex; margin:0; }
.travel-expense-heading-buttons form .button { height:100%; }
.travel-expense-heading-actions small { color:var(--muted); text-align:right; }
.travel-expense-layout { display:grid; grid-template-columns:minmax(350px,380px) minmax(0,1fr); gap:18px; align-items:start; }
.travel-expense-sidebar,.travel-expense-main { display:grid; gap:18px; min-width:0; }
.travel-expense-sidebar { position:sticky; top:calc(var(--app-header-height,68px) + var(--section-submenu-height,0px) + 14px); }
.travel-expense-create h2 { margin-top:0; }
.travel-expense-create-period { grid-template-columns:repeat(2,minmax(150px,1fr)); gap:8px; }
.travel-expense-create-period > label { min-width:0; }
.travel-expense-create-period input[type="date"] { width:100%; min-width:0; max-width:100%; box-sizing:border-box; font-variant-numeric:tabular-nums; }
.travel-expense-report-list { padding:0; overflow:hidden; }
.travel-expense-report-list .panel-heading { padding:16px 18px 12px; margin:0; border-bottom:1px solid var(--line); }
.travel-expense-report-list > .muted { padding:16px 18px; margin:0; }
.travel-expense-report-entry { border-bottom:1px solid var(--line); }
.travel-expense-report-entry:last-child { border-bottom:0; }
.travel-expense-report-entry.is-active { background:rgba(0,117,105,.1); box-shadow:inset 4px 0 var(--primary); }
.travel-expense-report-entry.is-completed:not(.is-active) { background:#f6f9f8; }
.travel-expense-report-link { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 18px; color:inherit; text-decoration:none; border-bottom:1px solid var(--line); }
.travel-expense-report-link:last-child { border-bottom:0; }
.travel-expense-report-link:hover { background:rgba(0,117,105,.05); }
.travel-expense-report-link.is-active { background:rgba(0,117,105,.1); box-shadow:inset 4px 0 var(--primary); }
.travel-expense-report-entry .travel-expense-report-link { border-bottom:0; }
.travel-expense-report-entry.is-active .travel-expense-report-link { background:transparent; box-shadow:none; }
.travel-expense-report-link > span { display:grid; gap:3px; min-width:0; }
.travel-expense-report-link > span:last-child { text-align:right; flex:none; }
.travel-expense-report-link strong,.travel-expense-report-link small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.travel-expense-report-link small { color:var(--muted); font-size:.76rem; }
.travel-expense-completion-form { margin:0; padding:0 18px 11px; }
.travel-expense-completion-form.is-submitting { pointer-events:none; opacity:.7; }
.travel-expense-completion-switch { min-height:24px; color:var(--muted); font-size:.74rem; }
.travel-expense-completion-switch strong { overflow:hidden; text-overflow:ellipsis; }
.travel-expense-completion-switch.is-disabled { cursor:not-allowed; opacity:.62; }
.travel-expense-completion-switch input:disabled + span { filter:grayscale(.55); }
.travel-expense-completed-badge { display:inline-flex; align-items:center; gap:6px; min-height:42px; padding:8px 12px; border-radius:8px; color:#086a5e; background:#dff1ed; font-size:.86rem; font-weight:800; }
.travel-expense-completed-badge .icon { width:16px; height:16px; }
.travel-expense-readonly-notice { display:flex; align-items:flex-start; gap:11px; margin:0; border-color:#9fcfc5; color:#155e54; background:#edf8f5; }
.travel-expense-readonly-notice > .icon { width:20px; height:20px; flex:none; margin-top:1px; }
.travel-expense-readonly-notice > div { display:grid; gap:3px; }
.travel-expense-readonly-notice span { color:#52706a; font-size:.84rem; line-height:1.4; }
.travel-expense-import { border-color:rgba(0,117,105,.35); background:linear-gradient(135deg,rgba(0,117,105,.06),#fff 52%); }
.travel-expense-import dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0 0 18px; }
.travel-expense-import dl > div { padding:11px 12px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.travel-expense-import dt { color:var(--muted); font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.travel-expense-import dd { margin:4px 0 0; }
.travel-expense-report-actions,.travel-expense-position-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px; }
.travel-expense-report-actions form { margin:0; }
.travel-expense-report-summary { display:grid; grid-template-columns:minmax(150px,.8fr) minmax(260px,1.4fr) minmax(190px,1fr) minmax(150px,.75fr); gap:12px; margin:0; }
.travel-expense-report-summary > div { min-width:0; padding:12px 14px; border:1px solid var(--line); border-radius:9px; background:#f8fbfa; }
.travel-expense-report-summary > div.is-wide { grid-column:auto; }
.travel-expense-report-summary dt { color:var(--muted); font-size:.76rem; font-weight:750; letter-spacing:.025em; text-transform:uppercase; }
.travel-expense-report-summary dd { min-width:0; margin:5px 0 0; overflow-wrap:anywhere; font-weight:700; line-height:1.35; }
.travel-expense-position-heading { align-items:flex-start; flex-wrap:wrap; }
.travel-expense-form-dialog { width:min(760px,calc(100vw - 2rem)); }
.travel-expense-form-dialog.is-wide { width:min(920px,calc(100vw - 2rem)); }
.travel-expense-form-dialog .dialog-heading h2 { display:flex; align-items:center; gap:8px; }
.travel-expense-form-dialog .dialog-heading h2 .icon { color:var(--primary); }
.travel-expense-form-dialog .dialog-heading p { margin-top:5px; color:var(--muted); }
.travel-expense-form-dialog > form { margin-top:18px; }
.travel-expense-form-dialog .form-actions { justify-content:flex-end; margin-top:4px; }
.travel-expense-route-addresses { display:grid; gap:12px; }
.travel-expense-address-field { position:relative; display:grid; min-width:0; gap:5px; align-content:start; }
.travel-expense-address-input-row { display:grid; grid-template-columns:minmax(0,1fr); gap:7px; align-items:center; }
.travel-expense-address-field.is-via .travel-expense-address-input-row { grid-template-columns:minmax(0,1fr) 38px; }
.travel-expense-address-input-row input { min-width:0; }
.travel-expense-address-input-row .icon-button { width:38px; height:38px; align-self:end; }
.travel-expense-via-group,.travel-expense-via-rows { display:grid; gap:8px; }
.travel-expense-via-group > .button { justify-self:start; margin-top:1px; }
.travel-expense-contact-address-results { position:absolute; z-index:30; top:calc(100% + 4px); right:0; left:0; display:grid; max-height:220px; overflow:auto; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:0 10px 26px rgba(27,59,53,.18); }
.travel-expense-contact-address-results[hidden] { display:none; }
.travel-expense-contact-address-results > button { display:grid; gap:2px; width:100%; min-height:44px; padding:8px 9px; border:0; border-bottom:1px solid #edf2f1; color:var(--text); background:#fff; text-align:left; cursor:pointer; }
.travel-expense-contact-address-results > button:last-child { border-bottom:0; }
.travel-expense-contact-address-results > button:hover,.travel-expense-contact-address-results > button.is-active { background:#edf7f4; }
.travel-expense-contact-address-results strong,.travel-expense-contact-address-results small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.travel-expense-contact-address-results small { color:var(--muted); font-size:.76rem; font-weight:500; }
.travel-expense-contact-address-results > p { margin:0; padding:10px; color:var(--muted); font-size:.8rem; }
.travel-expense-pdf-warning-dialog { width:min(680px,calc(100vw - 2rem)); }
.travel-expense-create-dialog { width:min(680px,calc(100vw - 2rem)); }
.travel-expense-create-dialog .dialog-heading h2 { display:flex; align-items:center; gap:8px; }
.travel-expense-create-dialog .dialog-heading h2 .icon { color:var(--primary); }
.travel-expense-create-dialog > form { margin-top:18px; }
.travel-expense-create-dialog .form-actions { justify-content:flex-end; margin-top:4px; }
.travel-expense-claimant-lookup { position:relative; }
.travel-expense-claimant-results { position:absolute; z-index:40; top:calc(100% + 4px); right:0; left:0; display:grid; max-height:260px; overflow:auto; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:0 10px 26px rgba(27,59,53,.18); }
.travel-expense-claimant-results[hidden] { display:none; }
.travel-expense-claimant-results > button { display:grid; gap:3px; width:100%; min-height:46px; padding:8px 10px; border:0; border-bottom:1px solid #edf2f1; color:var(--text); background:#fff; text-align:left; cursor:pointer; }
.travel-expense-claimant-results > button:last-child { border-bottom:0; }
.travel-expense-claimant-results > button:hover,.travel-expense-claimant-results > button:focus { background:#edf7f4; outline:0; }
.travel-expense-claimant-results strong,.travel-expense-claimant-results small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.travel-expense-claimant-results small { color:var(--muted); font-size:.76rem; font-weight:500; }
.travel-expense-claimant-results > p { margin:0; padding:10px; color:var(--muted); font-size:.8rem; }
.travel-expense-date-mode { display:flex; align-items:center; gap:16px; margin:0; padding:10px 12px; border:1px solid var(--line); border-radius:7px; }
.travel-expense-date-mode legend { padding:0 5px; color:var(--muted); font-size:.78rem; font-weight:700; }
.travel-expense-date-mode label { display:flex; flex-direction:row; align-items:center; gap:6px; margin:0; }
.travel-expense-date-mode input { width:auto; }
[data-travel-expense-period-fields][hidden],[data-travel-expense-service-field][hidden] { display:none!important; }
.travel-expense-bank-fields { display:grid; grid-template-columns:minmax(220px,1.2fr) minmax(190px,1fr) minmax(140px,.7fr) auto; gap:10px; align-items:end; margin:0; padding:12px; border:1px solid var(--line); border-radius:8px; background:#f8fbfa; }
fieldset.travel-expense-bank-fields { grid-template-columns:1fr; align-items:stretch; }
.travel-expense-bank-fields legend { padding:0 5px; color:var(--muted); font-size:.78rem; font-weight:700; }
.travel-expense-bank-fields input[readonly] { color:var(--muted); background:#fff; }
.travel-expense-bank-fields p { min-height:1.1em; margin:0; color:var(--muted); font-size:.78rem; }
.travel-expense-bank-fields p.is-success { color:var(--primary); }
.travel-expense-bank-fields p.is-error { color:var(--danger); }
.travel-expense-bank-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.travel-expense-pdf-warning-dialog .dialog-heading p { margin-top:5px; color:var(--muted); line-height:1.45; }
.travel-expense-pdf-warning-dialog .dialog-heading h2 { display:flex; align-items:center; gap:8px; }
.travel-expense-pdf-warning-dialog .dialog-heading h2 .icon { color:#b56a00; }
.travel-expense-pdf-warning-list { display:grid; max-height:280px; margin:0; padding:0; overflow:auto; border:1px solid #eed7ae; border-radius:8px; background:#fffaf0; list-style:none; }
.travel-expense-pdf-warning-list li { display:grid; grid-template-columns:100px minmax(0,1fr); gap:12px; align-items:center; padding:10px 12px; border-bottom:1px solid #f1e2c7; }
.travel-expense-pdf-warning-list li:last-child { border-bottom:0; }
.travel-expense-pdf-warning-list time { color:#8b5a14; font-weight:800; font-variant-numeric:tabular-nums; }
.travel-expense-pdf-warning-list span { display:grid; min-width:0; gap:2px; }
.travel-expense-pdf-warning-list strong,.travel-expense-pdf-warning-list small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.travel-expense-pdf-warning-list small { color:var(--muted); font-size:.78rem; }
.travel-expense-pdf-warning-note { margin:14px 0 0; font-weight:700; }
.travel-expense-pdf-warning-actions { justify-content:flex-end; margin-top:14px; }
.travel-expense-distance-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(100px,auto); gap:12px; align-items:end; }
.travel-expense-distance-row label { position:relative; }
.travel-expense-distance-row label input { padding-right:42px; }
.travel-expense-distance-row label > span { position:absolute; right:12px; bottom:10px; color:var(--muted); }
.travel-expense-distance-row output { display:flex; min-height:42px; align-items:center; justify-content:flex-end; padding:0 12px; border-radius:8px; background:rgba(0,117,105,.08); color:var(--primary); font-size:1.05rem; font-weight:800; font-variant-numeric:tabular-nums; }
.travel-expense-route-calculation { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:-2px; }
.travel-expense-route-calculation output { color:var(--muted); font-size:.84rem; font-weight:700; font-variant-numeric:tabular-nums; }
.travel-expense-route-calculation output[data-state="saving"] { color:#7a641e; }
.travel-expense-route-calculation output[data-state="saved"] { color:var(--primary); }
.travel-expense-route-calculation output[data-state="error"] { color:var(--danger); }
.travel-expense-return-option { display:inline-flex !important; width:auto; max-width:100%; min-height:38px; align-items:center; align-self:start; justify-self:start; gap:8px !important; margin:0; padding:9px 10px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; font-size:.84rem; font-weight:700; }
.travel-expense-return-option input[type="checkbox"] { width:16px !important; height:16px !important; min-width:16px !important; min-height:0 !important; flex:0 0 16px; margin:0; padding:0 !important; accent-color:var(--primary); }
.travel-expense-return-option span { display:inline; line-height:1.2; white-space:normal; }
.travel-expense-items { scroll-margin-top:92px; }
.travel-expense-item-list { display:grid; gap:12px; }
.travel-expense-item-group,.travel-expense-child-list { display:grid; gap:12px; min-width:0; }
.travel-expense-item-group { position:relative; }
.travel-expense-item { position:relative; padding:16px; border:1px solid var(--line); border-left:4px solid var(--primary); border-radius:10px; background:#fff; scroll-margin-top:92px; }
.travel-expense-item.is-expense { border-left-color:#f7931d; }
.travel-expense-item.is-child-expense { margin-left:50px; background:#fffdf9; }
.travel-expense-item.is-child-expense::before { position:absolute; top:-13px; left:-30px; width:24px; height:34px; border-bottom:2px solid rgba(247,147,29,.45); border-left:2px solid rgba(247,147,29,.45); border-radius:0 0 0 8px; content:""; }
.travel-expense-item > header { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:12px; align-items:center; }
.travel-expense-item-icon { display:grid; width:38px; height:38px; place-items:center; border-radius:50%; color:var(--primary); background:rgba(0,117,105,.09); }
.travel-expense-item.is-expense .travel-expense-item-icon { color:#b75f00; background:rgba(247,147,29,.13); }
.travel-expense-item > header > div { display:grid; gap:3px; }
.travel-expense-item > header strong { font-size:1rem; }
.travel-expense-item > header strong small { color:var(--primary); }
.travel-expense-item > header span:not(.travel-expense-item-icon) { color:var(--muted); font-size:.82rem; }
.travel-expense-item > header > b { font-size:1.1rem; font-variant-numeric:tabular-nums; }
.travel-expense-route { margin:14px 0 8px 50px; font-weight:650; }
.travel-expense-route span { color:var(--primary); }
.travel-expense-route em { margin-left:5px; color:var(--muted); font-style:normal; font-weight:600; }
.travel-expense-item > .preline,.travel-expense-source { margin-left:50px; }
.travel-expense-source { display:inline-flex; align-items:center; gap:6px; color:var(--primary); font-size:.84rem; }
.travel-expense-foreign-fee { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:10px 0 0 50px; padding:9px 11px; border:1px solid rgba(247,147,29,.25); border-radius:7px; background:#fff8ef; font-size:.88rem; }
.travel-expense-foreign-fee b { white-space:nowrap; font-variant-numeric:tabular-nums; }
.travel-expense-item-edit { margin:14px 0 0 50px; }
.travel-expense-item-edit > summary { width:max-content; list-style:none; cursor:pointer; }
.travel-expense-item-edit > summary::-webkit-details-marker { display:none; }
.travel-expense-item-edit[open] > summary { margin-bottom:12px; }
.travel-expense-item-edit form { padding:14px; border-radius:8px; background:var(--surface,#f7f9f8); }
.travel-expense-receipts { margin:14px 0 0 50px; padding-top:14px; border-top:1px solid var(--line); }
.travel-expense-receipt-list { display:grid; gap:6px; }
.travel-expense-receipt-list > div { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 10px; border-radius:7px; background:rgba(0,0,0,.025); }
.travel-expense-receipt-list a { display:flex; align-items:center; gap:8px; min-width:0; color:inherit; text-decoration:none; }
.travel-expense-receipt-list a span { display:grid; min-width:0; }
.travel-expense-receipt-list a strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.travel-expense-receipt-list a small { color:var(--muted); }
.travel-expense-receipt-list form { margin:0; }
.travel-expense-receipt-upload { display:grid; grid-template-columns:minmax(260px,1fr) auto; gap:4px 12px; align-items:end; margin-top:10px; }
.travel-expense-receipt-upload > small { grid-column:1; color:var(--muted); }
.travel-expense-receipt-upload > .button { grid-column:2; grid-row:1 / span 2; }
.travel-expense-receipt-picker { position:relative; display:grid; gap:6px; min-width:0; }
.travel-expense-receipt-picker-label { font-size:.84rem; font-weight:700; }
.travel-expense-receipt-input { position:absolute; width:1px; height:1px; min-height:0; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.travel-expense-receipt-dropzone { display:flex; min-height:68px; padding:10px 12px; align-items:center; gap:10px; overflow:hidden; border:2px dashed #b7cbc7; border-radius:9px; color:var(--text); background:#f8fbfa; cursor:pointer; caret-color:transparent; outline:none; transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease; }
.travel-expense-receipt-dropzone:hover,.travel-expense-receipt-dropzone:focus,.travel-expense-receipt-dropzone.is-dragover { border-color:var(--primary); background:#edf8f5; box-shadow:0 0 0 3px rgba(0,117,105,.09); }
.travel-expense-receipt-dropzone.is-invalid { border-color:var(--danger); background:#fff6f6; box-shadow:0 0 0 3px rgba(181,50,50,.08); }
.travel-expense-receipt-dropzone-icon { display:grid; width:38px; height:38px; flex:0 0 auto; place-items:center; border-radius:9px; color:var(--primary); background:#dff0ec; pointer-events:none; }
.travel-expense-receipt-dropzone-copy { display:grid; gap:2px; min-width:0; pointer-events:none; }
.travel-expense-receipt-dropzone-copy strong { font-size:.86rem; }
.travel-expense-receipt-dropzone-copy small { color:var(--muted); font-size:.75rem; font-weight:550; }
.travel-expense-receipt-context-menu { position:fixed; z-index:1000; min-width:250px; padding:5px; border:1px solid var(--line); border-radius:9px; background:#fff; box-shadow:0 12px 34px rgba(24,36,34,.2); }
.travel-expense-receipt-context-menu[hidden] { display:none; }
.travel-expense-receipt-context-menu button { display:flex; width:100%; padding:9px 10px; align-items:center; gap:9px; border:0; border-radius:6px; color:var(--text); background:transparent; cursor:pointer; text-align:left; }
.travel-expense-receipt-context-menu button:hover,.travel-expense-receipt-context-menu button:focus { color:var(--primary-dark); background:#edf8f5; outline:none; }
.travel-expense-receipt-context-menu button:disabled { opacity:.6; cursor:wait; }
.travel-expense-receipt-context-menu button > .icon { flex:0 0 auto; color:var(--primary); }
.travel-expense-receipt-context-menu button > span { display:grid; gap:1px; }
.travel-expense-receipt-context-menu strong { font-size:.82rem; }
.travel-expense-receipt-context-menu small { color:var(--muted); font-size:.7rem; font-weight:550; }
.travel-expense-receipt-selection { display:flex; flex-wrap:wrap; gap:5px; }
.travel-expense-receipt-selection:empty { display:none; }
.travel-expense-receipt-selection > span { display:inline-flex; max-width:100%; align-items:center; gap:6px; padding:5px 6px 5px 9px; border-radius:99px; color:#225048; background:#e8f4f1; font-size:.76rem; font-weight:650; }
.travel-expense-receipt-selection > span > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.travel-expense-receipt-selection button { display:grid; width:22px; height:22px; flex:0 0 auto; padding:0; place-items:center; border:0; border-radius:50%; color:inherit; background:rgba(0,0,0,.06); cursor:pointer; font:inherit; }
.travel-expense-receipt-selection button:hover,.travel-expense-receipt-selection button:focus { color:#fff; background:var(--danger); outline:none; }
.travel-expense-receipt-feedback { margin:0; color:var(--danger); font-size:.78rem; font-weight:700; }
.travel-expense-subitem-toggle { margin:18px 0 0 50px; }
.travel-expense-subitem-toggle > summary { width:max-content; max-width:100%; list-style:none; cursor:pointer; }
.travel-expense-subitem-toggle > summary::-webkit-details-marker { display:none; }
.travel-expense-subitem-create { display:grid; grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr); gap:18px; margin:12px 0 0; padding:16px; border:1px solid rgba(247,147,29,.28); border-radius:9px; background:#fffaf4; }
.travel-expense-subitem-create h3 { display:flex; align-items:center; gap:7px; margin:0 0 5px; font-size:.95rem; }
.travel-expense-subitem-create p { margin:0; color:var(--muted); font-size:.84rem; line-height:1.4; }
.travel-expense-subitem-create form > small { color:var(--muted); }
.travel-expense-subitem-create .button { width:max-content; }
.travel-expense-subitem-actions { display:flex; flex-wrap:wrap; gap:10px; }
.travel-expense-subitem-actions .button.secondary { background:#f0f2f1; }
.travel-expense-item-delete { display:flex; justify-content:flex-end; margin:14px 0 0; }
.event-travel-expense-transfer { margin-top:8px; width:max-content; }

@media(max-width:1180px){.travel-expense-report-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.travel-expense-subitem-create{grid-template-columns:1fr}}
@media(max-width:900px){.travel-expense-layout{grid-template-columns:1fr}.travel-expense-sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.travel-expense-import dl{grid-template-columns:1fr}}
@media(max-width:700px){.travel-expense-heading{flex-direction:column}.travel-expense-heading-actions{width:100%;justify-items:stretch}.travel-expense-heading-buttons{justify-content:flex-start}.travel-expense-heading-buttons>a,.travel-expense-heading-buttons>form{flex:1 1 190px}.travel-expense-heading-buttons form .button{width:100%;justify-content:center}.travel-expense-heading-actions small{text-align:left}.travel-expense-sidebar{grid-template-columns:1fr}.travel-expense-report-summary{grid-template-columns:1fr}.travel-expense-report-summary > div.is-wide{grid-column:auto}.travel-expense-report-actions,.travel-expense-position-actions{width:100%;justify-content:flex-start}.travel-expense-position-actions .button{flex:1 1 190px;justify-content:center}.travel-expense-subitem-create .form-grid.two{grid-template-columns:1fr}.travel-expense-item>header{grid-template-columns:auto minmax(0,1fr)}.travel-expense-item>header>b{grid-column:2}.travel-expense-route,.travel-expense-item>.preline,.travel-expense-source,.travel-expense-item-edit,.travel-expense-receipts,.travel-expense-subitem-toggle,.travel-expense-subitem-create,.travel-expense-foreign-fee{margin-left:0}.travel-expense-item.is-child-expense{margin-left:0}.travel-expense-item.is-child-expense::before{display:none}.travel-expense-item-delete{margin-top:12px}.travel-expense-receipt-upload{grid-template-columns:1fr}.travel-expense-receipt-upload > small,.travel-expense-receipt-upload > .button{grid-column:1;grid-row:auto}.travel-expense-distance-row{grid-template-columns:1fr}.travel-expense-route-calculation{align-items:stretch;flex-direction:column}.travel-expense-route-calculation .button{width:100%}}

.employer-layout { display:grid; grid-template-columns:minmax(250px,310px) minmax(0,1fr); gap:18px; align-items:start; }
.employer-sidebar { position:sticky; top:82px; }
.employer-account-overview { display:grid; gap:16px; padding:17px 18px; }
.employer-account-group { display:grid; gap:7px; min-width:0; }
.employer-account-group > strong { display:flex; align-items:center; gap:7px; font-size:.9rem; }
.employer-account-group > strong .icon { width:17px; height:17px; color:var(--primary); }
.employer-account-group ul { display:grid; max-height:180px; gap:0; margin:0; padding:0; overflow-y:auto; list-style:none; }
.employer-account-group li { overflow-wrap:anywhere; border-top:1px solid #edf1f0; font-size:.84rem; line-height:1.3; }
.employer-account-group li a { display:flex; align-items:center; gap:8px; min-height:32px; padding:6px 8px; border-radius:7px; color:inherit; text-decoration:none; }
.employer-account-group li a::before { content:""; width:5px; height:5px; flex:none; border-radius:50%; background:#78aca3; }
.employer-account-group li a:hover { color:var(--primary); background:#f0f7f5; }
.employer-account-group li a.is-active { color:var(--primary); background:#e5f2ef; font-weight:800; box-shadow:inset 3px 0 var(--primary); }
.employer-account-group li.is-empty { padding:6px 0; color:var(--muted); font-style:italic; }
.employer-section-card { display:flex; align-items:center; gap:13px; color:inherit; text-decoration:none; }
.employer-section-card.is-active { border-color:rgba(0,117,105,.38); background:linear-gradient(135deg,rgba(0,117,105,.1),#fff 70%); box-shadow:inset 4px 0 var(--primary); }
.employer-section-card-with-list { display:block; padding:0; overflow:hidden; }
.employer-section-card-link { display:flex; align-items:center; gap:13px; padding:20px; color:inherit; text-decoration:none; }
.employer-section-card-link:hover,.employer-section-card-link:focus-visible { text-decoration:none; }
.employer-section-icon { display:grid; place-items:center; width:42px; height:42px; flex:none; border-radius:10px; color:var(--primary); background:rgba(0,117,105,.1); }
.employer-section-icon .icon { width:22px; height:22px; }
.employer-section-copy { display:grid; flex:1; gap:4px; min-width:0; }
.employer-section-card small { color:var(--muted); }
.employer-open-expense-area { padding:0 20px 14px 75px; }
.employer-open-expense-heading { display:block; margin-bottom:4px; color:var(--muted); font-size:.72rem; font-weight:750; text-transform:uppercase; letter-spacing:.035em; }
.employer-open-expense-list { display:grid; max-height:132px; margin:0; padding:0; overflow-y:auto; border-top:1px solid #e4ecea; list-style:none; }
.employer-open-expense-list li { min-width:0; border-bottom:1px solid #edf1f0; }
.employer-open-expense-list li:last-child { border-bottom:0; }
.employer-open-expense-list li a { display:flex; align-items:center; justify-content:space-between; gap:9px; min-width:0; padding:6px 4px; border-radius:6px; color:inherit; font-size:.8rem; font-weight:700; line-height:1.25; text-decoration:none; }
.employer-open-expense-list li a:hover,.employer-open-expense-list li a:focus-visible,.employer-open-expense-list li a.is-selected-account { color:var(--primary-dark); background:#edf7f4; }
.employer-open-expense-list li a > span:first-child { min-width:0; overflow-wrap:anywhere; }
.employer-open-expense-list .badge { min-width:23px; flex:none; padding:2px 6px; color:var(--primary-dark); text-align:center; background:#e2f1ed; }
.employer-open-expense-empty { padding:7px 0 2px; color:var(--muted); font-size:.78rem; font-style:italic; }
.employer-main { min-width:0; }
.employer-personal-data-list { grid-template-columns:minmax(150px,220px) minmax(0,1fr); }
.employer-submissions .panel-heading { align-items:flex-start; }
.employer-submission-heading { gap:18px; }
.employer-submission-tabs { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.employer-submission-tabs .button { min-width:116px; justify-content:center; }
.employer-submission-tabs .badge { margin-left:2px; color:inherit; background:rgba(255,255,255,.72); }
.employer-submission-table { min-width:1320px; }
.employer-submission-table td { vertical-align:middle; }
.employer-submission-table td > small { display:block; margin-top:4px; color:var(--muted); }
.employer-submission-table .number { text-align:right; white-space:nowrap; }
.employer-submission-table .button { white-space:nowrap; }
.employer-submission-status { display:inline-flex; align-items:center; gap:5px; padding:4px 8px; border-radius:999px; font-size:.78rem; font-weight:750; white-space:nowrap; }
.employer-submission-status.is-open { color:#5d6967; background:#edf1f0; }
.employer-submission-status.is-archived { color:#086a5e; background:#dff1ed; }
.employer-submission-status .icon { width:14px; height:14px; }
.employer-submission-actions { display:flex; align-items:center; gap:7px; }
.employer-submission-actions form { margin:0; }
.employer-submission-actions .button { justify-content:center; }
.employer-submission-delete-dialog { width:min(560px,calc(100vw - 30px)); padding:0; overflow:hidden; border:1px solid var(--line); border-radius:14px; color:var(--text); background:#fff; box-shadow:0 28px 85px rgba(18,35,32,.34); }
.employer-submission-delete-dialog::backdrop { background:rgba(18,35,32,.58); backdrop-filter:blur(2px); }
.employer-submission-delete-dialog > form { display:grid; margin:0; }
.employer-submission-delete-dialog header { display:flex; align-items:flex-start; gap:13px; padding:20px 22px 16px; border-bottom:1px solid var(--line); }
.employer-submission-delete-dialog header h2 { margin:0 0 4px; font-size:1.18rem; }
.employer-submission-delete-dialog header p,.employer-submission-delete-body p { margin:0; color:var(--muted); line-height:1.5; }
.employer-submission-delete-icon { display:grid; width:40px; height:40px; flex:0 0 auto; place-items:center; border-radius:10px; color:#a52727; background:#fde8e8; }
.employer-submission-delete-body { display:grid; gap:9px; padding:18px 22px; }
.employer-submission-delete-body strong { overflow-wrap:anywhere; }
.employer-submission-delete-dialog footer { display:flex; justify-content:flex-end; gap:9px; padding:15px 22px; border-top:1px solid var(--line); background:#f7f9f8; }
@media(max-width:900px){.employer-layout{grid-template-columns:1fr}.employer-sidebar{position:static}.employer-account-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.employer-submission-heading{align-items:stretch}.employer-submission-tabs{justify-content:flex-start}}
@media(max-width:520px){.employer-account-overview,.employer-personal-data-list{grid-template-columns:1fr}.employer-submission-tabs .button{flex:1 1 0}.employer-submission-delete-dialog footer{align-items:stretch;flex-direction:column-reverse}.employer-submission-delete-dialog footer .button{width:100%;justify-content:center}}

/* Urlaub, Krankheit und Arbeitgeberkonten */
.absence-page-heading{align-items:flex-start}.absence-heading-actions,.absence-heading-actions form{display:flex;gap:8px;margin:0}.absence-workflow-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.75fr);gap:18px;margin-bottom:18px}.absence-period-list{display:grid;gap:10px}.absence-period-row{display:grid;grid-template-columns:34px minmax(160px,1fr) minmax(160px,1fr) 42px;align-items:end;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8faf9}.absence-period-number{display:grid;width:30px;height:30px;place-items:center;align-self:center;border-radius:50%;font-weight:800;color:var(--primary);background:#e4f1ee}.absence-period-add{justify-self:start}.absence-balance-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.absence-balance-cards article{display:grid;gap:2px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8faf9}.absence-balance-cards span,.absence-balance-cards small{color:var(--muted);font-size:.78rem}.absence-balance-cards strong{font-size:1.65rem;color:var(--primary)}.absence-year-breakdown{display:grid;gap:6px}.absence-year-breakdown>div{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:8px;background:#f3f6f5}.absence-calculation-state{margin:0}.absence-rules p{line-height:1.55}.absence-list-panel{margin-top:18px}.absence-end-form{display:flex;align-items:center;gap:6px;min-width:260px}.absence-end-form input{min-width:135px}.absence-filter-tabs{display:flex;flex-wrap:wrap;gap:6px}.absence-request-table td>small{display:block;margin-top:3px;color:var(--muted);line-height:1.35}.absence-decision-form{display:grid;gap:7px;min-width:260px;margin-top:8px}.absence-decision-form textarea{min-width:240px}.absence-settings-select,.absence-holiday-form{display:flex;align-items:end;flex-wrap:wrap;gap:10px}.absence-settings-select label{min-width:220px}.absence-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}.absence-settings-grid>div{padding:16px;border:1px solid var(--line);border-radius:12px}.compact-history{display:grid;gap:7px;margin-top:14px}.compact-history p{display:grid;gap:2px;margin:0;padding-top:7px;border-top:1px solid var(--line)}.compact-history small{color:var(--muted)}.metric-inline{display:grid;text-align:right}.metric-inline strong{font-size:1.3rem;color:var(--primary)}.absence-holiday-form{margin-bottom:16px}.absence-holiday-form label:nth-of-type(2){min-width:260px;flex:1}.staff-status-draft{background:#edf1f0;color:#586461}.staff-status-submitted{background:#fff0c7;color:#7a5600}.staff-status-approved{background:#dff1ed;color:#086a5e}.staff-status-rejected{background:#fde4e4;color:#9c2525}.staff-status-cancelled{background:#eceeef;color:#666}.staff-status-reported{background:#e6edf8;color:#315b91}
.absence-overview-year-filter{display:flex;align-items:end;gap:8px}.absence-overview-year-filter label{min-width:120px}.absence-year-summary-table{min-width:1120px}.absence-year-summary-table td{vertical-align:top}.absence-year-summary-table td>small,.vacation-correction-table td>small,.vacation-correction-history td>small{display:block;margin-top:3px;color:var(--muted);line-height:1.35}.vacation-correction-table{min-width:1260px}.vacation-correction-table td{vertical-align:top}.vacation-correction-table th:nth-child(1){width:140px}.vacation-correction-table th:nth-child(2){width:220px}.vacation-day-correction-form{display:grid;grid-template-columns:minmax(280px,1.2fr) minmax(190px,.7fr) minmax(250px,1fr) auto;align-items:end;gap:10px;min-width:800px}.vacation-day-correction-form fieldset{min-width:0;margin:0}.vacation-day-options{display:flex;flex-wrap:wrap;gap:6px}.vacation-day-options label{display:flex;align-items:center;gap:5px;min-height:32px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:#f7faf9;font-size:.78rem;font-weight:700}.vacation-day-options input{width:auto;margin:0}.vacation-day-correction-form>.button{align-self:end;white-space:nowrap}.vacation-correction-history{margin-top:22px}.vacation-correction-history h3{margin-bottom:10px}
@media(max-width:1100px){.vacation-day-correction-form{grid-template-columns:repeat(2,minmax(0,1fr));min-width:620px}.vacation-day-correction-form>.button{justify-self:start}}
@media(max-width:1050px){.absence-workflow-grid{grid-template-columns:1fr}.absence-settings-grid{grid-template-columns:1fr}}
@media(max-width:720px){.absence-heading-actions{width:100%;flex-wrap:wrap}.absence-balance-cards{grid-template-columns:1fr}.absence-period-row{grid-template-columns:30px 1fr 42px}.absence-period-row label{grid-column:2}.absence-period-row .icon-only{grid-column:3;grid-row:1/3}.absence-settings-select,.absence-holiday-form{align-items:stretch;flex-direction:column}.absence-settings-select label,.absence-holiday-form label:nth-of-type(2){width:100%;min-width:0}.absence-overview-year-filter{width:100%;align-items:stretch;flex-direction:column}.absence-overview-year-filter label{width:100%}.vacation-day-correction-form{grid-template-columns:1fr;min-width:280px}}

@media(max-width:1200px){.budget-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1050px){.accounting-area-reset-grid{grid-template-columns:1fr}}
@media(max-width:900px){.budget-quick-search{grid-template-columns:1fr}.budget-quick-search-meta{justify-content:space-between}.budget-quick-search output{text-align:left}.budget-quick-search-control{grid-template-columns:1fr auto}}
@media(max-width:700px){.budget-quick-search-control{grid-template-columns:1fr}.budget-quick-search-control .button{width:100%;justify-content:center}.budget-quick-search-meta{align-items:flex-start;flex-direction:column}.budget-tile-grid{grid-template-columns:1fr}.budget-placeholder-tile{min-height:150px}.budget-sync-state{display:grid}.budget-month > summary > span{display:grid;gap:2px}.budget-split-dialog{min-width:0}.budget-split-dialog-heading{cursor:default}.budget-split-resize-handle{display:none}.budget-split-line{grid-template-columns:1fr}.budget-split-line .button{width:100%;justify-content:center}}
@media(max-width:620px){.event-schedule-options{grid-template-columns:1fr}}

@media (max-width: 800px), (max-width: 1000px) and (max-height: 600px) {
    :is(
        .event-emob-time-table,
        .event-emob-class-table,
        .event-program-table,
        .event-technology-table,
        .event-packing-table,
        .event-cost-table,
        .event-participant-table,
        .event-exhibitor-table,
        .event-meeting-table,
        .event-date-list-table
    )::before {
        content: "\2194  Felder seitlich wischen";
        position: sticky;
        z-index: 3;
        left: 8px;
        display: flex;
        width: max-content;
        min-height: 30px;
        align-items: center;
        margin: 7px 7px 4px;
        padding: 4px 9px;
        border: 1px solid #cbd8d5;
        border-radius: 999px;
        color: var(--primary-dark);
        background: rgba(255,255,255,.95);
        box-shadow: 0 2px 8px rgba(24,36,34,.08);
        font-size: 12px;
        font-weight: 800;
        pointer-events: none;
    }
}

@media (max-width: 1000px) and (max-height: 600px) {
    .event-map-canvas,
    .event-map-canvas iframe,
    .event-route-map {
        min-height: 280px;
        height: 280px;
    }
}

/* Externe Vorstandsaufgaben */
.external-todo-shell {
    min-height: 100dvh;
    padding: clamp(18px, 3vw, 48px);
    background:
        radial-gradient(circle at top right, rgba(15,107,95,.12), transparent 32rem),
        linear-gradient(180deg, #edf5f3, #f7f9f9 38%);
}

.external-todo-shell > .flash,
.external-todo-page {
    width: min(1320px, 100%);
    margin-inline: auto;
}

.external-todo-access-card { width:min(460px,100%); margin:auto; }
.external-todo-access-reset { margin-top:14px; text-align:center; }
.external-identity-search { display:grid; gap:7px; }
.external-identity-search-field { position:relative; display:block; }
.external-identity-search-field > input[type="search"] { width:100%; }
.external-identity-suggestions {
    position:absolute;
    z-index:30;
    top:calc(100% + 6px);
    left:0;
    right:0;
    display:grid;
    max-height:270px;
    overflow:auto;
    padding:6px;
    border:1px solid #b9d1cc;
    border-radius:11px;
    background:#fff;
    box-shadow:0 14px 34px rgba(24,36,34,.16);
}
.external-identity-suggestions[hidden] { display:none; }
.external-identity-option {
    display:grid;
    gap:3px;
    width:100%;
    padding:10px 11px;
    border:0;
    border-radius:8px;
    color:var(--text);
    background:transparent;
    text-align:left;
    cursor:pointer;
}
.external-identity-option:hover,
.external-identity-option[aria-selected="true"] { background:#eaf4f2; }
.external-identity-option strong { font-size:.9rem; }
.external-identity-option small { overflow-wrap:anywhere; color:var(--muted); font-weight:600; }
.external-identity-empty { padding:12px; color:var(--muted); font-size:.84rem; text-align:center; }
.external-identity-search > small { color:var(--muted); font-weight:600; line-height:1.4; }
.external-todo-organisation {
    display:inline-flex;
    align-items:center;
    width:max-content;
    padding:.28rem .58rem;
    border-radius:999px;
    color:#0a554c;
    background:#dcefeb;
    font-size:.72rem;
    font-weight:900;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.external-todo-page { display:grid; gap:22px; }
.external-todo-header {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:24px;
    padding:clamp(20px,3vw,34px);
    border:1px solid #d1e2de;
    border-radius:18px;
    background:rgba(255,255,255,.94);
    box-shadow:var(--shadow);
}
.external-todo-heading { flex:1 1 auto; min-width:0; }
.external-todo-header h1 { margin:.55rem 0 .3rem; font-size:clamp(1.7rem,3vw,2.55rem); line-height:1.08; }
.external-todo-header p { margin:0; color:var(--muted); }
.external-todo-subline { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.35rem 1.25rem; color:var(--muted); }
.external-todo-identity { display:inline-flex; min-width:0; margin-left:auto; align-items:center; justify-content:flex-end; gap:6px; color:inherit; font-size:1rem; font-weight:400; line-height:1.5; text-align:right; overflow-wrap:anywhere; }
.external-todo-identity .icon { flex:0 0 auto; }
.external-todo-session-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px; }
.external-todo-session-actions > span { display:inline-flex; align-items:center; gap:6px; margin-right:5px; font-weight:800; }
.external-todo-session-actions > .external-todo-open-count { margin-right:3px; padding:.42rem .68rem; border-radius:999px; color:#0a665b; background:#e4f3f0; font-size:.82rem; }
.external-todo-session-actions form { margin:0; }
.external-ticket-list { display:grid; gap:10px; }
.external-ticket-row {
    display:grid;
    grid-template-columns:5px minmax(0,1fr) 34px;
    gap:14px;
    align-items:center;
    margin-left:calc(var(--external-ticket-depth,0) * 18px);
    padding:16px 17px;
    border:1px solid #d6e3e0;
    border-radius:13px;
    color:var(--text);
    background:#fff;
    box-shadow:0 4px 15px rgba(24,36,34,.05);
    text-decoration:none;
    transition:border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.external-ticket-row:hover { border-color:#78aa9f; transform:translateY(-1px); box-shadow:0 9px 24px rgba(24,36,34,.09); }
.external-ticket-depth-marker { align-self:stretch; border-radius:99px; background:var(--primary); }
.external-ticket-copy { min-width:0; display:grid; gap:9px; }
.external-ticket-copy > div:first-child { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; }
.external-ticket-copy strong { font-size:1rem; }
.external-ticket-copy small { color:var(--muted); font-size:.73rem; }
.external-ticket-meta { display:flex; flex-wrap:wrap; align-items:center; gap:7px 12px; color:#546762; font-size:.76rem; }
.external-ticket-meta > span:not(.todo-status-pill):not(.todo-priority),.external-ticket-meta time { display:inline-flex; align-items:center; gap:4px; }
.external-ticket-open { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; color:var(--primary); background:#eaf4f2; }
.external-ticket-empty { display:grid; place-items:center; gap:7px; padding:60px 20px; border:1px dashed #b9d1cc; border-radius:16px; color:var(--muted); text-align:center; background:rgba(255,255,255,.72); }
.external-ticket-empty > .icon { width:42px; height:42px; color:var(--primary); }
.external-ticket-empty h2,.external-ticket-empty p { margin:0; }

.external-ticket-breadcrumbs a { display:inline-flex; align-items:center; gap:6px; color:var(--primary-dark); font-weight:800; text-decoration:none; }
.external-ticket-breadcrumbs .icon { transform:rotate(180deg); }
.external-ticket-detail-header { align-items:center; }
.external-ticket-detail-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; align-items:start; }
.external-ticket-card { padding:20px; }
.external-ticket-description { padding:5px 2px; line-height:1.65; }
.external-ticket-schedules,.external-ticket-files { display:grid; gap:8px; }
.external-ticket-schedules article { display:flex; align-items:center; gap:12px; padding:11px 12px; border-radius:9px; background:#f3f7f6; }
.external-ticket-schedules article > span { color:var(--primary); }
.external-ticket-schedules article > div { display:grid; gap:2px; }
.external-ticket-schedules time { color:var(--muted); font-size:.82rem; }
.external-ticket-files > a { display:grid; grid-template-columns:30px minmax(0,1fr) 24px; gap:9px; align-items:center; padding:10px 12px; border:1px solid var(--line); border-radius:9px; color:var(--text); text-decoration:none; }
.external-ticket-files > a:hover { border-color:#8db8ae; background:#f4faf8; }
.external-ticket-files > a > span { display:grid; min-width:0; }
.external-ticket-files small { color:var(--muted); }
.external-comment-edit { margin-top:10px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:#fafcfc; }
.external-comment-edit summary { color:var(--primary-dark); cursor:pointer; font-size:.76rem; font-weight:850; }
.external-comment-edit form { margin-top:9px; }
.external-comment-compose-author { display:flex; margin-bottom:.35rem; align-items:baseline; flex-wrap:wrap; gap:.3rem .55rem; }
.external-comment-compose-author strong { font-size:.88rem; }
.external-comment-compose-author small { color:var(--muted); font-size:.7rem; }

@media (max-width:820px) {
    .external-todo-shell { padding:12px; }
    .external-todo-header { display:grid; padding:18px; }
    .external-todo-session-actions { justify-content:flex-start; }
    .external-todo-subline { align-items:flex-start; }
    .external-ticket-detail-grid { grid-template-columns:1fr; }
    .external-ticket-row { margin-left:calc(var(--external-ticket-depth,0) * 8px); }
}

@media (max-width:520px) {
    .external-ticket-row { grid-template-columns:4px minmax(0,1fr); padding:13px 12px; }
    .external-ticket-open { display:none; }
}

@media (prefers-reduced-motion: reduce) {
    .main-nav,
    .nav-backdrop,
    .nav-toggle-line,
    .call-row-shell.is-resolving-out,
    .call-row-shell.is-settling {
        transition: none;
    }
    .event-tree-node.is-newly-created > .event-tree-item {
        animation: none;
        border-color: var(--primary);
    }
}

@media (max-width: 1000px) and (max-height: 600px) {
    .auth-shell {
        min-height: 100dvh;
        place-items: start center;
        padding: max(10px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));
    }

    .auth-card-otp {
        padding: 18px 24px;
    }

    .auth-card-otp .auth-logo {
        width: 40px;
        height: 40px;
        margin-bottom: 10px;
    }

    .auth-card-otp h1 {
        margin-bottom: 8px;
        font-size: 24px;
    }

    .auth-card-otp .stack {
        gap: 10px;
    }

    .auth-card-otp .otp-fieldset legend {
        margin-bottom: 10px;
    }

    .auth-card-otp .otp-cells {
        grid-template-columns: repeat(6, 44px);
        gap: 7px;
    }

    .auth-card-otp .otp-cell {
        height: 44px;
        min-height: 44px;
        font-size: 22px;
    }
}

/* EBZ workshop planning: compact weekly rows with shared Monday-Friday headings. */
[data-workshop-page] > .page-heading { margin-bottom: .5rem; }
[data-workshop-page] > .page-heading p, [data-workshop-page] [data-workshop-year-form] { margin-bottom: 0; }
.workshop-overview { width: 100%; max-width: none; margin-bottom: .65rem; }
.workshop-overview p { margin: .3rem 0; }
.workshop-overview p:first-child { margin-top: 0; }
.workshop-overview p:last-child { margin-bottom: 0; }
.workshop-block, .workshop-publish, .workshop-add, .workshop-summary { padding: 1.25rem; margin-bottom: 1.25rem; }
.workshop-block { border-left: 4px solid #167356; padding: .65rem .85rem; margin-bottom: .75rem; }
.workshop-block.is-provisional { border-left-color: #287ba0; }
.workshop-block-heading { display: flex; justify-content: space-between; align-items: center; gap: .35rem .75rem; flex-wrap: wrap; }
.workshop-block-heading > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: .2rem .75rem; }
.workshop-block-heading h2 { margin: 0; font-size: 1rem; line-height: 1.4; }
.workshop-block-heading p { margin: 0; color: #526661; font-size: .78rem; line-height: 1.4; }
.workshop-quota, .workshop-badge { background: #edf5eb; border-radius: .3rem; padding: .2rem .45rem; font-size: .77rem; line-height: 1.4; }
.workshop-quota { max-width: 32rem; }
.workshop-badge { background: #e6f2fa; color: #185d7e; font-weight: normal; }
.workshop-provisional-note { margin: .3rem 0 0; font-size: .78rem; color: #185d7e; }
.workshop-weeks-scroll { position: relative; max-width: 100%; overflow-x: auto; margin-top: .45rem; padding-bottom: .15rem; }
.workshop-weeks { --workshop-week-columns: 7.2rem minmax(0,1fr) minmax(23rem,30%); --workshop-accounting-columns: 5.6rem minmax(5rem,.8fr) minmax(8rem,1.3fr); min-width: 70rem; }
.workshop-grid-heading, .workshop-week { display: grid; grid-template-columns: var(--workshop-week-columns); gap: .65rem; }
.workshop-grid-heading { align-items: center; padding-bottom: .25rem; font-size: .76rem; line-height: 1.3; font-weight: 600; color: #37534b; }
.workshop-grid-heading .workshop-days > span { padding-left: .35rem; }
.workshop-week { align-items: start; border-top: 1px solid #dce7e2; padding: .3rem 0; }
.workshop-week-days { min-width: 0; }
.workshop-week-label { display: flex; flex-direction: column; justify-content: center; min-height: 2rem; margin: 0; color: #37534b; font-size: .78rem; line-height: 1.25; }
.workshop-week-label span { font-size: .71rem; font-weight: 400; white-space: nowrap; }
.workshop-days { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .35rem; }
.workshop-day-slot { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.workshop-column-heading { font-size: .76rem; font-weight: 600; color: #37534b; }
.workshop-day { display: flex; align-items: center; flex-wrap: wrap; gap: .15rem; min-width: 0; min-height: 2rem; border: 1px solid #d3e1db; background: #f8fbfa; border-radius: .3rem; padding: .15rem .3rem; }
.workshop-empty-day { min-height: 2rem; border: 1px dashed #dce7e2; border-radius: .3rem; display: grid; place-items: center; color: #9aaca5; }
.workshop-days > .workshop-day-slot > .workshop-day, .workshop-days > .workshop-day-slot > .workshop-empty-day { flex: 1; }
.workshop-day:has(input:checked) { background: #e2f2e9; border-color: #167356; }
.workshop-day-choice { display: flex; align-items: center; flex: 1; gap: .35rem; margin: 0; cursor: pointer; font-size: .81rem; line-height: 1.25; }
.workshop-day-choice span { white-space: nowrap; }
.workshop-day-choice input { width: 1rem; height: 1rem; min-height: 0; flex: 0 0 auto; margin: 0; accent-color: #167356; }
.workshop-edit-day { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 1.4rem; min-height: 1.6rem; margin: 0; border: 0; background: transparent; padding: .15rem; color: #526661; cursor: pointer; }
.workshop-edit-day .icon, .workshop-sync .icon { width: .82rem; height: .82rem; }
.workshop-sync { display: inline-flex; flex: 0 0 auto; margin: 0; color: #82958d; cursor: help; }
.workshop-sync.is-synced { color: #167356; }
.workshop-sync.is-pending { color: #8b620b; }
.workshop-sync.has-error, .workshop-error { color: #9d2828; }
.workshop-error { flex-basis: 100%; margin-top: .15rem; font-size: .75rem; overflow-wrap: anywhere; }
.workshop-week-accounting, .workshop-accounting-heading { display: grid; grid-template-columns: var(--workshop-accounting-columns); gap: .45rem; align-items: start; }
.workshop-accounting-heading > :first-child { text-align: center; }
.workshop-week-accounting label { display: block; min-width: 0; margin: 0; font-size: .8rem; }
.workshop-week-accounting .check-inline { display: flex; justify-content: center; align-items: center; min-height: 2rem; }
.workshop-week-accounting input[type=checkbox] { width: 1rem; height: 1rem; min-height: 0; margin: 0; }
.workshop-week-accounting input:not([type=checkbox]), .workshop-week-accounting textarea { width: 100%; min-width: 0; height: 2rem; min-height: 2rem; margin: 0; padding: .3rem .4rem; border-radius: .3rem; font-size: .8rem; line-height: 1.3; }
.workshop-week-accounting textarea { resize: vertical; }
.workshop-week-accounting textarea:focus { height: 5rem; }
.workshop-weekend { display: grid; grid-template-columns: repeat(auto-fit,minmax(8.5rem,12rem)); gap: .55rem; margin-top: .5rem; }
.workshop-add-dates { margin-top: .15rem; padding-top: .3rem; border-top: 1px solid #e1e8e4; font-size: .8rem; }
.workshop-add-dates summary, .workshop-add summary { cursor: pointer; font-weight: 600; }
.workshop-add-date-list { display: flex; flex-wrap: wrap; gap: 1rem; margin: .8rem 0; }
.workshop-add-date-row { display: flex; align-items: flex-end; gap: .5rem; }
.workshop-add-date-row label { display: grid; gap: .3rem; font-size: .85rem; }
.workshop-add-dates .section-actions { flex-wrap: wrap; }
.workshop-add .form-grid { margin: 1rem 0; }
.workshop-publish { border: 1px solid #a8c8b9; }
.workshop-sync-progress { padding: .8rem 1rem; margin: .75rem 0; border: 1px solid #a8c8b9; border-radius: .4rem; background: #f3f8f5; }
.workshop-sync-progress[hidden], .workshop-sync-progress [hidden] { display: none; }
.workshop-sync-progress progress { display: block; width: 100%; height: 1rem; margin: .55rem 0; accent-color: #167356; }
.workshop-sync-progress p { margin: .35rem 0; }
.workshop-sync-progress ul { margin: .5rem 0; padding-left: 1.25rem; color: #9d2828; overflow-wrap: anywhere; }
.workshop-sync-progress.is-complete { border-color: #167356; }
.workshop-publish .section-actions, .workshop-add .section-actions { flex-wrap: wrap; margin-top: 1rem; }
.workshop-summary-text { width: 100%; min-height: 28rem; font-family: inherit; line-height: 1.6; }
.workshop-edit-dialog { width: min(30rem,calc(100vw - 2rem)); padding: 1.25rem; border: 1px solid #a8c8b9; border-radius: .6rem; }
.workshop-edit-dialog::backdrop { background: rgb(0 0 0 / .35); }
.workshop-edit-dialog label { display: grid; gap: .4rem; margin: 1rem 0; }
.workshop-edit-dialog .section-actions { flex-wrap: wrap; }
[data-workshop-page][aria-busy=true] .workshop-plan { opacity: .55; }
[data-workshop-year-error][hidden] { display: none; }
@media(max-width: 640px) { .workshop-block { padding: .65rem; } .workshop-publish,.workshop-add,.workshop-summary { padding: .9rem; } }

/* Shared admin shell: all sections use the same navigation and content widths. */
html.has-admin-layout { scrollbar-gutter: stable; }
@supports not (scrollbar-gutter: stable) { html.has-admin-layout { overflow-y: scroll; } }
.admin-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 24px; align-items: start; }
.admin-content { min-width: 0; container: admin-content / inline-size; }
.admin-sidebar { min-width: 0; padding-right: 16px; border-right: 1px solid var(--line); }
.admin-section-navigation { margin: 0; padding: 0; border: 0; background: transparent; }
.admin-navigation-toggle { display: none; }
.admin-navigation-groups { display: grid; gap: 12px; }
.admin-section-nav { display: grid; gap: 4px; min-width: 0; }
.admin-section-nav + .admin-section-nav { padding-top: 12px; border-top: 1px solid var(--line); }
.admin-section-link { display: flex; align-items: center; gap: 10px; min-width: 0; min-height: 44px; padding: 10px 12px; border-radius: 7px; color: var(--muted); font-weight: 600; line-height: 1.4; text-decoration: none; }
.admin-section-link > .icon { flex: 0 0 16px; }
.admin-section-link > span { min-width: 0; overflow-wrap: anywhere; }
.admin-section-link:hover { color: var(--primary); background: var(--surface-soft); text-decoration: underline; text-underline-offset: 3px; }
.admin-section-link.is-active { color: var(--primary-dark, #0e6157); background: #e2efec; font-weight: 800; }
.admin-section-link:focus-visible, .admin-navigation-toggle:focus-visible { outline: 2px solid var(--primary); outline-offset: -2px; }
.admin-page-heading { margin-bottom: 18px; }
.admin-page-heading > span { display: block; margin-bottom: 4px; font-size: 12px; font-weight: 700; color: var(--muted); }
.admin-page-heading h1 { margin: 0; }
.admin-section-description { margin: -8px 0 18px; color: var(--muted); }
.admin-section-description p { margin: 0; }
.admin-cron-run-form { margin: 0; }
.admin-cron-panel .panel-heading { margin-bottom: 0; }
.admin-content > *, .admin-content .panel > *, .admin-content .split > * { min-width: 0; }
.admin-content .table-wrap { max-width: 100%; overflow-x: auto; }
.admin-content .inline-form, .admin-content .form-actions, .admin-content .panel-heading { flex-wrap: wrap; }
.admin-content .reset-form label { min-width: min(280px, 100%); }
.admin-content .button { min-width: 0; white-space: normal; text-align: center; }
.admin-content .individual-permission-overview > summary { flex-wrap: wrap; }
.admin-content .individual-permission-overview > summary > span:first-child { flex: 1 1 240px; min-width: 0; overflow-wrap: anywhere; }
.admin-content .individual-permission-overview > summary::after { flex-shrink: 0; }
@media screen and (min-width: 901px) {
    /* Keep links available after a native mobile toggle when JavaScript is disabled. */
    .admin-section-navigation::details-content { content-visibility: visible; }
    .admin-section-navigation:not([open]) > .admin-navigation-groups { display: grid; }
    .admin-sidebar { position: sticky; top: var(--admin-sticky-top, calc(var(--app-header-height, 68px) + 16px)); max-height: calc(100svh - var(--admin-sticky-top, calc(var(--app-header-height, 68px) + 16px)) - 16px); overflow-y: auto; overscroll-behavior-y: contain; scrollbar-width: thin; }
}
@container admin-content (max-width: 1000px) {
    .split, .addresslist-admin-layout, .consumable-types-layout, .staff-directory-create-grid, .staff-admin-layout, .system-check-integration-grid { grid-template-columns: minmax(0, 1fr); }
    .permission-hierarchy-grid, .module-access-grid, .role-permission-grid, .role-permission-grid.compact { grid-template-columns: minmax(0, 1fr); }
    .area-access-user-summary { grid-template-columns: minmax(0, 1fr) auto; }
    .area-access-user-roles, .area-access-user-summary-status { grid-column: 1; }
    .area-access-user-expand { grid-column: 2; grid-row: 1 / span 3; }
    .area-access-user-settings { grid-template-columns: minmax(0, 1fr); }
    .area-access-permission-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .form-grid.three, .form-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .employer-payroll-upload { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container admin-content (max-width: 640px) {
    .form-grid, .form-grid.two, .form-grid.three, .form-grid.four, .staff-profile-form, .employer-payroll-upload { grid-template-columns: minmax(0, 1fr); }
    .form-grid .full { grid-column: 1 / -1; }
    .panel-heading { flex-wrap: wrap; }
    .inline-form { flex-wrap: wrap; }
    .inline-form > label { min-width: 0; max-width: 100%; }
    .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media screen and (max-width: 900px) {
    .admin-layout { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .admin-sidebar { padding: 0 0 16px; border-right: 0; border-bottom: 1px solid var(--line); }
    .admin-navigation-toggle { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 12px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); color: var(--text); font-weight: 700; cursor: pointer; list-style: none; }
    .admin-navigation-toggle::-webkit-details-marker { display: none; }
    .admin-navigation-toggle > span { min-width: 0; overflow-wrap: anywhere; }
    .admin-navigation-toggle > .icon { flex-shrink: 0; }
    .admin-section-navigation[open] > .admin-navigation-toggle > .icon { transform: rotate(180deg); }
    .admin-navigation-groups { padding-top: 12px; }
}
@media print {
    .admin-layout { display: block; }
    .admin-sidebar { display: none; }
    .admin-content { container-type: normal; }
}
