/* Balanced Admin Lounge - operational UI system */

@font-face {
    font-family: "Bricolage Grotesque";
    src: url("../fonts/BricolageGrotesque-Variable.ttf") format("truetype");
    font-weight: 200 800;
    font-stretch: 75% 100%;
    font-style: normal;
    font-display: swap;
}

.task-toolbar,
.task-rollup-filters {
    align-items: end;
    gap: 8px;
    flex-wrap: wrap;
}

.task-rollup-filters .form-label {
    font-size: 12px;
}

.task-rollup-filters .form-select,
.task-rollup-filters .btn-sm {
    min-height: 30px;
}

.task-rollup-table th,
.task-rollup-table td {
    padding: 7px 10px;
    font-size: 13px;
}

.task-rollup-title {
    font-size: 13px;
    line-height: 1.2;
}

.task-rollup-description {
    margin-top: 2px;
    font-size: 12px;
    line-height: 1.25;
}

.task-rollup-comment-toggle {
    width: 28px;
    height: 28px;
    padding: 0;
}

.task-rollup-detail-row[hidden] {
    display: none;
}

.task-rollup-detail-row td {
    padding-top: 0;
    background: var(--bg-subtle);
}

.task-rollup-comments-panel {
    max-width: 860px;
    padding: 8px 10px 10px;
}

.task-period-form,
.task-toolbar-actions,
.task-inline-form,
.task-admin-form {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.task-list-card {
    margin-top: 12px;
}

.task-list-header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.task-list-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    min-width: 0;
}

.task-list-count {
    margin-left: 8px;
    color: var(--text-tertiary);
    font-family: "DM Sans", ui-sans-serif, system-ui, sans-serif;
    font-size: 12px;
    font-weight: 700;
}

.source-link,
.task-source {
    font-size: 0.78rem;
    color: var(--muted);
}

.source-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 7px;
    border: 1px solid var(--border-default);
    border-radius: 999px;
    background: var(--bg-surface);
    text-decoration: none;
}

.source-link:hover {
    color: var(--brand-green);
    border-color: var(--brand-green);
    text-decoration: none;
}

.task-section {
    border-top: 1px solid var(--border);
    padding: 12px 0;
}

.task-section:first-child {
    border-top: 0;
    padding-top: 0;
}

.task-section-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
}

.task-section-title {
    color: var(--text-primary);
    font-size: 14px;
    font-weight: 700;
}

.task-section-progress {
    color: var(--text-tertiary);
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.client-request-settings-form {
    display: flex;
    align-items: end;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0 0 8px;
    padding: 8px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    background: var(--bg-subtle);
}

.client-request-setting {
    display: grid;
    gap: 3px;
    color: var(--text-tertiary);
    font-size: 11px;
    font-weight: 750;
}

.client-request-setting .form-input {
    min-height: 30px;
}

.client-request-setting:not(.client-request-day-setting) {
    min-width: min(260px, 100%);
}

.client-request-day-setting {
    width: 96px;
}

.client-request-last-sent {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--success);
    font-size: 12px;
    font-weight: 800;
}

.task-item-list {
    overflow: hidden;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
}

.task-row {
    border-top: 1px solid var(--border-default);
    border-radius: 0;
    margin: 0;
    background: var(--bg-surface);
}

.task-row:first-child {
    border-top: 0;
}

.task-row[open] {
    background: var(--bg-surface-subtle);
}

.task-row-done {
    background: #f4f8f6;
}

.task-row-done .task-title {
    color: var(--text-tertiary);
    text-decoration: line-through;
    text-decoration-thickness: 1.5px;
}

.task-row-done .task-note,
.task-row-done .task-comment-thread {
    opacity: 0.78;
}

.task-row summary {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) minmax(460px, auto);
    gap: 10px;
    align-items: start;
    padding: 7px 10px;
    cursor: pointer;
    list-style: none;
}

.task-row summary::-webkit-details-marker {
    display: none;
}

.task-check-form {
    line-height: 0;
}

.task-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    margin-top: 3px;
    color: var(--brand-white);
    border: 1px solid var(--border-input);
    border-radius: 4px;
    background: var(--bg-surface);
    font-size: 10px;
    cursor: pointer;
    padding: 0;
}

.task-row-done .task-check {
    border-color: var(--brand-green);
    background: var(--brand-green);
}

.task-check:hover {
    border-color: var(--brand-green);
    box-shadow: 0 0 0 3px rgba(20, 148, 122, 0.12);
}

.task-main {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.task-title {
    min-width: 0;
    color: var(--text-primary);
    font-size: 14px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.task-title-line {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.task-note,
.task-comment-body {
    color: var(--text-secondary);
    font-size: 12px;
    line-height: 1.35;
    white-space: pre-wrap;
}

.task-comment-thread {
    display: grid;
    gap: 3px;
    margin-top: 1px;
}

.task-comment-inline {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    gap: 5px;
    align-items: baseline;
    color: var(--text-secondary);
    font-size: 12px;
}

.task-comment-author {
    color: var(--text-primary);
    font-weight: 750;
}

.task-comment-date {
    color: var(--text-tertiary);
    font-size: 12px;
    white-space: nowrap;
}

.task-row-meta {
    display: grid;
    grid-template-columns: 24px 32px minmax(112px, max-content) minmax(148px, max-content) minmax(126px, max-content) 18px;
    align-items: center;
    column-gap: 10px;
    justify-content: flex-end;
    font-size: 0.76rem;
}

.task-link-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: 24px;
    height: 24px;
    color: var(--text-tertiary);
    border: 1px solid var(--border-default);
    border-radius: 999px;
    background: var(--bg-surface);
    font-size: 13px;
    text-decoration: none;
}

.task-attachment-chip {
    width: auto;
    min-width: 24px;
    padding: 0 6px;
}

.task-link-chip-active {
    color: var(--brand-green);
    border-color: rgba(20, 148, 122, 0.28);
    background: rgba(20, 148, 122, 0.08);
}

.task-link-chip-empty {
    opacity: 0.7;
}

.task-link-chip:hover {
    color: var(--brand-green);
    border-color: var(--brand-green);
}

.task-quick-form {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.task-control-icon {
    color: var(--text-tertiary);
    font-size: 12px;
    line-height: 1;
}

.task-quick-control {
    width: 100%;
    min-width: 0;
    height: 25px;
    padding: 3px 24px 3px 8px;
    color: var(--text-primary);
    border: 1px solid transparent;
    border-radius: 999px;
    background-color: var(--bg-badge);
    font-size: 12px;
    font-weight: 750;
    outline: none;
}

.task-quick-control:focus {
    border-color: var(--border-input-focus);
    box-shadow: 0 0 0 3px rgba(20, 148, 122, 0.14);
}

.task-status-control {
    min-width: 112px;
    max-width: 148px;
}

.task-assignee-control {
    min-width: 126px;
    max-width: 168px;
    color: var(--text-secondary);
    background-color: transparent;
    border-color: var(--border-default);
}

.task-due-control {
    min-width: 112px;
    max-width: 132px;
    padding-right: 6px;
}

.task-due-control::-webkit-calendar-picker-indicator {
    opacity: 0.65;
}

.due-chip-clear {
    color: var(--status-success);
    background: #ecf7ef;
}

.due-chip-upcoming {
    color: #17416f;
    background: #eef5ff;
}

.due-chip-soon {
    color: #735100;
    background: #fff4d8;
}

.due-chip-overdue {
    color: var(--status-error);
    background: #fef2f2;
}

.due-chip-done,
.due-chip-none {
    color: var(--text-secondary);
    background: var(--bg-badge);
}

.task-disclosure {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    font-size: 12px;
    color: var(--text-tertiary);
}

.task-row[open] .task-disclosure {
    transform: rotate(180deg);
}

.task-edit-panel {
    border-top: 1px solid var(--border);
    padding: 10px;
}

.task-edit-top-grid {
    display: grid;
    grid-template-columns: minmax(300px, 1fr) minmax(260px, 0.72fr);
    gap: 12px;
    align-items: start;
    margin-bottom: 10px;
}

.task-related-link-form,
.task-description-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 24px;
    gap: 10px;
    align-items: end;
}

.task-related-link-form {
    grid-template-columns: minmax(0, 1fr) 24px;
}

.task-detail-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.task-detail-title {
    color: var(--text-primary);
    font-weight: 800;
}

.task-rename-control {
    position: relative;
}

.task-rename-inline {
    display: none;
    flex: 0 0 auto;
}

.task-row[open] .task-rename-inline {
    display: inline-flex;
}

.task-rename-control summary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    padding: 0;
    color: var(--text-tertiary);
    border: 1px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    list-style: none;
}

.task-rename-control summary:hover,
.task-rename-control[open] summary {
    color: var(--brand-green);
    border-color: var(--border-default);
    background: var(--bg-surface);
}

.task-rename-control summary::-webkit-details-marker {
    display: none;
}

.task-rename-form {
    position: absolute;
    z-index: 10;
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto;
    gap: 6px;
    width: min(520px, calc(100vw - 80px));
    margin-top: 4px;
    padding: 8px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    box-shadow: var(--shadow-md);
}

.task-comments-title {
    margin-bottom: 6px;
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.task-autosave-state {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-top: 6px;
    color: var(--text-tertiary);
    font-size: 12px;
    font-weight: 700;
}

.task-autosave-state i {
    opacity: 0.42;
}

.task-autosave-toast {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 1200;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    color: var(--brand-white);
    border-radius: 999px;
    background: var(--brand-green);
    box-shadow: var(--shadow-md);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 160ms ease, transform 160ms ease;
    pointer-events: none;
}

.task-autosave-toast-visible {
    opacity: 1;
    transform: translateY(0);
}

.task-edit-grid,
.task-new-form {
    display: grid;
    grid-template-columns: minmax(220px, 1.7fr) repeat(4, minmax(130px, 1fr)) auto;
    gap: 8px;
    align-items: end;
}

.task-edit-grid {
    grid-template-columns: minmax(220px, 2fr) repeat(3, minmax(140px, 1fr));
}

.task-comments {
    margin-top: 10px;
}

.task-attachments {
    margin-top: 0;
}

.task-attachment-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 4px 0;
    padding: 5px 7px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm);
    background: var(--bg-surface);
    font-size: 12px;
}

