/* © 2025 Mark Kats. Все права защищены. Копирование и переработка запрещены. */

@import url('./components/buttons.css');
@import url('./components/checkbox.css');
@import url('./components/forms.css');
@import url('./components/filter-toolbar.css');
@import url('./components/empty-states.css');
@import url('./components/module-layout.css');
@import url('./components/module-settings.css');
@import url('./components/controller-table.css');
@import url('./components/module-finance-register.css');
@import url('./components/module-finance-settings.css');

/* ── Design tokens ───────────────────────────────────────────────────────── */

:root {
	--pb-page-bg: #101010;
	--pb-shell-bg: #171717;
	--pb-panel-bg: #202020;
	--pb-panel-bg-strong: #1c1c1c;
	--pb-table-bg: #202020;
	--pb-row: #242424;
	--pb-row-alt: #292929;
	--pb-row-hover: #303336;
	--pb-row-selected-bg: #303336;
	--pb-column-selected-bg: #2e3134;
	--pb-header-selected-bg: #3e4348;
	--pb-cell-editing-bg: #3b3b3b;
	--pb-cell-empty-text: #8d8d8d;
	--pb-header-bg: #303437;
	--pb-header-bg-strong: #383c40;
	--pb-column-group-header-bg: #2c3033;
	--pb-sticky-bg: #292929;
	--pb-sticky-bg-selected: #353535;
	--pb-group-row-bg: #202020;
	--pb-border-strong: #474b50;
	--pb-border-soft: #43474c;
	--pb-border-grid: #35393e;
	--pb-header-border-v: #4d5359;
	--pb-text: #eaecf0;
	--pb-text-dim: #c0c2c5;
	--pb-text-soft: #96999d;
	--pb-text-muted: #7e8185;
	--pb-module-brand-title-text: #fff;
	--pb-module-brand-subtitle-text: rgba(214, 201, 170, 0.72);
	--pb-module-brand-icon-bg: rgba(199, 176, 122, 0.16);
	--pb-module-brand-icon-border: rgba(199, 176, 122, 0.45);
	--pb-module-brand-icon-text: #ffffff;
	--pb-module-brand-icon-bg-hover: rgba(199, 176, 122, 0.24);
	--pb-module-brand-icon-border-hover: rgba(199, 176, 122, 0.58);
	--pb-module-brand-button-bg: var(--pb-surface-2);
	--pb-module-brand-button-border: var(--pb-border-soft);
	--pb-module-brand-button-text: var(--pb-text);
	--pb-module-brand-button-bg-hover: var(--pb-surface-3);
	--pb-module-brand-button-border-hover: var(--pb-border-strong);
	--pb-module-brand-success-bg: rgba(58, 178, 99, 0.22);
	--pb-module-brand-success-border: rgba(58, 178, 99, 0.5);
	--pb-module-brand-success-text: #d9f4df;
	--pb-module-brand-success-bg-hover: rgba(58, 178, 99, 0.3);
	--pb-module-brand-success-border-hover: rgba(58, 178, 99, 0.66);
	--pb-module-brand-success-text-hover: #ecfff1;
	--pb-accent: #c7b07a;
	--pb-accent-strong: #dcc796;
	--pb-accent-soft: rgba(199, 176, 122, 0.18);
	--pb-success: #78b588;
	--pb-success-border: #335041;
	--pb-warning: #d0a063;
	--pb-warning-border: #5a4430;
	--pb-star-active-color: #facc15;
	--pb-view-origin-template: #d0a063;
	--pb-view-origin-user: #2c65d2;
	--pb-view-mode-shared: #2c65d2;
	--pb-view-mode-locked: #d81e00;
	--pb-view-mode-private: #009555;
	--pb-danger: #c77d86;
	--pb-danger-bg: #382228;
	--pb-danger-bg-hover: #472a31;
	--pb-danger-bg-active: #2f1d22;
	--pb-danger-border: #663f47;
	--pb-danger-border-hover: #7a4b55;
	--pb-danger-text: #f2c7cd;
	--pb-danger-text-hover: #f7d9dd;
	--pb-shadow: 0 18px 42px rgba(0, 0, 0, 0.46);
	--pb-shadow-soft: 0 10px 26px rgba(0, 0, 0, 0.34);
	--pb-panel-chrome-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.018);
	--pi-card-bg: linear-gradient(180deg, rgba(10, 12, 18, 0.5), rgba(10, 12, 18, 0.34)), linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.04));
	--pi-card-bg-hover: linear-gradient(180deg, rgba(10, 12, 18, 0.42), rgba(10, 12, 18, 0.28)), linear-gradient(180deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.06));
	--pi-card-border: rgba(255, 255, 255, 0.14);
	--pi-card-border-hover: rgba(255, 255, 255, 0.24);
	--pi-card-shadow: none;
	--pi-card-shadow-hover: none;
	--pb-overlay-bg: rgba(27, 27, 27, 0.985);
	--pb-tooltip-bg: #1e1e1e;
	--pb-scrollbar-thumb: #53585e;
	--pb-scrollbar-thumb-hover: #656b72;
	--pb-scrollbar-track: #202020;
	--pb-border: var(--pb-border-strong);
	--pb-border-v: var(--pb-border-grid);
	--pb-surface: #1b1b1b;
	--pb-surface-2: #252525;
	--pb-surface-3: #3a3b3d;
	--pb-surface-raised: #252525;
	--pb-surface-strong: var(--pb-panel-bg-strong);
	--pb-active-border: var(--pb-accent);
	--pb-button-active-border: #8a7a55;
	--pb-tab-active-bg: #3a3832;
	--pb-tab-active-border: #8a7a55;
	--pb-tab-active-text: #f2e8d2;
	--pb-tab-custom-active-mix: #3a3832;
	--pb-external-tab-bg: #252a22;
	--pb-external-tab-border: #47493d;
	--pb-external-tab-text: #d9d1bd;
	--pb-external-tab-bg-hover: #2d3428;
	--pb-external-tab-border-hover: #666b57;
	--pb-external-tab-text-hover: #eee6d1;
	--pb-external-tab-bg-active: #262d22;
	--pb-external-tab-border-active: #5a5f4d;
	--pb-external-tab-text-active: #e3dbc6;
	--pb-script-btn-bg: #232a21;
	--pb-script-btn-border: #495544;
	--pb-script-btn-text: #d6e4d2;
	--pb-script-btn-bg-hover: #2b3328;
	--pb-script-btn-border-hover: #5c6957;
	--pb-script-btn-text-hover: #e2ecdf;
	--pb-primary-bg-hover: #403e37;
	--pb-primary-border-hover: #8a7a55;
	--pb-primary-text-hover: #f2e8d2;
	--pb-primary-bg-active: #34322d;
	--pb-primary-border-active: #77694a;
	--pb-primary-text-active: #f2e8d2;
	--pb-toggle-bg: #2d2d2d;
	--pb-toggle-border: #4a4a4a;
	--pb-toggle-bg-hover: #3a3832;
	--pb-toggle-border-hover: #8a7a55;
	--pb-chip-link-bg: #2c353f;
	--pb-chip-link-border: #46525f;
	--pb-panel-border: #555555;
	--pb-panel-head-bg: #262626;
	--pb-panel-footer-bg: #242424;
	--pb-filter-bg: #243c2d;
	--pb-filter-border: #4f725a;
	--pb-filter-text: #dcefe2;
	--pb-filter-text-dim: #8f9f8d;
	--pb-filter-text-bright: #d8eadc;
	--pb-filter-cell: #1d3326;
	--pb-group-bg: #382c44;
	--pb-group-border: #6f5a81;
	--pb-group-text: #e9def4;
	--pb-group-text-dim: #978ca2;
	--pb-group-text-bright: #e8dbf4;
	--pb-group-cell: #2c2237;
	--pb-sort-bg: #3c3023;
	--pb-sort-border: #7a5f45;
	--pb-sort-text: #efdfc5;
	--pb-sort-text-dim: #9d917e;
	--pb-sort-text-bright: #eddcc1;
	--pb-sort-cell: #33271a;
	--pb-hide-bg: #28404a;
	--pb-hide-border: #557588;
	--pb-hide-text: #ddecf4;
	--pb-hide-text-dim: #8c9aa3;
	--pb-hide-text-bright: #dbe8f1;
	--pb-hide-cell: #1e3040;
	--pb-focus-ring: rgba(199, 176, 122, 0.12);
	--pb-field-border: rgba(255, 255, 255, 0.2);
	--pb-checkbox-bg: #2d2d2d;
	--pb-checkbox-border: #5a5a5a;
	--pb-checkbox-bg-hover: #3a3832;
	--pb-checkbox-border-hover: #8a7a55;
	--pb-checkbox-checked-bg: rgb(83, 89, 101);
	--pb-checkbox-checked-border: #dcc796;
	--pb-checkbox-checked-text: #171717;
	--pb-checkbox-disabled-bg: #242424;
	--pb-checkbox-disabled-border: #424242;
	--pb-z-context-menu: 1200;
}