.task-attachment-row a {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
    color: var(--text-primary);
    font-weight: 750;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.task-attachment-actions {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 8px;
    align-items: stretch;
    max-width: 520px;
    margin-top: 6px;
}

.task-attachment-form {
    min-width: 0;
}

.task-attachment-drop {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: 7px 10px;
    color: var(--text-secondary);
    border: 1px dashed rgba(20, 148, 122, 0.42);
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, rgba(20, 148, 122, 0.055), rgba(20, 148, 122, 0.02));
    cursor: pointer;
}

.task-attachment-drop:hover,
.task-attachment-drop:focus-within {
    border-color: var(--brand-green);
    background: rgba(20, 148, 122, 0.075);
    box-shadow: 0 0 0 3px rgba(20, 148, 122, 0.1);
}

.task-attachment-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.task-attachment-folder-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    min-height: 42px;
    color: var(--brand-green);
    border: 1px solid rgba(20, 148, 122, 0.24);
    border-radius: var(--radius-sm);
    background: var(--bg-surface);
    font-size: 18px;
    text-decoration: none;
}

.task-attachment-folder-link:hover {
    border-color: var(--brand-green);
    background: rgba(20, 148, 122, 0.075);
}

.task-attachment-folder-link.disabled {
    color: var(--text-tertiary);
    border-color: var(--border-default);
    background: var(--bg-subtle);
}

.task-attachment-drop-title,
.task-attachment-drop-hint {
    display: block;
}

.task-attachment-drop-title {
    color: var(--text-primary);
    font-size: 12px;
    font-weight: 800;
}

.task-attachment-drop-hint {
    margin-top: 2px;
    font-size: 11px;
}

.btn-link-muted {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    color: var(--text-tertiary);
    border: 0;
    background: transparent;
    cursor: pointer;
}

.btn-link-muted:hover {
    color: var(--status-error);
}

.task-comment {
    margin: 6px 0;
    padding: 6px 8px;
    border-left: 3px solid var(--brand-green-subtle);
    background: var(--bg-surface);
}

.task-comment span {
    color: var(--muted);
    font-size: 0.78rem;
    margin-left: 6px;
}

.task-comment p {
    margin: 4px 0 0;
}

.task-comment-form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 6px;
}

.mention-toolbar {
    grid-column: 1 / -1;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.mention-chip {
    padding: 2px 7px;
    color: var(--text-secondary);
    border: 1px solid var(--border-default);
    border-radius: 999px;
    background: var(--bg-surface);
    font-size: 12px;
    font-weight: 750;
    cursor: pointer;
}

.mention-chip:hover {
    color: var(--brand-green);
    border-color: var(--brand-green);
}

.task-section-add {
    border-top: 1px solid var(--border);
    margin-top: 8px;
    padding-top: 8px;
}

.task-section-add summary {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--brand-green);
    cursor: pointer;
    font-size: 12px;
    font-weight: 800;
    list-style: none;
}

.task-section-add summary::-webkit-details-marker {
    display: none;
}

.task-section-add[open] summary {
    margin-bottom: 6px;
}

.task-new-form-section {
    grid-template-columns: minmax(190px, 1.6fr) repeat(3, minmax(112px, 1fr)) auto;
}

.template-editor {
    display: grid;
    gap: 18px;
}

.template-section {
    display: grid;
    gap: 8px;
}

.template-section-title {
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 850;
}

.template-task-row {
    display: grid;
    grid-template-columns: minmax(170px, 1.4fr) minmax(160px, 1fr) minmax(160px, 1fr) 88px auto auto;
    gap: 8px;
    align-items: center;
}

.template-task-add-row {
    grid-template-columns: minmax(170px, 1.4fr) minmax(160px, 1fr) minmax(160px, 1fr) 88px auto;
}

.btn-text-danger {
    color: var(--status-error);
    border: 0;
    background: transparent;
    font-weight: 800;
    cursor: pointer;
}

.btn-text-danger:hover {
    text-decoration: underline;
}

.task-status-open {
    background: #eef5ff;
    color: #17416f;
}

.task-status-blocked {
    background: #fff4d8;
    color: #735100;
}

.task-status-done {
    background: #e8f5e9;
    color: #1f6f35;
}

.compact-table td,
.compact-table th {
    padding: 8px 10px;
}