html[data-ui-theme='light'] {
	--pb-page-bg: #edf1f5;
	--pb-shell-bg: #e8edf2;
	--pb-panel-bg: #f4f6f8;
	--pb-panel-bg-strong: #e4eaf0;
	--pb-table-bg: #f8fafc;
	--pb-row: #f8fafc;
	--pb-row-alt: #f1f5f9;
	--pb-row-hover: #e9eef3;
	--pb-row-selected-bg: #e3e9ef;
	--pb-column-selected-bg: #e3e9ef;
	--pb-header-selected-bg: #e5e8ec;
	--pb-cell-editing-bg: #f8fafc;
	--pb-cell-empty-text: #5f6670;
	--pb-header-bg: #e5eaef;
	--pb-header-bg-strong: #dbe2e9;
	--pb-column-group-header-bg: #dbe2e9;
	--pb-sticky-bg: #e4eaf0;
	--pb-sticky-bg-selected: #d8e0e8;
	--pb-group-row-bg: #e4eaf0;
	--pb-border-strong: rgba(31, 41, 55, 0.24);
	--pb-border-soft: rgba(31, 41, 55, 0.16);
	--pb-border-grid: rgba(31, 41, 55, 0.15);
	--pb-header-border-v: rgba(31, 41, 55, 0.25);
	--pb-text: rgb(29, 31, 37);
	--pb-text-dim: rgb(83, 89, 101);
	--pb-text-soft: rgb(97, 102, 112);
	--pb-text-muted: rgb(97, 102, 112);
	--pb-module-brand-title-text: rgb(29, 31, 37);
	--pb-module-brand-subtitle-text: rgba(29, 31, 37, 0.78);
	--pb-module-brand-icon-bg: #e6edf4;
	--pb-module-brand-icon-border: rgba(0, 0, 0, 0.16);
	--pb-module-brand-icon-text: rgb(29, 31, 37);
	--pb-module-brand-icon-bg-hover: #dce5ee;
	--pb-module-brand-icon-border-hover: rgba(0, 0, 0, 0.16);
	--pb-module-brand-button-bg: #e8eef5;
	--pb-module-brand-button-border: rgba(0, 0, 0, 0.10);
	--pb-module-brand-button-text: rgb(29, 31, 37);
	--pb-module-brand-button-bg-hover: #dce5ee;
	--pb-module-brand-button-border-hover: rgba(0, 0, 0, 0.16);
	--pb-module-brand-success-bg: #dff2e5;
	--pb-module-brand-success-border: #76b58a;
	--pb-module-brand-success-text: #1f5f38;
	--pb-module-brand-success-bg-hover: #d1ead9;
	--pb-module-brand-success-border-hover: #4f9a68;
	--pb-module-brand-success-text-hover: #174f2e;
	--pb-accent: rgb(83, 89, 101);
	--pb-accent-strong: rgb(29, 31, 37);
	--pb-accent-soft: rgba(75, 85, 99, 0.12);
	--pb-success: #1f6f3e;
	--pb-success-border: #b7dec5;
	--pb-warning: #a26316;
	--pb-warning-border: #f3d3a8;
	--pb-danger: #b42335;
	--pb-danger-bg: #efb8bf;
	--pb-danger-bg-hover: #e79aa5;
	--pb-danger-bg-active: #dc8794;
	--pb-danger-border: #b94a59;
	--pb-danger-border-hover: #9f3342;
	--pb-danger-text: #68111d;
	--pb-danger-text-hover: #4f0c15;
	--pb-shadow: 0 0 0 1px rgba(15, 23, 42, 0.07), 0 8px 22px rgba(15, 23, 42, 0.11);
	--pb-shadow-soft: 0 0 0 1px rgba(15, 23, 42, 0.06), 0 4px 14px rgba(15, 23, 42, 0.09);
	--pb-panel-chrome-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72), 0 1px 2px rgba(15, 23, 42, 0.06);
	--pi-card-bg: #f8fafc;
	--pi-card-bg-hover: #e6e8eb;
	--pi-card-border: rgba(0, 0, 0, 0.14);
	--pi-card-border-hover: rgba(0, 0, 0, 0.18);
	--pi-card-shadow: var(--ui-card-depth-shadow);
	--pi-card-shadow-hover: var(--ui-card-depth-shadow-hover);
	--pb-overlay-bg: rgba(241, 245, 249, 0.985);
	--pb-tooltip-bg: #f8fafc;
	--pb-scrollbar-thumb: #c4c8ce;
	--pb-scrollbar-thumb-hover: #9ea4ab;
	--pb-scrollbar-track: #f2f4f8;
	--pb-border: var(--pb-border-strong);
	--pb-border-v: var(--pb-border-grid);
	--pb-surface: #e8edf2;
	--pb-surface-2: #f8fafc;
	--pb-surface-3: #e1e8ef;
	--pb-surface-raised: #f8fafc;
	--pb-surface-strong: var(--pb-panel-bg-strong);
	--pb-active-border: rgba(0, 0, 0, 0.18);
	--pb-button-active-border: rgba(0, 0, 0, 0.18);
	--pb-tab-active-bg: #e0e7ef;
	--pb-tab-active-bg-hover: #d6e0ea;
	--pb-tab-active-border: rgba(0, 0, 0, 0.27);
	--pb-tab-active-text: rgb(29, 31, 37);
	--pb-tab-custom-active-mix: #dfe6ee;
	--pb-external-tab-bg: #f2f7ed;
	--pb-external-tab-border: #c9d8bd;
	--pb-external-tab-text: #43523b;
	--pb-external-tab-bg-hover: #e9f2e1;
	--pb-external-tab-border-hover: #a7bd95;
	--pb-external-tab-text-hover: #2f3d29;
	--pb-external-tab-bg-active: #dfebd7;
	--pb-external-tab-border-active: #9bb184;
	--pb-external-tab-text-active: #2b3826;
	--pb-script-btn-bg: #eef7ea;
	--pb-script-btn-border: #bfd7b6;
	--pb-script-btn-text: #2f673d;
	--pb-script-btn-bg-hover: #e3f0df;
	--pb-script-btn-border-hover: #a8c89e;
	--pb-script-btn-text-hover: #23512f;
	--pb-primary-bg-hover: #d9e0e7;
	--pb-primary-border-hover: #727d8c;
	--pb-primary-text-hover: rgb(29, 31, 37);
	--pb-primary-bg-active: #e6e8eb;
	--pb-primary-border-active: #687382;
	--pb-primary-text-active: rgb(29, 31, 37);
	--pb-toggle-bg: #e8eef5;
	--pb-toggle-border: rgba(0, 0, 0, 0.10);
	--pb-toggle-bg-hover: #dce5ee;
	--pb-toggle-border-hover: rgba(0, 0, 0, 0.16);
	--pb-chip-link-bg: #dfe6eb;
	--pb-chip-link-border: #9da9b4;
	--pb-panel-border: rgba(31, 41, 55, 0.18);
	--pb-panel-head-bg: #e4eaf0;
	--pb-panel-footer-bg: #e8edf2;
	--pb-filter-bg: var(--pb-filter-cell);
	--pb-filter-border: rgba(34, 120, 61, 0.32);
	--pb-filter-text: #21492c;
	--pb-filter-text-dim: #456b4f;
	--pb-filter-text-bright: #173d22;
	--pb-filter-cell: #dcefe1;
	--pb-group-bg: var(--pb-group-cell);
	--pb-group-border: rgba(91, 64, 148, 0.31);
	--pb-group-text: #443050;
	--pb-group-text-dim: #5c4b69;
	--pb-group-text-bright: #352342;
	--pb-group-cell: #e8ddf3;
	--pb-sort-bg: var(--pb-sort-cell);
	--pb-sort-border: rgba(156, 94, 26, 0.32);
	--pb-sort-text: #50391d;
	--pb-sort-text-dim: #705735;
	--pb-sort-text-bright: #3f2b14;
	--pb-sort-cell: #f4e2c7;
	--pb-hide-bg: var(--pb-hide-cell);
	--pb-hide-border: rgba(52, 109, 116, 0.31);
	--pb-hide-text: #294f56;
	--pb-hide-text-dim: #4b6b70;
	--pb-hide-text-bright: #203f46;
	--pb-hide-cell: #dcecee;
	--pb-focus-ring: rgba(58, 70, 88, 0.18);
	--pb-field-border: rgba(31, 41, 55, 0.17);
	--pb-checkbox-bg: #f8fafc;
	--pb-checkbox-border: #8f9baa;
	--pb-checkbox-bg-hover: #e8eef5;
	--pb-checkbox-border-hover: rgba(0, 0, 0, 0.16);
	--pb-checkbox-checked-bg: rgb(83, 89, 101);
	--pb-checkbox-checked-border: rgb(29, 31, 37);
	--pb-checkbox-checked-text: #ffffff;
	--pb-checkbox-disabled-bg: #edf2f7;
	--pb-checkbox-disabled-border: #d1d5db;
}