@media (max-width: 980px) {
    .task-edit-grid,
    .task-edit-top-grid,
    .task-related-link-form,
    .task-description-form,
    .task-attachment-form,
    .task-new-form,
    .template-task-row,
    .template-task-add-row {
        grid-template-columns: 1fr;
    }

    .task-row summary,
    .task-list-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .task-row summary {
        display: grid;
        grid-template-columns: 22px minmax(0, 1fr);
    }

    .task-row-meta {
        grid-column: 2;
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .task-status-control,
    .task-assignee-control,
    .task-due-control {
        max-width: none;
    }

    .task-section-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .task-comment-inline {
        grid-template-columns: 1fr;
        gap: 1px;
    }

    .task-rename-form {
        position: static;
        width: 100%;
        grid-template-columns: 1fr;
    }
}

@font-face {
    font-family: "DM Sans";
    src: url("../fonts/DMSans-Variable.ttf") format("truetype");
    font-weight: 100 1000;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "DM Sans";
    src: url("../fonts/DMSans-Italic-Variable.ttf") format("truetype");
    font-weight: 100 1000;
    font-style: italic;
    font-display: swap;
}

:root {
    --brand-green: #14947a;
    --brand-green-hover: #0f7d66;
    --brand-green-subtle: #e2f2ef;
    --brand-green-soft: #f1faf8;
    --brand-black: #000000;
    --brand-ink: #111312;
    --brand-white: #fefefe;

    --bg-page: #f6f8f7;
    --bg-surface: #ffffff;
    --bg-surface-subtle: #f9fbfa;
    --bg-sidebar: var(--brand-black);
    --bg-sidebar-hover: rgba(255, 255, 255, 0.08);
    --bg-sidebar-active: rgba(20, 148, 122, 0.22);
    --bg-input: #ffffff;
    --bg-row-hover: #f1f8f6;
    --bg-badge: #edf3f1;
    --bg-overlay: rgba(0, 0, 0, 0.54);

    --text-primary: #101312;
    --text-secondary: #58635f;
    --text-tertiary: #87918d;
    --text-sidebar: rgba(254, 254, 254, 0.7);
    --text-sidebar-active: #ffffff;
    --text-link: var(--brand-green);

    --accent-primary: var(--brand-green);
    --accent-primary-hover: var(--brand-green-hover);
    --accent-primary-subtle: var(--brand-green-subtle);
    --accent-text-on-primary: #ffffff;

    --border-default: #dde6e3;
    --border-strong: #bacac5;
    --border-input: #c8d5d1;
    --border-input-focus: var(--brand-green);

    --status-success: #15803d;
    --status-warning: #b45309;
    --status-error: #dc2626;
    --status-neutral: #62665d;

    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
    --shadow-md: 0 14px 34px rgba(0, 0, 0, 0.09);
    --radius-sm: 4px;
    --radius-md: 6px;
    --radius-lg: 8px;
    --sidebar-width: 224px;

    /* Compatibility aliases used by older templates. */
    --bg-card: var(--bg-surface);
    --bg-primary: var(--bg-surface);
    --border: var(--border-default);
    --border-color: var(--border-default);
    --text-muted: var(--text-secondary);
    --danger: var(--status-error);
    --success: var(--status-success);
    --primary-accent: var(--accent-primary);
}

*, *::before, *::after {
    box-sizing: border-box;
}

html {
    min-width: 320px;
}

body {
    margin: 0;
    color: var(--text-primary);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(246, 248, 247, 0) 260px),
        var(--bg-page);
    font-family: "DM Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

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

a:hover {
    text-decoration: underline;
}

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

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid rgba(20, 148, 122, 0.72);
    outline-offset: 2px;
}

.app-shell {
    display: flex;
    min-height: 100vh;
}

.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 100;
    display: flex;
    width: var(--sidebar-width);
    min-width: var(--sidebar-width);
    flex-direction: column;
    overflow-y: auto;
    background: var(--bg-sidebar);
    color: var(--text-sidebar);
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.sidebar-brand {
    display: flex;
    min-height: 58px;
    align-items: center;
    margin: 0 12px 4px;
    padding: 12px 8px 10px;
    color: var(--text-sidebar-active);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    text-decoration: none;
}

.sidebar-brand:hover {
    color: var(--text-sidebar-active);
    text-decoration: none;
}

.sidebar-brand img {
    display: block;
    width: 166px;
    max-width: 100%;
    height: auto;
}

.sidebar-nav,
.sidebar-bottom {
    display: grid;
    align-content: start;
    gap: 4px;
    grid-auto-rows: max-content;
    padding: 0 10px;
}

.sidebar-nav {
    flex: 0 0 auto;
}

.sidebar-bottom {
    margin-top: auto;
    padding-top: 8px;
    padding-bottom: 8px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.sidebar-nav a,
.sidebar-bottom a {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 36px;
    padding: 7px 12px;
    color: var(--text-sidebar);
    border-radius: var(--radius-md);
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}

.sidebar-bottom a {
    min-height: 34px;
    font-size: 14px;
}

.sidebar-nav a:hover,
.sidebar-bottom a:hover {
    background: var(--bg-sidebar-hover);
    color: var(--text-sidebar-active);
    text-decoration: none;
}

.sidebar-nav a.active,
.sidebar-bottom a.active {
    background: var(--bg-sidebar-active);
    color: var(--text-sidebar-active);
    box-shadow: inset 3px 0 0 var(--accent-primary);
}

.sidebar-nav a i,
.sidebar-bottom a i {
    width: 19px;
    flex: 0 0 19px;
    text-align: center;
    opacity: 0.78;
}

.sidebar-nav a.active i,
.sidebar-nav a:hover i,
.sidebar-bottom a.active i,
.sidebar-bottom a:hover i {
    opacity: 1;
}

.view-as-toggle {
    padding: 12px 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.view-as-label {
    margin-bottom: 8px;
    color: rgba(255, 255, 255, 0.56);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.view-as-form,
.view-as-actions {
    display: flex;
    gap: 6px;
}

.view-as-reset {
    margin-top: 6px;
}

.view-as-role-note {
    color: rgba(255, 255, 255, 0.58);
    font-size: 11px;
}

.btn-light,
.btn-outline-light,
.btn-outline-warning {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    flex: 1;
    padding: 3px 6px;
    border-radius: var(--radius-sm);
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
}

.btn-light {
    border: 1px solid #fff;
    background: #fff;
    color: var(--brand-black);
}

.btn-outline-light {
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: transparent;
    color: rgba(255, 255, 255, 0.78);
}

.btn-outline-warning {
    width: 100%;
    border: 1px solid rgba(20, 148, 122, 0.55);
    background: rgba(20, 148, 122, 0.12);
    color: #d9fff6;
}

.sidebar-user {
    padding: 14px 16px 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 14px;
}

.sidebar-user-name {
    color: var(--text-sidebar-active);
    font-weight: 700;
}

.sidebar-user-role {
    color: rgba(255, 255, 255, 0.55);
    font-size: 12px;
}

.main-content {
    --main-content-padding-x: 40px;
    --main-content-padding-y: 32px;
    flex: 1;
    min-height: 100vh;
    min-width: 0;
    margin-left: var(--sidebar-width);
    padding: var(--main-content-padding-y) var(--main-content-padding-x) 48px;
}

.preview-banner {
    margin: -32px -40px 28px;
    padding: 8px 12px;
    background: var(--brand-green);
    color: #ffffff;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
}

.inline-reset-button {
    padding: 0;
    color: inherit;
    border: 0;
    background: none;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    text-decoration: underline;
}

.read-only-banner {
    margin: calc(-1 * var(--main-content-padding-y)) calc(-1 * var(--main-content-padding-x)) 24px;
    padding: 8px 12px;
    background: var(--brand-green);
    color: #ffffff;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
}

.page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
}

.page-title {
    margin: 0;
    color: var(--text-primary);
    font-family: "Bricolage Grotesque", "DM Sans", ui-sans-serif, system-ui, sans-serif;
    font-size: 32px;
    font-weight: 700;
    font-stretch: 92%;
    line-height: 1.14;
}

.page-title .count {
    color: var(--text-secondary);
    font-weight: 500;
}

.page-subtitle {
    margin-top: 4px;
    color: var(--text-secondary);
    font-size: 14px;
}

.page-title-meta {
    display: inline-flex;
    margin-left: 8px;
    vertical-align: middle;
}

.page-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.breadcrumb {
    display: flex;
    gap: 7px;
    align-items: center;
    margin: 0 0 14px;
    padding: 0;
    color: var(--text-secondary);
    background: none;
    font-size: 14px;
    list-style: none;
}

.breadcrumb a {
    color: var(--text-secondary);
}

.breadcrumb a:hover {
    color: var(--text-primary);
}

.breadcrumb-sep {
    color: var(--text-tertiary);
}

.btn-primary-accent,
.btn-primary,
.btn-secondary,
.btn-ghost,
.btn-danger,
.btn-small,
.btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 38px;
    border-radius: var(--radius-md);
    cursor: pointer;
    font-weight: 650;
    line-height: 1.1;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.btn-primary-accent,
.btn-primary {
    padding: 9px 16px;
    border: 1px solid var(--accent-primary);
    background: var(--accent-primary);
    color: var(--accent-text-on-primary);
}

.btn-primary-accent:hover,
.btn-primary:hover {
    background: var(--accent-primary-hover);
    border-color: var(--accent-primary-hover);
    color: var(--accent-text-on-primary);
    text-decoration: none;
    box-shadow: var(--shadow-sm);
}

.btn-secondary {
    padding: 9px 14px;
    border: 1px solid var(--border-strong);
    background: var(--bg-surface);
    color: var(--text-primary);
}

.btn-secondary:hover {
    background: var(--bg-surface-subtle);
    border-color: var(--accent-primary);
    color: var(--brand-green);
    text-decoration: none;
}

.btn-ghost {
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-primary);
}

.btn-ghost:hover {
    background: rgba(20, 148, 122, 0.08);
    color: var(--text-primary);
    text-decoration: none;
}

.btn-small {
    min-height: 30px;
    padding: 5px 10px;
    border: 1px solid var(--border-default);
    background: var(--bg-surface);
    color: var(--text-primary);
    font-size: 13px;
}

.btn-danger {
    padding: 8px 12px;
    border: 1px solid rgba(220, 38, 38, 0.42);
    background: #fff;
    color: var(--status-error);
}

.btn-danger:hover {
    background: var(--status-error);
    color: #fff;
    text-decoration: none;
}

.btn-sm {
    min-height: 32px;
    padding: 6px 10px;
    font-size: 14px;
}

.btn-icon {
    width: 32px;
    min-width: 32px;
    min-height: 32px;
    padding: 0;
    border: 1px solid var(--border-default);
    background: var(--bg-surface);
    color: var(--text-secondary);
}

.btn-icon:hover {
    border-color: var(--border-strong);
    color: var(--text-primary);
    text-decoration: none;
}

.btn-icon-danger {
    color: var(--status-error);
}

.btn-icon-success {
    color: var(--status-success);
}

.retry-btn.htmx-request i {
    animation: spin 0.8s linear infinite;
}

.retry-btn.htmx-request {
    pointer-events: none;
    opacity: 0.55;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.table-wrap {
    overflow-x: auto;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    background: var(--bg-surface);
    box-shadow: var(--shadow-sm);
}

.table-wrap.sticky-table {
    max-height: calc(100vh - var(--sticky-table-offset, 260px));
    overflow: auto;
}

.client-list-table {
    --sticky-table-offset: 250px;
}

.client-memory-table {
    --sticky-table-offset: 170px;
    height: calc(100vh - var(--sticky-table-offset));
}

.client-memory-table .data-table {
    table-layout: fixed;
}

.client-memory-table .data-table thead th {
    padding: 10px 14px;
}

.client-memory-table .data-table tbody td {
    padding: 9px 14px;
}

.table-wrap.sticky-table .data-table thead th {
    position: sticky;
    top: 0;
    z-index: 3;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--bg-surface);
}

.data-table thead th {
    padding: 11px 16px;
    border-bottom: 1px solid var(--border-default);
    background: var(--bg-surface-subtle);
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 750;
    letter-spacing: 0;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.data-table tbody td {
    padding: 13px 16px;
    border-bottom: 1px solid var(--border-default);
    font-size: 15px;
    vertical-align: middle;
}

.data-table tbody tr:hover {
    background: var(--bg-row-hover);
}

.data-table tbody tr.clickable-row {
    cursor: pointer;
}

.data-table tbody tr.active {
    background: var(--accent-primary-subtle);
}

.data-table tbody tr:last-child td {
    border-bottom: 0;
}

.data-table .col-name {
    font-weight: 700;
}

.table-primary-link {
    color: inherit;
    text-decoration: none;
}

.table-primary-link:hover {
    color: var(--primary);
    text-decoration: underline;
}

.data-table .col-subtitle {
    margin-top: 2px;
    color: var(--text-secondary);
    font-size: 13px;
}

.data-table .col-muted,
.col-muted {
    color: var(--text-secondary);
    font-size: 14px;
}

.data-table .col-actions {
    text-align: right;
    white-space: nowrap;
}

.data-table .col-numeric {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.data-table .empty-row td,
.empty-row {
    color: var(--text-tertiary);
    font-size: 15px;
    text-align: center;
}

.data-table .empty-row td {
    padding: 44px 16px;
}

.data-table .child-row td:first-child {
    padding-left: 42px;
}

.child-indicator {
    margin-right: 6px;
    color: var(--text-tertiary);
}

.integration-links {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

.integration-link,
.integration-indicator {
    display: inline-flex;
    align-items: center;
    opacity: 0.78;
    transition: opacity 0.15s ease, transform 0.15s ease;
}

.integration-link:hover {
    opacity: 1;
    transform: translateY(-1px);
}

.integration-link img,
.integration-indicator img {
    display: block;
}

.tab-bar {
    display: flex;
    gap: 4px;
    margin-bottom: 24px;
    border-bottom: 1px solid var(--border-default);
    overflow-x: auto;
}

.tab-item {
    flex: 0 0 auto;
    margin-bottom: -1px;
    padding: 10px 12px;
    color: var(--text-secondary);
    border-bottom: 2px solid transparent;
    font-size: 14px;
    font-weight: 650;
    text-decoration: none;
}

.tab-item:hover {
    color: var(--text-primary);
    text-decoration: none;
}

.tab-item.active {
    color: var(--brand-green);
    border-bottom-color: var(--brand-green);
}

.tab-count {
    display: inline-flex;
    margin-left: 6px;
    padding: 1px 6px;
    color: var(--text-secondary);
    background: var(--bg-badge);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 650;
}

.toolbar,
.search-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.toolbar form,
.search-row form {
    min-width: 0;
}

.toolbar > .search-input,
.toolbar .search-input,
.search-row .search-input,
.inline-form .search-input {
    flex: 1;
    min-width: 260px;
}

.search-input {
    width: 300px;
    padding: 9px 12px 9px 36px;
    color: var(--text-primary);
    border: 1px solid var(--border-input);
    border-radius: var(--radius-md);
    background: var(--bg-input) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%2387918d' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1 1 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z'/%3E%3C/svg%3E") no-repeat 13px center;
    font-size: 15px;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.search-input:focus,
.form-input:focus,
.form-select:focus {
    border-color: var(--border-input-focus);
    box-shadow: 0 0 0 3px rgba(20, 148, 122, 0.18);
}

.search-input::placeholder,
.form-input::placeholder {
    color: var(--text-tertiary);
}

.form-group {
    margin-bottom: 20px;
}

.form-label {
    display: block;
    margin-bottom: 6px;
    color: var(--text-secondary);
    font-size: 13px;
    font-weight: 700;
}

.form-input,
.form-select {
    width: 100%;
    padding: 9px 11px;
    color: var(--text-primary);
    border: 1px solid var(--border-input);
    border-radius: var(--radius-md);
    background: var(--bg-input);
    font-size: 15px;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.form-input-sm,
.form-select-sm {
    padding: 7px 9px;
    font-size: 14px;
}

.form-hint {
    margin-top: 5px;
    color: var(--text-tertiary);
    font-size: 13px;
}

.form-check {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--text-primary);
    font-size: 14px;
    cursor: pointer;
}

.form-check input[type="checkbox"] {
    width: 15px;
    height: 15px;
    accent-color: var(--brand-green);
    cursor: pointer;
}

.section-card {
    margin-bottom: 20px;
    overflow: hidden;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    background: var(--bg-surface);
    box-shadow: var(--shadow-sm);
}

.section-card-header {
    padding: 13px 16px;
    color: var(--text-primary);
    border-bottom: 1px solid var(--border-default);
    background: var(--bg-surface-subtle);
    font-family: "Bricolage Grotesque", "DM Sans", ui-sans-serif, system-ui, sans-serif;
    font-size: 14px;
    font-weight: 750;
}

.section-card-body {
    padding: 16px;
}

.section-title {
    margin: 0 0 12px;
    font-size: 15px;
    font-weight: 750;
}

.section-label {
    margin: 12px 0 6px;
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 750;
    text-transform: uppercase;
}

.status-active,
.status-inactive,
.status-failed,
.status-warning,
.status-pending,
.status-disabled {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 700;
}

.status-active { color: var(--status-success); }
.status-inactive { color: var(--text-tertiary); }
.status-failed { color: var(--status-error); }
.status-warning { color: var(--status-warning); }
.status-pending { color: var(--status-neutral); }
.status-disabled {
    color: var(--text-tertiary);
    font-style: italic;
}

.status-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 6px;
    border-radius: 999px;
    background: var(--status-neutral);
}

.status-dot.error { background: var(--status-error); }
.status-dot.warning { background: var(--status-warning); }
.status-dot.success { background: var(--status-success); }

.close-summary-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(96px, 128px));
    justify-content: start;
    gap: 8px;
    margin-bottom: 12px;
}

.close-summary-item {
    padding: 8px 10px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    box-shadow: var(--shadow-sm);
}

.close-summary-item strong {
    display: block;
    margin-top: 2px;
    font-size: 20px;
    line-height: 1;
}

.close-summary-label {
    color: var(--text-secondary);
    font-size: 10px;
    font-weight: 750;
    text-transform: uppercase;
}

.close-summary-item.warning strong {
    color: var(--status-warning);
}

.close-summary-item.danger strong {
    color: var(--status-error);
}

.close-reliability-strip {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 12px;
    padding: 8px 10px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    box-shadow: var(--shadow-sm);
}

.close-reliability-strip-label {
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 850;
    text-transform: uppercase;
}

.close-reliability-chip {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    max-width: min(420px, 100%);
    padding: 4px 8px;
    color: var(--text-primary);
    border: 1px solid var(--border-default);
    border-radius: 999px;
    background: var(--bg-subtle);
    font-size: 12px;
    text-decoration: none;
}

.close-reliability-chip span {
    min-width: 0;
    color: var(--text-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.close-reliability-chip.error {
    border-color: rgba(220, 38, 38, 0.22);
    background: #fff5f5;
}

.close-reliability-chip.warning {
    border-color: rgba(217, 119, 6, 0.24);
    background: #fff8e6;
}

.close-reliability-ok {
    color: var(--text-secondary);
    font-size: 13px;
}

.close-dashboard-table {
    --sticky-table-offset: 245px;
}

.close-data-notice {
    margin: 12px 0;
    padding: 10px 12px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    color: var(--text-secondary);
    background: var(--bg-subtle);
    font-size: 13px;
}

.close-dashboard-table .data-table tbody td {
    padding: 9px 12px;
    font-size: 13px;
    vertical-align: top;
}

.close-dashboard-table .data-table thead th {
    padding: 8px 12px;
    font-size: 11px;
}

.table-sort-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: inherit;
    text-decoration: none;
}

.table-sort-link:hover,
.table-sort-link.active {
    color: var(--brand-green);
}

.table-sort-link i {
    font-size: 9px;
}

.progress-pill,
.overdue-pill,
.status-chip,
.client-needed-chip,
.source-health {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 750;
    white-space: nowrap;
}

.progress-pill.complete {
    color: var(--status-success);
    background: #ecf7ef;
}

.progress-pill.open {
    color: var(--status-warning);
    background: #fff7ed;
}

.progress-pill.empty,
.progress-pill.no-data,
.status-chip {
    color: var(--text-secondary);
    background: var(--bg-badge);
}

.progress-pill.no-data {
    min-width: 62px;
    font-weight: 650;
}

.overdue-pill {
    color: var(--status-error);
    background: #fef2f2;
}

.client-needed-chip {
    margin-left: 5px;
    color: var(--status-warning);
    background: #fff7ed;
}

.source-health.success {
    color: var(--status-success);
    background: #ecf7ef;
}

.source-health.warning {
    color: var(--status-warning);
    background: #fff7ed;
}

.source-health.error {
    color: var(--status-error);
    background: #fef2f2;
}

.source-health.muted {
    color: var(--text-secondary);
    background: var(--bg-badge);
}

.close-task-details {
    display: inline-block;
    margin-right: 8px;
    text-align: left;
}

.close-task-details summary {
    color: var(--text-link);
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
    list-style: none;
}

.close-task-details summary::-webkit-details-marker {
    display: none;
}

.task-detail-panel {
    position: absolute;
    right: 32px;
    z-index: 20;
    display: grid;
    gap: 10px;
    width: min(460px, calc(100vw - 80px));
    margin-top: 8px;
    padding: 12px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    background: var(--bg-surface);
    box-shadow: var(--shadow-md);
}

.task-detail-heading {
    margin-bottom: 5px;
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 750;
    text-transform: uppercase;
}

.task-detail-item {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 4px 0;
    color: var(--text-primary);
    border-top: 1px solid var(--border-default);
    font-size: 13px;
}

.task-detail-item.overdue {
    color: var(--status-error);
}

.task-detail-item small,
.task-detail-empty {
    color: var(--text-tertiary);
    font-size: 12px;
    white-space: nowrap;
}

.workflows-page {
    display: grid;
    gap: 20px;
}

.workflow-create-card .section-card-body {
    padding: 14px 16px 16px;
}

.workflow-create-form {
    display: grid;
    grid-template-columns: minmax(260px, 1.5fr) minmax(230px, 1.2fr) minmax(220px, 1.2fr) minmax(120px, 0.7fr) minmax(140px, 0.8fr) auto;
    gap: 12px;
    align-items: end;
}

.workflow-create-form .form-group,
.workflow-edit-form .form-group {
    margin-bottom: 0;
}

.workflow-create-button {
    min-width: 92px;
}

.workflow-list-card .section-card-body {
    padding: 0;
}

.workflow-table thead th {
    background: #f4f8f7;
}

.workflow-table tbody td {
    padding-top: 14px;
    padding-bottom: 14px;
}

.workflow-table .col-actions {
    width: 260px;
}

.workflow-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    flex-wrap: wrap;
}

.workflow-run-button .workflow-spinner {
    display: none;
}

.workflow-run-button.is-running .workflow-run-icon {
    display: none;
}

.dashboards-page {
    display: grid;
    gap: 16px;
}

.dashboard-tile-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.dashboard-tile-full {
    grid-column: 1 / -1;
}

.dashboard-tile-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.dashboard-parameter {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    color: var(--muted);
    font-size: 0.85rem;
}

.dashboard-table-wrap {
    max-height: 680px;
    overflow: auto;
}

.dashboard-table tbody tr.dashboard-row-subtotal td,
.dashboard-table tbody tr.dashboard-row-total td {
    font-weight: 700;
    background: var(--bg-subtle);
}

.dashboard-layout-input {
    min-height: 360px;
    font-size: 0.8rem;
}

.dashboard-reference .data-table td {
    word-break: break-word;
}

.dashboard-toolbar-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.dashboard-sheet-scan-form {
    width: 100%;
}

.dashboard-sheet-scan-fields {
    display: grid;
    grid-template-columns: minmax(180px, 0.8fr) minmax(220px, 1fr) minmax(260px, 1.4fr) auto;
    gap: 12px;
    align-items: end;
}

.dashboard-sheet-scan-results {
    margin-top: 14px;
}

.dashboard-sheet-import {
    border-top: 1px solid var(--border);
    padding-top: 14px;
}

.dashboard-sheet-import-header,
.dashboard-sheet-import-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.dashboard-sheet-import-title {
    color: var(--text-primary);
    font-size: 0.95rem;
    font-weight: 700;
}

.dashboard-sheet-import-table td {
    vertical-align: top;
}

.dashboard-sheet-import-table th:first-child,
.dashboard-sheet-import-table td:first-child {
    width: 70px;
}

.dashboard-sheet-import-badge {
    display: inline-flex;
    margin-left: 8px;
    border-radius: 999px;
    background: #edf7ed;
    color: #1f6b2a;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 2px 7px;
}

.dashboard-sheet-preview {
    border-collapse: collapse;
    color: var(--muted);
    font-size: 0.72rem;
}

.dashboard-sheet-preview td {
    max-width: 120px;
    border: 1px solid var(--border);
    padding: 3px 5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-builder-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.75fr);
    gap: 16px;
    align-items: start;
}

.dashboard-builder-summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: 12px;
    list-style: none;
}