/* ── Shared Discussion Controls ──────────────────────────────────────────── */

.discussions-message-action.discussions-message-star.is-active,
.discussions-activity-row-action.discussions-activity-star-action.is-active,
.discussions-activity-corner-action.discussions-activity-star-action.is-active,
.pb-discussion-star-button.pb-discussion-star-button.is-active,
.tor-discussion-star.tor-discussion-star.is-active {
	color: var(--pb-star-active-color);
}

/* ── Context Menus ───────────────────────────────────────────────────────── */

#pbContextMenuRoot {
	display: contents;
}

.pb-context-menu {
	position: fixed;
	display: grid;
	gap: 2px;
	min-width: 235px;
	width: 235px;
	max-width: calc(100vw - 16px);
	max-height: calc(100vh - 24px);
	overflow: auto;
	overscroll-behavior: contain;
	background: var(--pb-panel-bg);
	border: 1px solid var(--pb-border-strong);
	border-radius: 12px;
	box-shadow: var(--pb-shadow);
	outline: 1px solid var(--pb-border-soft);
	z-index: var(--pb-z-context-menu);
	padding: 4px;
	font: 13px/1.35 'Artifakt Element', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

html[data-ui-theme='light'] .pb-context-menu {
	background: #f8fafc;
}

html[data-ui-theme='light'] .pb-context-menu button.pb-context-menu-button-base-kind {
	background: #f2f4f8;
	border-color: rgba(75, 85, 99, 0.3);
}

html[data-ui-theme='light'] .pb-context-menu button.pb-context-menu-action {
	background: #f8fafc;
	border-color: rgba(75, 85, 99, 0.26);
}

html[data-ui-theme='light'] .pb-context-menu button.pb-context-menu-button-base-kind:hover,
html[data-ui-theme='light'] .pb-context-menu button.pb-context-menu-action:hover {
	background: #f2f4f8;
	border-color: rgba(75, 85, 99, 0.38);
}

.pb-context-menu :where(button) {
	width: 100%;
	text-align: left;
	display: grid;
	gap: 2px;
	background: transparent;
	border: 1px solid transparent;
	box-sizing: border-box;
	color: var(--pb-text);
	padding: 4px 8px;
	border-radius: 8px;
	cursor: pointer;
	font: inherit;
	transition:
		background-color 0.14s ease,
		color 0.14s ease,
		opacity 0.14s ease;
}

.pb-context-menu strong {
	font-weight: 500;
}

.pb-context-menu :where(button):hover {
	background: var(--pb-surface-3);
}

.pb-context-menu :where(button):disabled {
	cursor: default;
	opacity: 0.45;
	pointer-events: none;
	box-shadow: none;
}

.pb-context-menu button.pb-context-menu-button-base-kind {
	background: var(--pb-surface-2);
}

.pb-context-menu button.pb-context-menu-action {
	margin-top: 0;
	background: var(--pb-surface-2);
	border-color: transparent;
	color: var(--pb-text);
}

.pb-context-menu button.pb-context-menu-button-base-kind:hover,
.pb-context-menu button.pb-context-menu-action:hover {
	background: var(--pb-surface-3);
	color: var(--pb-text);
}

.pb-context-menu button.pb-context-menu-action.is-filter-applied {
	background: var(--pb-filter-bg);
	border-color: transparent;
	color: var(--pb-filter-text);
}

.pb-context-menu button.pb-context-menu-action.is-group-applied {
	background: var(--pb-group-bg);
	border-color: transparent;
	color: var(--pb-group-text);
}

.pb-context-menu button.pb-context-menu-action.is-sort-applied {
	background: var(--pb-sort-bg);
	border-color: transparent;
	color: var(--pb-sort-text);
}

.pb-context-menu button.pb-context-menu-action.is-hide-fields-applied {
	background: var(--pb-hide-bg);
	border-color: transparent;
	color: var(--pb-hide-text);
}

.pb-context-menu button.pb-context-menu-action.is-filter-applied:hover,
.pb-context-menu button.pb-context-menu-action.is-group-applied:hover,
.pb-context-menu button.pb-context-menu-action.is-sort-applied:hover,
.pb-context-menu button.pb-context-menu-action.is-hide-fields-applied:hover {
	filter: brightness(1.16);
}

.pb-context-inline-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 3px 9px;
	border-radius: 8px;
}

.pb-context-inline-label {
	min-width: 0;
	color: var(--pb-text);
	white-space: nowrap;
}

.pb-context-inline-actions {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	flex: 0 0 auto;
}

.pb-context-menu .pb-context-inline-choice {
	width: auto;
	min-width: 26px;
	padding: 0px 7px;
	text-align: center;
	border: 1px solid var(--pb-border-strong);
	background: var(--pb-surface-2);
	border-radius: 8px;
}

.pb-context-menu .pb-context-inline-choice:hover {
	background: var(--pb-surface-3);
}

.pb-context-menu .pb-context-inline-choice.is-active {
	border-color: var(--pb-accent);
	background: var(--pb-accent-soft);
	color: var(--pb-accent-strong);
}

.pb-context-color-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 8px;
	min-width: 220px;
	padding: 4px;
}

.pb-context-color-clear {
	grid-column: 1 / -1;
}

.pb-context-menu .pb-context-color-swatch {
	display: block;
	width: 100%;
	height: 30px;
	padding: 0;
	appearance: none;
	border-radius: 10px;
	border: 1px solid var(--pb-border-soft);
	background-color: var(--pb-swatch-color);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.18);
}

.pb-context-menu .pb-context-color-swatch.is-active {
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.96);
}

.pb-context-meta {
	color: var(--pb-text-dim);
	font-size: 11px;
}