.dashboard-builder-summary::-webkit-details-marker {
    display: none;
}

.dashboard-builder-summary::after {
    color: var(--muted);
    content: "Show";
    font-size: 0.78rem;
    font-weight: 600;
    margin-left: auto;
}

.dashboard-builder[open] .dashboard-builder-summary::after {
    content: "Hide";
}

.dashboard-report-form .form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.dashboard-report-form .dashboard-pivot-fields .form-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.dashboard-report-form .checkbox-line {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 28px;
    color: var(--muted);
    font-size: 0.85rem;
}

.dashboard-advanced-json {
    margin-top: 16px;
    border-top: 1px solid var(--border);
    padding-top: 12px;
}

.dashboard-advanced-json summary {
    cursor: pointer;
    color: var(--muted);
    font-size: 0.85rem;
}

.dashboard-workbook {
    border: 1px solid var(--border);
    background: #fff;
}

.dashboard-workbook-tabs {
    display: flex;
    gap: 2px;
    overflow-x: auto;
    border-bottom: 1px solid var(--border);
    background: var(--bg-subtle);
    padding: 6px 8px 0;
}

.dashboard-workbook-tab {
    appearance: none;
    border: 1px solid transparent;
    border-bottom: 0;
    border-radius: 6px 6px 0 0;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    font: inherit;
    font-size: 0.85rem;
    padding: 8px 12px;
    white-space: nowrap;
}