.discussions-context-separator {
	height: 1px;
	margin: 4px 6px;
	background: var(--pb-border-strong);
	opacity: 0.72;
}

.pb-context-menu-separator {
	height: 1px;
	margin: 4px 6px;
	background: var(--pb-border-strong);
	opacity: 0.72;
}

#pbPanelRoot:has(.pb-schema-map-panel, .pb-project-discussions-panel, .pb-module-diag-panel) {
	position: fixed;
	inset: 0;
	display: block;
	z-index: calc(var(--pb-z-panel, 1100) - 1);
	background: rgba(0, 0, 0, 0.34);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	pointer-events: none;
}

html[data-ui-theme='light'] #pbPanelRoot:has(.pb-schema-map-panel, .pb-project-discussions-panel, .pb-module-diag-panel) {
	background: rgba(24, 31, 42, 0.26);
}

#pbPanelRoot:has(.pb-schema-map-panel, .pb-project-discussions-panel, .pb-module-diag-panel) > .pb-panel {
	pointer-events: auto;
}

/* ── Panel ───────────────────────────────────────────────────────────────── */

.pb-panel {
	position: fixed;
	top: calc(env(safe-area-inset-top, 0px) + var(--page-topbar-offset, 58px) + 18px);
	left: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	width: min(420px, calc(100vw - 32px));
	max-width: calc(100vw - 16px);
	margin-left: auto;
	margin-right: auto;
	max-height: min(90vh, calc(100vh - env(safe-area-inset-top, 0px) - var(--page-topbar-offset, 58px) - 16px));
	overflow: hidden;
	box-sizing: border-box;
	background: var(--pb-panel-bg);
	color: var(--pb-text);
	font:
		13px/1.35 'Artifakt Element',
		system-ui,
		-apple-system,
		'Segoe UI',
		sans-serif;
	border: 1px solid var(--pb-panel-border);
	border-radius: 12px;
	box-shadow: 0 16px 38px rgba(0, 0, 0, 0.46), inset 0 1px 0 rgba(255, 255, 255, 0.045);
	outline: 1px solid rgba(255, 255, 255, 0.045);
	z-index: var(--pb-z-panel, 1100);
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	touch-action: pan-x pan-y;
}

html[data-ui-theme='light'] .pb-panel {
	background: var(--pb-panel-bg);
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.035), 0 1px 3px rgba(0, 0, 0, 0.07);
	outline: 1px solid rgba(0, 0, 0, 0.06);
}

html[data-ui-theme='light'] .pb-panel-body {
	background: #f5f7f9;
}

.pb-panel-head {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 6px;
	padding: 6px;
	border-bottom: 1px solid var(--pb-border-strong);
	background: var(--pb-panel-head-bg);
	cursor: move;
	user-select: none;
	touch-action: none;
}

.pb-panel-head strong {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	font: 600 15px/1.2 'IBM Plex Sans Condensed', sans-serif;
	letter-spacing: 0;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pb-panel-body {
	flex: 1 1 auto;
	padding: 8px;
	display: grid;
	gap: 8px;
	min-height: 0;
	min-width: 0;
	box-sizing: border-box;
	overflow-x: hidden;
	overflow-y: auto;
	background: var(--pb-panel-bg-strong);
}

.pb-panel-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 2px;
	border: 1px solid var(--pb-border-soft);
	border-radius: 10px;
	background: var(--pb-surface-2);
}

.pb-panel-sections {
	display: grid;
	gap: 18px;
}

.pb-panel-actions {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 2px;
	min-width: 0;
}

.pb-panel-actions-split {
	justify-content: space-between;
}

.pb-panel-actions-left,
.pb-panel-actions-main {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}

.pb-panel-actions-main {
	justify-content: flex-end;
}

.pb-panel-footer-actions {
	flex: 0 0 auto;
	margin: 0;
	padding: 6px;
	border-top: 1px solid var(--pb-border-strong);
	background: var(--pb-panel-footer-bg);
}

.pb-panel-error {
	font-size: 12px;
	line-height: 1.25;
	color: var(--pb-danger-text);
}

.pb-form-save-error {
	margin-top: 8px;
	padding: 10px 12px;
	border: 1px solid var(--pb-danger-border);
	border-radius: 10px;
	background: var(--pb-danger-bg);
	color: var(--pb-danger-text);
	font-size: 12px;
	line-height: 1.4;
	white-space: pre-wrap;
}

/* ── Pagination ──────────────────────────────────────────────────────────── */

.pb-pagination-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 30px;
	height: 30px;
	padding: 0 10px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.04);
	color: var(--pb-text);
	text-decoration: none;
	font:
		500 12px/1 'Artifakt Element',
		system-ui,
		sans-serif;
	cursor: pointer;
	transition:
		background-color 0.14s ease,
		border-color 0.14s ease;
}

.pb-pagination-link.is-active {
	border-color: var(--pb-tab-active-border);
	background: var(--pb-tab-active-bg);
	color: var(--pb-tab-active-text);
}

.pb-pagination-link.is-disabled {
	opacity: 0.4;
	pointer-events: none;
}

.pb-pagination-link:not(.is-active):not(.is-disabled):hover {
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.22);
}

/* Module layout contract moved to components/module-layout.css. */

/* ── Reports page ────────────────────────────────────────── */

.finance-reports-two-col {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6px;
}

.finance-reports-widget-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	grid-auto-rows: 112px;
	gap: 6px;
}

.shd-overview-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	grid-auto-rows: 112px;
	gap: 6px;
}

.finance-reports-widget-grid .finance-editor-section--wide {
	grid-column: 1 / -1;
}

.finance-overview-grid > .finance-widget-width--2,
.finance-reports-widget-grid > .finance-widget-width--2,
.shd-overview-grid > .finance-widget-width--2 {
	grid-column: span 2;
}

.finance-overview-grid > .finance-widget-width--3,
.finance-reports-widget-grid > .finance-widget-width--3,
.shd-overview-grid > .finance-widget-width--3 {
	grid-column: span 3;
}

.finance-overview-grid > .finance-widget-width--4,
.finance-reports-widget-grid > .finance-widget-width--4,
.shd-overview-grid > .finance-widget-width--4 {
	grid-column: span 4;
}

.finance-overview-grid > .finance-widget-width--5,
.finance-reports-widget-grid > .finance-widget-width--5,
.shd-overview-grid > .finance-widget-width--5 {
	grid-column: span 5;
}

.finance-overview-grid > .finance-widget-width--6,
.finance-reports-widget-grid > .finance-widget-width--6,
.shd-overview-grid > .finance-widget-width--6 {
	grid-column: span 6;
}

.finance-overview-grid > .finance-widget-height--1,
.finance-reports-widget-grid > .finance-widget-height--1 {
	grid-row: span 1;
}

.finance-overview-grid > .finance-widget-height--2,
.finance-reports-widget-grid > .finance-widget-height--2 {
	grid-row: span 2;
}

.finance-overview-grid > .finance-widget-height--3,
.finance-reports-widget-grid > .finance-widget-height--3 {
	grid-row: span 3;
}