.dashboard-workbook-tab.is-active {
    border-color: var(--border);
    background: #fff;
    color: var(--text-primary);
    font-weight: 600;
}

.dashboard-workbook-panel {
    display: none;
}

.dashboard-workbook-panel.is-active {
    display: block;
}

.dashboard-workbook-sheet {
    padding: 14px;
}

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

.dashboard-workbook-title {
    font-size: 1rem;
    font-weight: 700;
}

.dashboard-workbook-status {
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 4px 9px;
}

.dashboard-workbook-status.status-success {
    background: #edf7ed;
    color: #1f6b2a;
}

.dashboard-workbook-status.status-warning {
    background: #fff8df;
    color: #7a5a00;
}

.dashboard-workbook-status.status-danger {
    background: #fdecec;
    color: #9f1d1d;
}

.dashboard-workbook-message {
    background: #fff8df;
    border: 1px solid #f1df99;
    color: #6b5200;
    font-size: 0.84rem;
    margin: 0 0 12px;
    padding: 8px 10px;
}

.dashboard-workbook-controls {
    align-items: end;
    background: var(--bg-subtle);
    border: 1px solid var(--border);
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 12px;
    padding: 10px 12px;
}

.dashboard-workbook-control {
    color: var(--muted);
    display: grid;
    font-size: 0.78rem;
    font-weight: 600;
    gap: 5px;
    min-width: 240px;
}

.dashboard-workbook-table-wrap {
    max-height: 720px;
    overflow: auto;
    border: 1px solid var(--border);
    background: #fff;
}

.dashboard-workbook-table {
    width: max-content;
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.82rem;
}

.dashboard-workbook-table th,
.dashboard-workbook-table td {
    min-width: 118px;
    max-width: 240px;
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    padding: 7px 9px;
    text-align: right;
    white-space: nowrap;
}

.dashboard-workbook-table th:first-child,
.dashboard-workbook-table td:first-child {
    left: 0;
    min-width: 190px;
    max-width: 320px;
    position: sticky;
    text-align: left;
    z-index: 1;
}

.dashboard-workbook-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f8faf8;
    color: var(--muted);
    font-weight: 700;
}

.dashboard-workbook-table th:first-child {
    z-index: 3;
}

.dashboard-workbook-table td:first-child {
    background: #fff;
    font-weight: 600;
}

.dashboard-workbook-table-financial_grid {
    font-variant-numeric: tabular-nums;
}

.dashboard-workbook-table-financial_grid th,
.dashboard-workbook-table-financial_grid td {
    min-width: 104px;
    max-width: 210px;
    padding: 6px 10px;
}

.dashboard-workbook-table-financial_grid th:first-child,
.dashboard-workbook-table-financial_grid td:first-child {
    min-width: 240px;
    max-width: 380px;
}

.dashboard-workbook-table-financial_grid th {
    background: #f5f7f5;
    border-bottom-color: #d8ded8;
    color: var(--text-primary);
}

.dashboard-workbook-table-financial_grid td {
    color: #1f2933;
}

.dashboard-workbook-table-financial_grid .dashboard-cell-amount {
    text-align: right;
}

.dashboard-workbook-table-financial_grid .dashboard-cell-muted {
    color: #9aa3a1;
}

.dashboard-workbook-table-financial_grid .dashboard-cell-label {
    color: #1b2420;
}

.dashboard-workbook-table-financial_grid tbody tr.dashboard-row-title td {
    background: #fff;
    border-bottom-color: transparent;
    color: var(--text-primary);
    font-size: 0.95rem;
    font-weight: 700;
    padding-bottom: 9px;
    padding-top: 11px;
}

.dashboard-workbook-table-financial_grid tbody tr.dashboard-row-control td {
    background: #fbfcfb;
    color: var(--muted);
    font-size: 0.78rem;
}

.dashboard-workbook-table-financial_grid tbody tr.dashboard-row-section td {
    background: #f7f8f7;
    border-top: 1px solid #d8ded8;
    color: var(--text-primary);
    font-weight: 700;
}