.finance-overview-grid > .finance-widget-height--4,
.finance-reports-widget-grid > .finance-widget-height--4 {
	grid-row: span 4;
}

.finance-overview-grid > .finance-widget-height--5,
.finance-reports-widget-grid > .finance-widget-height--5 {
	grid-row: span 5;
}

.finance-overview-grid > .finance-widget-height--6,
.finance-reports-widget-grid > .finance-widget-height--6 {
	grid-row: span 6;
}

.finance-overview-grid > .finance-surface,
.finance-reports-widget-grid > .finance-surface,
.finance-reports-widget-grid > .finance-editor-section {
	height: 100%;
	min-height: 0;
	position: relative;
	background: var(--pb-surface-raised);
	overflow: hidden;
}

.finance-reports-widget-grid > .finance-surface,
.finance-reports-widget-grid > .finance-editor-section {
	display: flex;
	flex-direction: column;
}

.finance-reports-widget-grid > .finance-surface > :not(.finance-surface-head):not(.finance-widget-size-toggle) {
	flex: 1 1 auto;
	min-height: 0;
	overflow: auto;
}

.finance-overview-grid .finance-chart-wrap,
.finance-reports-widget-grid .finance-chart-wrap {
	min-height: 0;
	height: auto;
}

.finance-reports-widget-grid .finance-reports-chart,
.finance-reports-widget-grid .finance-chart-wrap--bar,
.finance-reports-widget-grid .finance-chart-wrap--stacked {
	min-height: 0;
	height: auto;
}

.finance-overview-grid .finance-mini-breakdown,
.finance-reports-widget-grid .finance-editor-table-wrap {
	min-height: 0;
	overflow: auto;
}

.finance-reports-widget-grid .finance-editor-table-wrap {
	overflow-x: hidden;
}

.finance-reports-widget-grid .finance-editor-table-wrap .shd-table {
	width: 100%;
	min-width: 0;
	table-layout: fixed;
}

@media (max-width: 1100px) {
	.finance-kpi-grid,
	.finance-kpi-grid--compact,
	.shd-overview-kpi-grid {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}

	.finance-overview-grid,
	.shd-overview-grid {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}

	.finance-overview-grid .finance-surface--chart {
		grid-column: 1 / -1;
		grid-row: span 1;
		min-height: 300px;
	}

	.finance-settings-form-grid,
	.finance-settings-toggle-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {

	.shd-table-shell {
		min-height: 0;
	}

	.finance-register-toolbar {
		flex: 0 0 auto;
		display: grid;
		grid-template-columns: 1fr;

		align-items: start;
		gap: 6px;
	}

	.finance-register-toolbar + .shd-table-shell {
		margin-top: 0;
	}

	.finance-register-date-filter {
		grid-column: 1 / 3;
		grid-row: 2;
		flex: 0 0 auto;
	}

	:is(.crm-page, .documents-page, .inventory-page, .tasks-page, .proposal-page) .finance-register-filters {
		grid-column: 1;
		display: flex;
		flex-wrap: nowrap;
		min-width: 0;
		padding: 4px;
		gap: 4px;
		align-items: end;
		overflow-x: auto;
		overflow-y: hidden;
	}

	:is(.crm-page, .documents-page, .inventory-page, .tasks-page, .proposal-page) .finance-register-filters > label {
		flex: 0 0 132px;
		width: 132px;
		min-width: 132px;
		font-size: 9px;
	}

	:is(.crm-page, .documents-page, .inventory-page, .tasks-page, .proposal-page) .finance-register-filters > .btn-filter {
		grid-column: 10 / 13;
		grid-row: 2;
		flex: 0 0 auto;
		width: auto;
		min-width: max-content;
	}

	:is(.crm-page, .documents-page, .inventory-page, .tasks-page, .proposal-page) .finance-register-filters select,
	:is(.crm-page, .documents-page, .inventory-page, .tasks-page, .proposal-page) .finance-register-filters input {
		height: 26px;
		font-size: 11px;
	}

	:is(.crm-page, .documents-page, .inventory-page, .tasks-page, .proposal-page) .finance-register-filters .pb-btn {

		width: auto;
		min-width: max-content;
	}

	.finance-register-date-filter > summary.pb-btn {
		width: auto;
		min-width: max-content;

		min-height: 26px;
		font-size: 11px;
	}

	.finance-register-export-actions {
		overflow-x: auto;
		overflow-y: hidden;
	}

}

@media (max-width: 760px) {
	.finance-kpi-grid,
	.finance-kpi-grid--compact,
	.shd-overview-kpi-grid,
	.finance-settings-dialog-body--compact,
	.finance-settings-readonly-grid,
	.finance-settings-dialog .finance-catalog-form {
		grid-template-columns: 1fr;
	}

	.finance-settings-form-grid,
	.finance-settings-toggle-grid {
		grid-template-columns: 1fr;
	}

	.finance-settings-section {
		width: 100%;
	}
}

/* Reports/overview grid mobile responsive */
@media (max-width: 760px) {
	.finance-overview-grid,
	.finance-reports-widget-grid {
		grid-template-columns: 1fr;
		grid-auto-rows: auto;
	}

	.finance-overview-grid > .finance-widget-width--2,
	.finance-overview-grid > .finance-widget-width--3,
	.finance-overview-grid > .finance-widget-width--4,
	.finance-overview-grid > .finance-widget-width--5,
	.finance-overview-grid > .finance-widget-width--6,
	.finance-reports-widget-grid > .finance-widget-width--2,
	.finance-reports-widget-grid > .finance-widget-width--3,
	.finance-reports-widget-grid > .finance-widget-width--4,
	.finance-reports-widget-grid > .finance-widget-width--5,
	.finance-reports-widget-grid > .finance-widget-width--6,
	.finance-reports-widget-grid .finance-editor-section--wide {
		grid-column: auto;
	}

	.finance-overview-grid > .finance-widget-height--1,
	.finance-overview-grid > .finance-widget-height--2,
	.finance-overview-grid > .finance-widget-height--3,
	.finance-overview-grid > .finance-widget-height--4,
	.finance-overview-grid > .finance-widget-height--5,
	.finance-overview-grid > .finance-widget-height--6,
	.finance-reports-widget-grid > .finance-widget-height--1,
	.finance-reports-widget-grid > .finance-widget-height--2,
	.finance-reports-widget-grid > .finance-widget-height--3,
	.finance-reports-widget-grid > .finance-widget-height--4,
	.finance-reports-widget-grid > .finance-widget-height--5,
	.finance-reports-widget-grid > .finance-widget-height--6 {
		grid-row: auto;
	}

	.finance-reports-page {
		overflow-y: auto;
	}

	.finance-reports-widget-grid {
		align-content: start;
	}

	.finance-reports-widget-grid > .finance-surface,
	.finance-reports-widget-grid > .finance-editor-section {
		height: auto;
		min-height: 0;
		min-width: 0;
		overflow: visible;
		padding: 6px;
	}

	.finance-reports-widget-grid .finance-editor-section-head {
		align-items: flex-start;
		flex-wrap: wrap;
		gap: 5px;
		margin-bottom: 6px;
	}

	.finance-reports-widget-grid .finance-editor-section-title {
		min-width: 0;
		font-size: 13px;
		line-height: 1.15;
	}

	.finance-reports-widget-grid .finance-chart-wrap,
	.finance-reports-widget-grid .finance-reports-chart,
	.finance-reports-widget-grid .finance-chart-wrap--bar,
	.finance-reports-widget-grid .finance-chart-wrap--stacked {
		flex: 0 0 auto;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		min-height: 220px;
		height: 220px;
		overflow: hidden;
	}

	.finance-reports-widget-grid .finance-chart-wrap canvas {
		max-width: 100%;
	}

	.finance-reports-widget-grid .finance-editor-table-wrap {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		overflow-x: auto;
		overflow-y: auto;
	}

	.finance-reports-widget-grid .finance-editor-table-wrap .shd-table {
		width: max-content;
		min-width: 640px;
		table-layout: auto;
	}

	.finance-reports-widget-grid [data-finance-report-widget='pl'] .shd-table {
		min-width: 520px;
	}

	.finance-reports-widget-grid [data-finance-report-widget='budget_gaps'] .shd-table,
	.finance-reports-widget-grid [data-finance-report-widget='settlements'] .shd-table {
		min-width: 680px;
	}

	.finance-reports-widget-grid [data-finance-report-widget='payment_calendar'] .shd-table,
	.finance-reports-widget-grid [data-finance-report-widget='aging'] .shd-table {
		min-width: 820px;
	}

	.finance-reports-widget-grid .finance-editor-table-wrap .shd-table th,
	.finance-reports-widget-grid .finance-editor-table-wrap .shd-table td {
		max-width: 180px;
		white-space: nowrap;
	}

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

	.finance-report-kpi-grid .finance-kpi {
		min-height: 66px;
		padding: 8px;
	}

	.finance-report-kpi-grid .finance-kpi-value {
		font-size: 17px;
		line-height: 1.05;
	}

	.finance-rep-summary {
		flex-wrap: nowrap;
		gap: 6px;
		width: 100%;
		overflow-x: auto;
		padding-bottom: 1px;
	}

	.finance-rep-summary-item {
		flex: 0 0 auto;
		font-size: 11px;
	}

	.finance-reports-cat-list {
		margin-top: 6px;
	}

	.finance-reports-cat-row {
		grid-template-columns: minmax(110px, 1fr) 42px minmax(72px, max-content);
		gap: 5px;
		font-size: 11px;
	}
}

@media (max-width: 760px) {

	.finance-report-presets {
		flex-wrap: nowrap;
		overflow-x: auto;
		padding-bottom: 2px;
	}

	.finance-rep-summary {
		gap: 10px;
	}

}

@media (max-width: 560px) {
	.finance-kpi-grid,
	.finance-kpi-grid--compact,
	.shd-overview-kpi-grid,
	.finance-report-kpi-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.finance-kpi,
	.shd-overview-kpi {
		min-height: 64px;
		padding: 9px 10px;
	}

	.finance-kpi-label {
		font-size: 10px;
	}

	.finance-kpi-value {
		margin-top: 4px;
		font-size: 18px;
	}

	.finance-kpi-trend {
		font-size: 10px;
	}

}