.dashboard-workbook-table-financial_grid tbody tr.dashboard-row-spacer td {
    background: #fff;
    border-bottom-color: transparent;
    height: 22px;
    padding-bottom: 0;
    padding-top: 0;
}

.dashboard-workbook-table tbody tr.dashboard-row-subtotal td,
.dashboard-workbook-table tbody tr.dashboard-row-total td {
    background: var(--bg-subtle);
    font-weight: 700;
}

.dashboard-workbook-table-financial_grid tbody tr.dashboard-row-subtotal td {
    border-top: 1px solid #d8ded8;
}

.dashboard-workbook-table-financial_grid tbody tr.dashboard-row-total td {
    background: #eef4ee;
    border-bottom: 2px solid #b8c7b8;
    border-top: 2px solid #b8c7b8;
}

@media (max-width: 900px) {
    .dashboard-tile-grid {
        grid-template-columns: 1fr;
    }

    .dashboard-builder-grid,
    .dashboard-sheet-scan-fields,
    .dashboard-report-form .form-row,
    .dashboard-report-form .dashboard-pivot-fields .form-row {
        grid-template-columns: 1fr;
    }
}

.workflow-run-button.is-running .workflow-spinner {
    display: inline-block;
}

.workflow-spinner {
    width: 13px;
    height: 13px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 999px;
    animation: workflow-spin 0.72s linear infinite;
}

.workflow-error,
.workflow-last-run {
    margin-top: 4px;
    color: var(--text-secondary);
    font-size: 12px;
    line-height: 1.35;
}

.workflow-error {
    max-width: 280px;
    color: var(--status-error);
}

.workflow-edit-row td {
    padding: 0 16px 16px;
    background: var(--bg-surface-subtle);
}

.workflow-edit-form {
    display: grid;
    grid-template-columns: minmax(160px, 1fr) minmax(120px, 0.65fr) minmax(130px, 0.7fr) minmax(220px, 1.35fr) auto;
    gap: 10px;
    align-items: end;
    padding: 12px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
}

.workflow-edit-url {
    min-width: 0;
}

.workflow-edit-actions {
    display: flex;
    gap: 6px;
    align-items: center;
}

@keyframes workflow-spin {
    to { transform: rotate(360deg); }
}

.highlight-badge,
.muted-badge,
.source-chip {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
}

.highlight-badge {
    padding: 3px 9px;
    background: var(--accent-primary);
    color: var(--accent-text-on-primary);
}

.muted-badge {
    padding: 3px 9px;
    background: var(--bg-badge);
    color: var(--text-secondary);
}

.source-chip {
    padding: 5px 9px;
    border: 1px solid var(--border-default);
    background: var(--bg-surface);
    color: var(--text-secondary);
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-bottom: 20px;
}

.metric-card {
    padding: 14px 16px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    background: var(--bg-surface);
    box-shadow: var(--shadow-sm);
}

.metric-label {
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 750;
    text-transform: uppercase;
}

.metric-value {
    margin-top: 3px;
    font-family: "Bricolage Grotesque", "DM Sans", ui-sans-serif, system-ui, sans-serif;
    font-size: 22px;
    font-weight: 720;
    font-variant-numeric: tabular-nums;
}

.detail-grid {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 9px 16px;
    font-size: 15px;
}

.detail-label {
    color: var(--text-secondary);
    font-size: 13px;
    font-weight: 700;
}

.detail-value {
    min-width: 0;
    color: var(--text-primary);
    overflow-wrap: anywhere;
}

.two-col {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.content-grid {
    display: grid;
    grid-template-columns: minmax(280px, 34%) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.flash-message {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
    padding: 12px 14px;
    border-radius: var(--radius-md);
    font-size: 14px;
    font-weight: 600;
}

.flash-message.success {
    background: #ecfdf3;
    border: 1px solid #bbf7d0;
    color: #166534;
}

.flash-message.danger,
.flash-message.error {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}

.flash-message.warning {
    background: #fffbeb;
    border: 1px solid #fde68a;
    color: #92400e;
}

.flash-message.info {
    background: var(--bg-surface);
    border: 1px solid var(--border-default);
    color: var(--text-primary);
}

.flash-close {
    padding: 0 4px;
    color: inherit;
    border: 0;
    background: none;
    cursor: pointer;
    font-size: 20px;
    opacity: 0.62;
}

.flash-close:hover {
    opacity: 1;
}

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

.step-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-default);
    font-size: 14px;
}

.step-item:last-child {
    border-bottom: 0;
}

.step-name {
    color: var(--text-primary);
    font-weight: 600;
}

.step-error {
    margin-top: 2px;
    color: var(--status-error);
    font-size: 13px;
}

.step-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.filter-bar {
    display: flex;
    gap: 12px;
    align-items: flex-end;
    flex-wrap: wrap;
    margin-bottom: 16px;
    padding: 14px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    background: var(--bg-surface);
    box-shadow: var(--shadow-sm);
}

.filter-bar .inline-form {
    width: 100%;
}

.filter-group {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.filter-group label {
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 750;
}

.filter-actions {
    align-self: flex-end;
}

.pagination {
    display: flex;
    justify-content: center;
    gap: 4px;
    margin: 24px 0 0;
    padding: 0;
    list-style: none;
}

.pagination a,
.pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    padding: 0 10px;
    color: var(--text-primary);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    font-size: 14px;
    font-weight: 650;
    text-decoration: none;
}

.pagination a:hover {
    border-color: var(--border-strong);
    background: var(--bg-row-hover);
    text-decoration: none;
}

.pagination .active span {
    background: var(--text-primary);
    color: var(--bg-surface);
    border-color: var(--text-primary);
}

.pagination .disabled span {
    color: var(--text-tertiary);
}

.empty-state {
    max-width: 500px;
    margin: 0 auto;
    padding: 60px 20px;
    text-align: center;
}

.empty-state-title {
    margin-bottom: 8px;
    color: var(--text-primary);
    font-size: 21px;
    font-weight: 750;
}

.empty-state-desc {
    margin-bottom: 20px;
    color: var(--text-secondary);
    font-size: 15px;
}

.login-container {
    display: flex;
    min-height: 100vh;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: radial-gradient(circle at top, rgba(20, 148, 122, 0.16), transparent 330px), var(--bg-page);
}

.login-box {
    width: 100%;
    max-width: 390px;
    padding: 34px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    background: var(--bg-surface);
    box-shadow: var(--shadow-md);
}

.login-brand {
    display: flex;
    justify-content: center;
    margin-bottom: 28px;
}

.login-brand img {
    display: block;
    width: 198px;
    max-width: 80%;
    height: auto;
}

.btn-google {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 22px;
    padding: 13px 16px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    background: #fff;
    color: #3c4043;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    box-shadow: var(--shadow-sm);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.btn-google:hover {
    border-color: var(--brand-green);
    text-decoration: none;
    box-shadow: 0 4px 14px rgba(20, 148, 122, 0.16);
}

.login-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 22px;
    color: var(--text-secondary);
    font-size: 13px;
}

.login-divider::before,
.login-divider::after {
    content: "";
    height: 1px;
    flex: 1;
    background: var(--border-default);
}

.inline-form {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

.inline-form > * {
    min-width: 0;
}

.mono,
code {
    font-family: "SF Mono", "Fira Code", "Fira Mono", Menlo, Consolas, monospace;
}

.mono {
    color: var(--text-secondary);
    font-size: 14px;
}

code {
    color: #14342d;
    background: rgba(20, 148, 122, 0.08);
    border-radius: var(--radius-sm);
    padding: 1px 4px;
    font-size: 13px;
}

.code-panel,
.message-panel {
    margin-bottom: 24px;
    padding: 16px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    background: var(--bg-surface);
}

.code-panel pre,
.message-panel pre {
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
}

.traceback-panel {
    margin-bottom: 24px;
    padding: 16px;
    overflow-x: auto;
    border-radius: var(--radius-lg);
    background: #111312;
}

.traceback-panel pre {
    margin: 0;
    color: #eceee5;
    white-space: pre-wrap;
    word-break: break-word;
    font: 12px/1.5 "SF Mono", Monaco, "Cascadia Code", monospace;
}

.modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: var(--bg-overlay);
}

.modal-panel {
    width: min(600px, 90vw);
    max-height: 90vh;
    overflow: auto;
    padding: 24px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    background: var(--bg-surface);
    box-shadow: var(--shadow-md);
}

.client-knowledge-actions,
.ai-feedback-modal-header,
.ai-feedback-rating {
    display: flex;
    align-items: center;
    gap: 8px;
}

.client-knowledge-actions {
    justify-content: flex-end;
}

.ai-feedback-modal-header {
    justify-content: space-between;
    margin-bottom: 16px;
}

.ai-feedback-rating {
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.ai-feedback-rating-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 36px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    background: var(--bg-surface-subtle);
    color: var(--text-primary);
    padding: 0 12px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.ai-feedback-rating-btn:hover,
.ai-feedback-rating-btn.active {
    border-color: var(--brand-green);
    background: rgba(20, 148, 122, 0.12);
}

.ai-feedback-error {
    margin: -8px 0 12px;
}

.text-muted { color: var(--text-secondary) !important; }
.text-tertiary { color: var(--text-tertiary) !important; }
.text-error { color: var(--status-error) !important; }
.text-success { color: var(--status-success) !important; }
.font-semibold { font-weight: 700; }
.font-normal { font-weight: 400; }
.text-sm { font-size: 14px; }
.text-xs { font-size: 12px; }
.mt-0 { margin-top: 0; }
.mt-1 { margin-top: 8px; }
.mt-2 { margin-top: 16px; }
.mt-3 { margin-top: 24px; }
.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: 8px; }
.mb-2 { margin-bottom: 16px; }
.mb-3 { margin-bottom: 24px; }
.w-100 { width: 100%; }
.d-block { display: block; }
.d-flex { display: flex; }
.gap-1 { gap: 6px; }
.gap-2 { gap: 12px; }
.gap-3 { gap: 16px; }
.items-center,
.align-items-center { align-items: center; }
.align-items-end { align-items: flex-end; }
.justify-between { justify-content: space-between; }
.justify-end { justify-content: flex-end; }
.flex-1 { flex: 1; }
.flex-wrap { flex-wrap: wrap; }
.d-inline { display: inline; }
.d-inline-flex { display: inline-flex; }
.nowrap { white-space: nowrap; }
.overflow-anywhere { overflow-wrap: anywhere; }
.is-muted { opacity: 0.52; }
.min-w-120 { min-width: 120px; }
.min-w-140 { min-width: 140px; }
.min-w-160 { min-width: 160px; }
.min-w-180 { min-width: 180px; }
.min-w-220 { min-width: 220px; }
.w-150 { width: 150px; }
.w-220 { width: 220px; }
.table-col-count { text-align: right; font-weight: 700; }
.table-message-preview {
    max-width: 400px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.knowledge-summary {
    white-space: pre-wrap;
    line-height: 1.58;
    font-size: 14px;
}

.htmx-indicator {
    display: none;
}

.htmx-request .htmx-indicator {
    display: inline-block;
}

.click-to-edit {
    position: relative;
    margin: -3px -5px;
    padding: 3px 5px;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background 0.15s ease;
}

.click-to-edit:hover:not(.editing) {
    background: rgba(25, 26, 22, 0.05);
}

.click-to-edit .click-to-edit-display {
    display: inline;
    min-height: 1.2em;
}

.click-to-edit .click-to-edit-display:empty::after {
    content: "-";
    opacity: 0.35;
}

.click-to-edit .click-to-edit-icon {
    margin-left: 4px;
    color: var(--text-secondary);
    font-size: 0.75em;
    opacity: 0;
    transition: opacity 0.15s ease;
}

.click-to-edit:hover:not(.editing) .click-to-edit-icon {
    opacity: 0.85;
}

.click-to-edit.editing .click-to-edit-icon {
    display: none;
}

.click-to-edit-save {
    margin-left: 6px;
    padding: 4px 9px;
    color: var(--accent-text-on-primary);
    border: 0;
    border-radius: var(--radius-sm);
    background: var(--accent-primary);
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    vertical-align: middle;
}

.click-to-edit-save:hover {
    background: var(--accent-primary-hover);
}

.btn-connect {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 0;
    border-radius: var(--radius-md);
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    transition: opacity 0.15s ease, transform 0.15s ease;
    line-height: 1;
    white-space: nowrap;
}

.btn-connect:hover {
    opacity: 0.88;
    transform: translateY(-1px);
    text-decoration: none;
}

.btn-connect svg {
    flex-shrink: 0;
}

.btn-connect-square { background: #000000; color: #ffffff; }
.btn-connect-qbo { background: #2ca01c; color: #ffffff; }
.btn-connect-stripe { background: #635bff; color: #ffffff; }
.btn-connect-zoho { background: #226db4; color: #ffffff; }
.btn-connect-upwork { background: #14a800; color: #ffffff; }
.btn-connect-square:hover,
.btn-connect-qbo:hover,
.btn-connect-stripe:hover,
.btn-connect-zoho:hover,
.btn-connect-upwork:hover { color: #ffffff; }

@media (max-width: 980px) {
    :root {
        --sidebar-width: 204px;
    }

    .main-content {
        padding: 28px 28px 40px;
    }

    .preview-banner {
        margin: -28px -28px 24px;
    }

    .two-col,
    .content-grid {
        grid-template-columns: 1fr;
    }

    .workflow-create-form,
    .workflow-edit-form {
        grid-template-columns: 1fr 1fr;
    }

    .workflow-create-button,
    .workflow-edit-actions {
        align-self: stretch;
    }
}

@media (max-width: 768px) {
    .sidebar {
        display: none;
    }

    .main-content {
        --main-content-padding-x: 20px;
        --main-content-padding-y: 20px;
        margin-left: 0;
    }

    .preview-banner {
        margin: -20px -20px 20px;
    }

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

    .page-title {
        font-size: 28px;
    }

    .close-summary-grid,
    .close-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .close-period-select {
        width: 100%;
        flex-basis: auto;
    }

    .attention-list li,
    .reliability-row {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    .page-actions,
    .toolbar,
    .search-row,
    .inline-form {
        align-items: stretch;
        flex-direction: column;
    }

    .section-card-body > form.d-flex.align-items-end {
        align-items: stretch;
        flex-direction: column;
    }

    .search-input,
    .form-input,
    .form-select,
    .btn-primary-accent,
    .btn-primary,
    .btn-secondary {
        width: 100%;
    }

    .filter-actions {
        align-self: stretch;
    }

    .detail-grid {
        grid-template-columns: 1fr;
    }

    .table-wrap {
        margin-right: -20px;
        margin-left: -20px;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }

    .data-table {
        display: block;
        overflow-x: auto;
        min-width: 680px;
    }

    .workflow-create-form,
    .workflow-edit-form {
        grid-template-columns: 1fr;
    }

    .workflow-actions,
    .workflow-edit-actions {
        justify-content: stretch;
    }

    .login-box {
        padding: 28px 22px;
    }
}
