:root {
	--ink: #0f172a;
	--muted: #64748b;
	--line: #e2e8f0;
	--surface: #fff;
	--canvas: #f4f7fb;
	--brand: #3157d5;
	--brand2: #6d5dfc;
	--success: #0f9f6e;
	--danger: #c9364f;
	--warning: #d97706;
	--radius: 18px;
	--shadow: 0 12px 35px rgba(15,23,42,.07)
}
* {
	box-sizing: border-box
}
html {
	scroll-behavior: smooth
}
body {
	margin: 0!important;
	background: radial-gradient(circle at 90% -10%,#e9e8ff 0,transparent 28%),var(--canvas)!important;
	color: var(--ink)!important;
	font-family: Inter,"Segoe UI",system-ui,-apple-system,sans-serif!important;
	line-height: 1.55
}
.app-shell {
	min-height: 100vh
}
.topbar {
	height: 76px;
	background: rgba(255,255,255,.94);
	backdrop-filter: blur(16px);
	border-bottom: 1px solid rgba(226,232,240,.9);
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 max(24px,calc((100vw - 1320px)/2));
	position: sticky;
	top: 0;
	z-index: 60
}
.brand-lockup {
	display: flex;
	align-items: center;
	gap: 13px
}
.brand-mark {
	width: 42px;
	height: 42px;
	border-radius: 13px;
	background: linear-gradient(145deg,var(--brand),var(--brand2));
	display: grid;
	place-items: center;
	color: #fff;
	box-shadow: 0 9px 20px rgba(49,87,213,.25);
	font-weight: 900;
	font-size: 18px
}
.brand-name {
	font-weight: 850;
	font-size: 17px;
	letter-spacing: -.02em
}
.brand-sub {
	color: var(--muted);
	font-size: 12px
}
.top-actions {
	display: flex;
	align-items: center;
	gap: 10px
}
.mode-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	border-radius: 99px;
	font-size: 12px;
	font-weight: 800;
	border: 1px solid
}
.mode-pill::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
	box-shadow: 0 0 0 4px currentColor;
	color: inherit;
	opacity: .75
}
.mode-pill.sim {
	color: #087f5b;
	background: #ecfdf5;
	border-color: #a7f3d0
}
.mode-pill.live {
	color: #b4233b;
	background: #fff1f2;
	border-color: #fecdd3
}
.logout-button {
	width: auto!important;
	margin: 0!important;
	background: #fff!important;
	color: #334155!important;
	border: 1px solid var(--line)!important;
	padding: 9px 13px!important
}
.wrap {
	max-width: 1320px!important;
	margin: 0 auto!important;
	padding: 30px 24px 56px!important
}
.hero {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 20px;
	margin: 4px 0 24px
}
.eyebrow {
	text-transform: uppercase;
	letter-spacing: .1em;
	font-size: 11px;
	font-weight: 850;
	color: var(--brand)
}
.hero h1 {
	font-size: clamp(27px,3vw,40px)!important;
	line-height: 1.12;
	margin: 5px 0 8px!important;
	letter-spacing: -.04em
}
.hero p {
	color: var(--muted);
	margin: 0;
	max-width: 700px
}
.version-chip {
	background: #eef2ff;
	color: #4338ca;
	border: 1px solid #c7d2fe;
	border-radius: 9px;
	padding: 6px 10px;
	font-size: 12px;
	font-weight: 800;
	white-space: nowrap
}
.metrics {
	display: grid;
	grid-template-columns: repeat(5,minmax(0,1fr));
	gap: 14px;
	margin: 0 0 22px
}
.metric {
	background: linear-gradient(160deg,#fff,#fbfcff);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 18px;
	box-shadow: 0 7px 22px rgba(15,23,42,.04)
}
.metric-label {
	color: var(--muted);
	font-size: 12px;
	font-weight: 750
}
.metric-value {
	font-size: 27px;
	font-weight: 880;
	letter-spacing: -.04em;
	margin-top: 4px
}
.metric-detail {
	font-size: 11px;
	color: #94a3b8;
	margin-top: 2px
}
.card {
	background: var(--surface)!important;
	border: 1px solid var(--line)!important;
	border-radius: var(--radius)!important;
	box-shadow: var(--shadow)!important;
	padding: 24px!important;
	margin-bottom: 18px!important
}
.card h2 {
	font-size: 20px;
	margin: 0 0 7px;
	letter-spacing: -.025em
}
.card h3 {
	font-size: 16px;
	margin: 0 0 5px
}
.section-kicker {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .09em;
	color: var(--brand);
	font-weight: 850
}
.muted,.small-note {
	color: var(--muted)!important
}
.ok,.err {
	border-radius: 13px!important;
	padding: 13px 16px!important;
	border: 1px solid!important
}
.ok {
	color: #067647;
	background: #ecfdf3!important;
	border-color: #abefc6
}
.err {
	color: #b42318;
	background: #fef3f2!important;
	border-color: #fecdca
}
.warn {
	color: #b54708!important
}
.card summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 16px
}
.card summary::-webkit-details-marker {
	display: none
}
.card summary::after {
	content: "+";
	margin-left: auto;
	color: var(--muted);
	font-size: 22px
}
.card[open] summary::after {
	content: "−"
}
.settings-box {
	background: #f8fafc!important;
	border: 1px solid var(--line)!important;
	border-radius: 14px!important;
	padding: 18px!important
}
input,select {
	min-height: 43px;
	border: 1px solid #cbd5e1!important;
	border-radius: 10px!important;
	background: #fff!important;
	color: var(--ink)!important;
	padding: 10px 12px!important;
	outline: none;
	transition: .18s
}
input:focus,select:focus {
	border-color: #7c8cf5!important;
	box-shadow: 0 0 0 4px rgba(99,102,241,.12)
}
button {
	border: 0!important;
	border-radius: 10px!important;
	background: linear-gradient(135deg,var(--brand),var(--brand2))!important;
	color: #fff!important;
	font-weight: 750!important;
	padding: 10px 15px!important;
	cursor: pointer;
	box-shadow: 0 5px 14px rgba(49,87,213,.18);
	transition: .18s
}
button:hover {
	transform: translateY(-1px);
	filter: brightness(1.03)
}
button:disabled {
	opacity: .55;
	cursor: not-allowed;
	transform: none
}
.secondary {
	background: #fff!important;
	color: #334155!important;
	border: 1px solid var(--line)!important;
	box-shadow: none!important
}
.danger {
	background: linear-gradient(135deg,#c9364f,#a61b36)!important
}
.mode-switch input:checked+.mode-slider {
	background: var(--danger)!important
}
table {
	border-collapse: separate!important;
	border-spacing: 0!important;
	width: 100%
}
th {
	background: #f8fafc;
	color: #64748b;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .055em;
	font-weight: 800
}
th,td {
	padding: 13px 12px!important;
	border-bottom: 1px solid #edf1f6!important
}
tr:last-child td {
	border-bottom: 0!important
}
tbody tr {
	transition: .15s
}
tbody tr:hover {
	background: #fafbff
}
code {
	background: #f1f5f9;
	border-radius: 6px;
	padding: 3px 6px;
	color: #334155
}
.pager {
	box-shadow: none!important;
	border-color: var(--line)!important
}
.pager strong {
	background: var(--brand)!important
}
.simulation-note {
	border-radius: 13px!important
}
.sim-dialog {
	border-radius: 22px!important;
	box-shadow: 0 35px 110px rgba(15,23,42,.36)!important
}
.sim-dialog::backdrop {
	background: rgba(15,23,42,.5)!important;
	backdrop-filter: blur(5px)
}
.sim-panel {
	padding: 30px!important
}
.sim-progress {
	height: 17px!important
}
.sim-progress-bar {
	background: linear-gradient(90deg,var(--brand),var(--brand2))!important
}
.auth-body {
	display: grid;
	min-height: 100vh;
	place-items: center;
	padding: 24px;
	background: radial-gradient(circle at 15% 10%,#dfe7ff,transparent 33%),radial-gradient(circle at 90% 90%,#ede9fe,transparent 30%),#f7f9fc!important
}
.auth-card {
	width: min(440px,100%);
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 24px;
	padding: 36px;
	box-shadow: 0 30px 90px rgba(15,23,42,.12)
}
.auth-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 28px
}
.auth-card h1 {
	font-size: 29px;
	letter-spacing: -.04em;
	margin: 0 0 8px
}
.auth-card p {
	color: var(--muted)
}
.auth-card input,.auth-card button {
	width: 100%!important;
	margin: 6px 0!important
}
.auth-foot {
	text-align: center;
	color: #94a3b8;
	font-size: 11px;
	margin-top: 20px
}
.security-strip {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	color: #64748b;
	font-size: 12px;
	margin-top: 16px
}
.security-strip span::before {
	content: "✓";
	color: var(--success);
	font-weight: 900;
	margin-right: 5px
}
@media(max-width:980px) {
	.metrics {
		grid-template-columns: repeat(2,1fr)
	}
	.settings-grid {
		grid-template-columns: 1fr!important
	}
	.topbar {
		padding: 0 18px
	}
	.brand-sub {
		display: none
	}
}
@media(max-width:640px) {
	.wrap {
		padding: 22px 14px 42px!important
	}
	.topbar {
		height: 68px
	}
	.hero {
		align-items: flex-start;
		flex-direction: column
	}
	.metrics {
		grid-template-columns: 1fr 1fr;
		gap: 10px
	}
	.metric {
		padding: 14px
	}
	.metric-value {
		font-size: 22px
	}
	.top-actions .mode-pill {
		padding: 7px 9px
	}
	.top-actions .mode-pill span {
		display: none
	}
	.card {
		padding: 18px!important
	}
	.brand-name {
		font-size: 15px
	}
}
.db-settings-grid {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 12px
}
.db-settings-grid label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 12px;
	font-weight: 750;
	color: #475569
}
.db-settings-grid input[type=checkbox] {
	width: 22px!important;
	min-height: 22px!important;
	align-self: flex-start
}
@media(max-width:900px) {
	.db-settings-grid {
		grid-template-columns: 1fr 1fr
	}
}
@media(max-width:640px) {
	.db-settings-grid {
		grid-template-columns: 1fr
	}
}
.health-list {
	display: grid;
	gap: 9px;
	margin: 14px 0
}
.health-row {
	display: grid;
	grid-template-columns: 28px 1fr auto;
	gap: 10px;
	align-items: center;
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 11px 13px;
	background: #f8fafc
}
.health-row>span {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-weight: 900
}
.health-row small {
	display: block;
	color: var(--muted)
}
.health-row em {
	font-size: 11px;
	font-style: normal;
	color: var(--muted)
}
.health-ok>span {
	background: #dcfce7;
	color: #087f5b
}
.health-bad>span {
	background: #fff1f2;
	color: #c9364f
}
@media(max-width:640px) {
	.health-row {
		grid-template-columns: 28px 1fr
	}
	.health-row em {
		grid-column: 2
	}
}
.settings-button {
	width: auto!important;
	margin: 0!important;
	background: #fff!important;
	color: #334155!important;
	border: 1px solid var(--line)!important;
	box-shadow: none!important
}
.settings-dialog {
	width: min(980px,calc(100vw - 28px));
	max-height: 90vh;
	border: 0;
	border-radius: 24px;
	padding: 0;
	background: #f8fafc;
	box-shadow: 0 35px 110px rgba(15,23,42,.34)
}
.settings-dialog::backdrop {
	background: rgba(15,23,42,.46);
	backdrop-filter: blur(5px)
}
.settings-modal-head {
	padding: 22px 26px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #fff;
	border-bottom: 1px solid var(--line)
}
.settings-modal-head h2 {
	margin: 3px 0
}
.settings-modal-body {
	padding: 22px;
	max-height: 72vh;
	overflow: auto
}
.modal-close {
	width: 42px!important;
	height: 42px;
	padding: 0!important;
	border-radius: 50%!important;
	background: #eef2f7!important;
	color: #334155!important;
	box-shadow: none!important;
	font-size: 25px
}
.settings-modal-body details {
	box-shadow: none!important
}
.settings-modal-body details+details {
	margin-top: 14px!important
}
@media(max-width:640px) {
	.settings-dialog {
		max-height: 94vh
	}
	.settings-modal-body {
		padding: 14px
	}
	.settings-button {
		font-size: 0
	}
}
/* v1.6.7 smooth modal scrolling */
html.modal-open,html.modal-open body {
	overflow: hidden
}
.settings-dialog {
	height: min(860px,90dvh);
	max-height: 90dvh;
	overflow: hidden;
	contain: layout paint;
	background: #fff;
	box-shadow: 0 18px 55px rgba(15,23,42,.24)
}
.settings-dialog::backdrop {
	background: rgba(15,23,42,.42);
	backdrop-filter: none!important;
	-webkit-backdrop-filter: none!important
}
.settings-modal-panel {
	height: 100%;
	max-height: none;
	overflow: hidden
}
.settings-modal-scroll {
	min-height: 0;
	overflow-y: auto;
	overflow-x: hidden;
	overscroll-behavior: contain;
	scrollbar-gutter: stable;
	-webkit-overflow-scrolling: touch;
	touch-action: pan-y;
	will-change: scroll-position
}
.settings-modal-body {
	max-height: none!important;
	overflow: visible!important;
	contain: layout style
}
.settings-modal-body .card {
	box-shadow: none!important;
	transform: none!important
}
.settings-modal-body button:hover {
	transform: none
}
.settings-modal-body details {
	content-visibility: auto;
	contain-intrinsic-size: 220px
}
.settings-modal-head {
	position: relative;
	z-index: 2;
	flex: 0 0 auto
}
.settings-dialog * {
	scroll-behavior: auto!important
}
@media(prefers-reduced-motion:reduce) {
	.settings-dialog * {
		transition: none!important;
		animation: none!important
	}
}
@media(max-width:700px) {
	.settings-dialog {
		height: 94dvh;
		max-height: 94dvh;
		width: calc(100vw - 16px)
	}
}
.history-dialog {
	width: min(1180px,calc(100vw - 28px));
	height: min(820px,90dvh);
	border: 0;
	border-radius: 24px;
	padding: 0;
	overflow: hidden
}
.history-dialog::backdrop {
	background: rgba(15,23,42,.42)
}
.history-panel {
	height: 100%;
	display: grid;
	grid-template-rows: auto minmax(0,1fr)
}
.history-body {
	min-height: 0;
	overflow: auto;
	padding: 22px
}
.history-filters {
	display: grid;
	grid-template-columns: 170px 170px minmax(240px,1fr) auto auto auto;
	gap: 10px;
	align-items: end
}
.history-filters label {
	display: flex;
	flex-direction: column;
	gap: 5px;
	font-size: 12px;
	font-weight: 750
}
.export-link {
	min-height: 43px;
	padding: 10px 14px;
	border: 1px solid var(--line);
	border-radius: 10px;
	text-decoration: none;
	color: #334155
}
.history-summary {
	display: flex;
	justify-content: space-between;
	margin: 18px 0 10px
}
.history-table-wrap {
	overflow: auto;
	border: 1px solid var(--line);
	border-radius: 14px
}
.history-table-wrap thead {
	position: sticky;
	top: 0
}
.history-empty {
	text-align: center;
	padding: 40px!important
}
@media(max-width:900px) {
	.history-filters {
		grid-template-columns: 1fr 1fr
	}
	.history-search {
		grid-column: 1/-1
	}
}
@media(max-width:600px) {
	.history-filters {
		grid-template-columns: 1fr
	}
	.history-search {
		grid-column: auto
	}
	.history-body {
		padding: 14px
	}
}
.proposal-export-actions {
	display: inline-flex;
	gap: 7px;
	margin-left: auto
}
.proposal-note {
	padding: 12px 14px;
	margin: 10px 0 14px;
	border: 1px solid #c7d2fe;
	border-radius: 12px;
	background: #eef2ff;
	color: #3730a3;
	font-size: 13px
}
@media(max-width:700px) {
	.proposal-export-actions {
		width: 100%;
		margin-left: 0
	}
	.proposal-export-actions .export-link {
		flex: 1
	}
}
.proposal-dialog {
	width: min(1280px,calc(100vw - 28px));
	height: min(850px,92dvh);
	border: 0;
	border-radius: 24px;
	padding: 0;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 18px 55px rgba(15,23,42,.24)
}
.proposal-dialog::backdrop {
	background: rgba(15,23,42,.42)
}
.proposal-panel {
	height: 100%;
	display: grid;
	grid-template-rows: auto minmax(0,1fr)
}
.proposal-body {
	min-height: 0;
	overflow: auto;
	padding: 22px;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch
}
.proposal-filters {
	display: grid;
	grid-template-columns: 160px 160px 190px minmax(260px,1fr) auto;
	gap: 10px;
	align-items: end
}
.proposal-filters label {
	display: flex;
	flex-direction: column;
	gap: 5px;
	font-size: 12px;
	font-weight: 750;
	color: #475569
}
.proposal-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	margin: 18px 0 10px
}
.proposal-toolbar>div:first-child {
	display: flex;
	flex-direction: column
}
.proposal-toolbar span {
	font-size: 12px;
	color: var(--muted)
}
.proposal-downloads {
	display: flex;
	gap: 8px
}
.proposal-table-wrap {
	overflow: auto;
	border: 1px solid var(--line);
	border-radius: 14px
}
.proposal-table-wrap thead {
	position: sticky;
	top: 0;
	z-index: 1
}
.proposal-table-wrap td small {
	display: block;
	color: var(--muted)
}
.proposal-badge {
	display: inline-flex;
	padding: 5px 8px;
	border-radius: 999px;
	font-size: 10px;
	font-weight: 850;
	white-space: nowrap
}
.proposal-badge.keep {
	color: #087f5b;
	background: #ecfdf5
}
.proposal-badge.cancel {
	color: #b4233b;
	background: #fff1f2
}
.proposal-safety {
	margin: 12px 0 0;
	padding: 11px 13px;
	border-radius: 10px;
	background: #f8fafc;
	color: #64748b;
	font-size: 12px
}
@media(max-width:1050px) {
	.proposal-filters {
		grid-template-columns: 1fr 1fr
	}
	.proposal-search {
		grid-column: 1/-1
	}
}
@media(max-width:650px) {
	.proposal-dialog {
		width: calc(100vw - 12px);
		height: 96dvh
	}
	.proposal-body {
		padding: 14px
	}
	.proposal-filters {
		grid-template-columns: 1fr
	}
	.proposal-search {
		grid-column: auto
	}
	.proposal-toolbar {
		align-items: stretch;
		flex-direction: column
	}
	.proposal-downloads .export-link {
		flex: 1
	}
}
/* v1.7.3 proposal polish */
.proposal-dialog {
	border-radius: 28px;
	background: #f6f8fc
}
.proposal-panel>.settings-modal-head {
	background: linear-gradient(135deg,#fff 0%,#f5f7ff 100%);
	padding: 26px 30px
}
.proposal-panel>.settings-modal-head h2 {
	font-size: 27px;
	letter-spacing: -.035em;
	margin: 4px 0
}
.proposal-body {
	padding: 24px 30px 30px
}
.proposal-filters {
	padding: 16px;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 5px 18px rgba(15,23,42,.04)
}
.proposal-filters label {
	display: flex!important;
	flex-direction: column!important;
	align-items: stretch!important;
	gap: 7px!important;
	min-width: 0
}
.proposal-filters input,.proposal-filters select {
	width: 100%!important
}
.proposal-kpis {
	display: grid;
	grid-template-columns: repeat(4,1fr);
	gap: 10px;
	margin: 16px 0
}
.proposal-kpis article {
	padding: 14px 16px;
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	background: #fff
}
.proposal-kpis span {
	display: block;
	color: #64748b;
	font-size: 11px;
	font-weight: 750;
	text-transform: uppercase;
	letter-spacing: .055em
}
.proposal-kpis b {
	display: block;
	margin-top: 3px;
	font-size: 24px;
	letter-spacing: -.04em
}
.proposal-kpis .kpi-keep {
	color: #087f5b
}
.proposal-kpis .kpi-cancel {
	color: #b4233b
}
.proposal-toolbar {
	padding: 3px 2px
}
.proposal-downloads .export-link:first-child {
	background: linear-gradient(135deg,#3157d5,#6d5dfc);
	border-color: transparent;
	color: #fff;
	box-shadow: 0 5px 14px rgba(49,87,213,.18)
}
.proposal-table-wrap {
	background: #fff;
	box-shadow: 0 8px 24px rgba(15,23,42,.04)
}
.proposal-table-wrap th {
	height: 44px
}
.proposal-table-wrap td {
	vertical-align: middle
}
.proposal-customer {
	min-width: 250px
}
.proposal-customer b,.proposal-customer small {
	display: block!important
}
.proposal-customer small {
	margin-top: 3px;
	color: #64748b!important;
	overflow-wrap: anywhere
}
.proposal-badge {
	letter-spacing: .025em
}
.proposal-safety {
	border: 1px solid #dbe3ef;
	background: #fff
}
@media(max-width:850px) {
	.proposal-kpis {
		grid-template-columns: 1fr 1fr
	}
	.proposal-body {
		padding: 18px
	}
}
@media(max-width:520px) {
	.proposal-kpis {
		grid-template-columns: 1fr 1fr
	}
	.proposal-panel>.settings-modal-head {
		padding: 20px
	}
	.proposal-kpis b {
		font-size: 20px
	}
}
/* v1.7.4 duplicate cancellation recommendations */
.duplicate-advice {
	padding: 14px 16px;
	margin: 10px 0 15px;
	border: 1px solid #bfdbfe;
	border-radius: 14px;
	background: linear-gradient(135deg,#eff6ff,#f5f3ff);
	color: #334155
}
.duplicate-decision-table .keep-row {
	background: #f0fdf8
}
.duplicate-decision-table .cancel-row {
	background: #fff
}
.duplicate-decision-table .cancel-row.selected-for-cancel {
	background: #fff7f8;
	box-shadow: inset 4px 0 #c9364f
}
.decision-chip {
	display: inline-flex;
	padding: 6px 9px;
	border-radius: 999px;
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .035em
}
.decision-chip.keep {
	color: #087f5b;
	background: #d1fae5
}
.decision-chip.cancel {
	color: #b4233b;
	background: #ffe4e8
}
.row-select-action {
	display: block;
	margin-top: 7px!important;
	padding: 6px 9px!important;
	font-size: 11px!important
}
.proposal-select-button {
	background: linear-gradient(135deg,#0f9f6e,#087f5b)!important;
	white-space: nowrap
}
.duplicate-decision-table input[type=checkbox] {
	accent-color: #c9364f
}
@media(max-width:720px) {
	.proposal-downloads {
		flex-wrap: wrap
	}
	.proposal-select-button {
		width: 100%
	}
}
.approval-upload {
	margin-top: 18px;
	padding: 18px;
	border: 1px solid #c7d2fe;
	border-radius: 16px;
	background: linear-gradient(135deg,#eef2ff,#f8fafc)
}
.approval-upload h3 {
	margin: 4px 0
}
.approval-upload p {
	margin: 4px 0 14px;
	color: #64748b
}
.approval-upload form {
	display: grid;
	grid-template-columns: 1fr 260px auto;
	gap: 10px;
	align-items: end
}
.approval-upload label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 12px;
	font-weight: 750
}
.approval-ready {
	display: flex;
	flex-direction: column;
	margin-top: 12px;
	padding: 12px;
	border-radius: 12px;
	background: #ecfdf5;
	color: #087f5b
}
.decision-chip.manual {
	background: #fff7ed;
	color: #b54708
}
@media(max-width:900px) {
	.approval-upload form {
		grid-template-columns: 1fr
	}
}
.manual-approved-row {
	background: #fff7ed!important;
	box-shadow: inset 4px 0 #d97706!important
}
.decision-chip.manual {
	color: #9a3412;
	background: #ffedd5
}
.approval-format-note {
	grid-column: 1/-1;
	padding: 10px 12px;
	border-radius: 10px;
	background: #fff;
	color: #475569;
	font-size: 12px;
	border: 1px solid #dbe3ef
}
.manual-decision-card {
	border: 1px solid #c7d2fe!important;
	background: linear-gradient(180deg,#f8faff,#fff)!important
}
.manual-groups {
	display: grid;
	gap: 10px;
	margin-top: 16px
}
.manual-group {
	border: 1px solid #dbe3ef;
	border-radius: 15px;
	background: #fff;
	overflow: hidden
}
.manual-group summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 15px 17px;
	cursor: pointer
}
.manual-group summary span:first-child {
	display: flex;
	flex-direction: column
}
.manual-group summary small {
	color: #64748b
}
.manual-source {
	padding: 5px 9px;
	border-radius: 999px;
	font-size: 10px;
	font-weight: 850
}
.manual-source.safe {
	background: #dcfce7;
	color: #087f5b
}
.manual-source.review {
	background: #ffedd5;
	color: #9a3412
}
.manual-options {
	display: grid;
	grid-template-columns: repeat(auto-fit,minmax(210px,1fr));
	gap: 10px;
	padding: 15px;
	background: #f8fafc;
	border-top: 1px solid #eef2f7
}
.manual-option>input {
	position: absolute;
	opacity: 0
}
.manual-radio-card {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-height: 115px;
	padding: 14px;
	border: 2px solid #e2e8f0;
	border-radius: 13px;
	background: #fff;
	cursor: pointer
}
.manual-option>input:checked+.manual-radio-card {
	border-color: #3157d5;
	background: #eef2ff;
	box-shadow: 0 0 0 3px rgba(49,87,213,.09)
}
.manual-keep-title {
	font-size: 10px;
	text-transform: uppercase;
	color: #64748b;
	font-weight: 850
}
.manual-result-note {
	padding: 10px 15px;
	color: #64748b;
	font-size: 12px
}
.manual-approval-bar {
	display: grid;
	grid-template-columns: minmax(220px,320px) auto;
	gap: 12px;
	align-items: end;
	margin-top: 15px;
	padding: 15px;
	border-radius: 14px;
	background: #eef2ff
}
.manual-approval-bar label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 12px;
	font-weight: 750
}
@media(max-width:700px) {
	.manual-group summary,.manual-approval-bar {
		display: grid;
		grid-template-columns: 1fr
	}
}
/* v2.3.0 left navigation and CSV data store */
.app-layout {
	display: grid;
	grid-template-columns: 260px minmax(0,1fr);
	min-height: 100vh
}
.app-main {
	min-width: 0
}
.side-nav {
	position: fixed;
	inset: 0 auto 0 0;
	width: 260px;
	background: linear-gradient(180deg,#111a32,#17213d);
	color: #fff;
	padding: 20px 14px;
	display: flex;
	flex-direction: column;
	z-index: 90;
	box-shadow: 8px 0 28px rgba(15,23,42,.12)
}
.side-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 4px 8px 22px;
	border-bottom: 1px solid rgba(255,255,255,.09)
}
.side-brand .brand-name {
	color: #fff
}
.side-brand .brand-sub {
	color: #94a3b8
}
.side-menu {
	display: grid;
	gap: 7px;
	margin-top: 18px
}
.side-link {
	width: 100%!important;
	display: grid!important;
	grid-template-columns: 24px 1fr auto;
	align-items: center;
	text-align: left;
	margin: 0!important;
	padding: 11px 12px!important;
	background: transparent!important;
	color: #cbd5e1!important;
	border: 1px solid transparent!important;
	box-shadow: none!important
}
.side-link:hover,.side-link.active {
	background: rgba(255,255,255,.09)!important;
	color: #fff!important;
	border-color: rgba(255,255,255,.08)!important;
	transform: none
}
.side-link b {
	min-width: 24px;
	padding: 2px 6px;
	border-radius: 999px;
	background: #3157d5;
	color: #fff;
	text-align: center;
	font-size: 10px
}
.side-footer {
	margin-top: auto;
	display: flex;
	justify-content: space-between;
	color: #94a3b8;
	padding: 14px 10px;
	border-top: 1px solid rgba(255,255,255,.09);
	font-size: 12px
}
.side-footer strong {
	color: #c7d2fe
}
.app-main {
	grid-column: 2
}
.topbar {
	padding: 0 24px!important
}
.top-context {
	display: flex;
	flex-direction: column
}
.top-context span {
	font-size: 11px;
	color: #64748b
}
.top-profile {
	display: flex;
	align-items: center;
	gap: 10px
}
.profile-chip {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 6px 10px;
	border: 1px solid var(--line);
	border-radius: 12px;
	background: #fff
}
.profile-chip small {
	display: block;
	color: #64748b;
	font-size: 10px
}
.profile-avatar {
	width: 30px;
	height: 30px;
	border-radius: 9px;
	display: grid;
	place-items: center;
	background: #eef2ff;
	color: #4338ca;
	font-weight: 900
}
.mobile-menu-toggle {
	display: none!important;
	width: 42px!important;
	height: 42px!important;
	padding: 0!important
}
.csv-store-form {
	display: grid;
	gap: 16px;
	margin-bottom: 24px
}
.csv-period {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px
}
.csv-period label,.csv-upload-grid label {
	display: flex;
	flex-direction: column;
	gap: 7px
}
.csv-upload-grid {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 12px
}
.csv-upload-grid label {
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 16px;
	background: #f8fafc
}
.csv-upload-grid small {
	color: #64748b
}
.import-kpis {
	display: grid;
	grid-template-columns: repeat(4,1fr);
	gap: 10px;
	margin-bottom: 18px
}
.import-kpis article {
	padding: 14px;
	border: 1px solid var(--line);
	border-radius: 14px;
	background: #fff
}
.import-kpis span {
	display: block;
	color: #64748b;
	font-size: 11px;
	text-transform: uppercase;
	font-weight: 800
}
.import-kpis b {
	font-size: 24px
}
.history-dialog::backdrop,.settings-dialog::backdrop,.proposal-dialog::backdrop {
	background: rgba(15,23,42,.42)!important
}
@media(max-width:1000px) {
	.app-layout {
		display: block
	}
	.app-main {
		grid-column: auto
	}
	.side-nav {
		transform: translateX(-105%);
		transition: transform .2s
	}
	.side-nav.open {
		transform: translateX(0)
	}
	.mobile-menu-toggle {
		display: grid!important;
		place-items: center
	}
	.top-context {
		display: none
	}
	.csv-upload-grid {
		grid-template-columns: 1fr
	}
	.import-kpis {
		grid-template-columns: 1fr 1fr
	}
}
@media(max-width:650px) {
	.profile-chip {
		display: none
	}
	.csv-period {
		grid-template-columns: 1fr
	}
	.topbar {
		padding: 0 12px!important
	}
	.import-kpis {
		grid-template-columns: 1fr 1fr
	}
}
/* v2.5.0 imported data browsers */
.data-browser-dialog {
	width: min(1500px,calc(100vw - 24px));
	height: min(900px,94dvh)
}
.data-browser-filters {
	display: grid;
	grid-template-columns: repeat(5,minmax(150px,1fr));
	gap: 10px;
	align-items: end;
	padding: 15px;
	border: 1px solid var(--line);
	border-radius: 15px;
	background: #f8fafc
}
.data-browser-filters label {
	display: flex;
	flex-direction: column;
	gap: 5px;
	font-size: 11px;
	font-weight: 800;
	color: #475569
}
.data-browser-filters .data-search {
	grid-column: span 2
}
.data-filter-actions {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
	grid-column: span 2
}
.data-outside {
	background: #fff7ed
}
.data-period-badge {
	display: inline-flex;
	padding: 3px 7px;
	border-radius: 999px;
	font-size: 9px;
	font-weight: 900
}
.data-period-badge.inside {
	background: #dcfce7;
	color: #166534
}
.data-period-badge.outside {
	background: #ffedd5;
	color: #9a3412
}
.raw-data summary {
	cursor: pointer;
	font-weight: 800;
	color: #3157d5
}
.raw-data pre {
	width: min(620px,70vw);
	max-height: 300px;
	overflow: auto;
	white-space: pre-wrap;
	background: #0f172a;
	color: #e2e8f0;
	padding: 12px;
	border-radius: 10px;
	font-size: 11px
}
.history-table-wrap small {
	color: #64748b
}
@media(max-width:1100px) {
	.data-browser-filters {
		grid-template-columns: 1fr 1fr 1fr
	}
	.data-browser-filters .data-search {
		grid-column: span 2
	}
}
@media(max-width:700px) {
	.data-browser-filters {
		grid-template-columns: 1fr
	}
	.data-browser-filters .data-search,.data-filter-actions {
		grid-column: auto
	}
}
/* v2.5.3 Billingo renormalization */
.renormalize-panel {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 20px;
	align-items: center;
	margin: 22px 0;
	padding: 18px;
	border: 1px solid #c7d2fe;
	border-radius: 15px;
	background: #eef2ff
}
.renormalize-panel h3 {
	margin: 0 0 6px
}
.renormalize-panel p {
	margin: 0;
	color: #475569
}
.renormalize-panel form {
	display: flex;
	gap: 8px;
	align-items: center
}
.renormalize-panel input {
	min-width: 190px
}
@media(max-width:760px) {
	.renormalize-panel {
		grid-template-columns: 1fr
	}
	.renormalize-panel form {
		flex-direction: column;
		align-items: stretch
	}
}
.data-period-badge.unknown {
	background: #e2e8f0;
	color: #475569
}
.data-date-missing {
	background: #f8fafc
}
/* v2.5.8 import replace/append selector */
.import-mode-choice {
	border: 1px solid #c7d2fe;
	border-radius: 14px;
	padding: 14px;
	background: #eef2ff
}
.import-mode-choice legend {
	padding: 0 7px;
	font-weight: 900;
	color: #3730a3
}
.import-mode-choice>label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 10px;
	border-radius: 10px;
	cursor: pointer
}
.import-mode-choice>label:hover {
	background: rgba(255,255,255,.7)
}
.import-mode-choice input {
	margin-top: 4px
}
.import-mode-choice span {
	display: flex;
	flex-direction: column;
	gap: 3px
}
.import-mode-choice small {
	color: #64748b
}
.date-coverage {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	align-items: center;
	margin: 12px 0;
	padding: 10px 12px;
	border: 1px solid #bae6fd;
	border-radius: 12px;
	background: #f0f9ff;
	color: #0c4a6e
}
.date-coverage span {
	padding: 4px 8px;
	border-radius: 999px;
	background: #fff;
	font-size: 11px
}
.annual-chunk-progress {
	min-width: 300px;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 6px 12px
}
.annual-chunk-progress .progress-track {
	grid-column: 1/-1;
	height: 9px;
	border-radius: 999px;
	background: #dbeafe;
	overflow: hidden
}
.annual-chunk-progress .progress-bar {
	height: 100%;
	width: 0;
	background: #3157d5
}
.annual-retry-panel {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
	margin: 12px 0;
	padding: 14px;
	border: 1px solid #fecaca;
	border-radius: 14px;
	background: #fff1f2
}
.annual-error-list {
	max-height: 280px;
	overflow: auto;
	padding: 12px;
	border: 1px solid #e2e8f0;
	border-radius: 12px
}
.annual-error-list>div {
	display: grid;
	grid-template-columns: 150px 1fr;
	gap: 10px;
	padding: 7px 0;
	border-bottom: 1px solid #e2e8f0
}
.annual-error-list span {
	font-size: 11px;
	color: #7f1d1d
}
/* v2.7.0 Billingo-Stripe reconciliation */
.reconciliation-dialog {
	width: min(1580px,calc(100vw - 22px));
	height: min(920px,95dvh)
}
.reconciliation-filters {
	display: grid;
	grid-template-columns: 160px 160px minmax(280px,1fr) 210px 110px auto auto;
	gap: 10px;
	align-items: end;
	padding: 15px;
	border: 1px solid var(--line);
	border-radius: 15px;
	background: #f8fafc
}
.reconciliation-filters label {
	display: flex;
	flex-direction: column;
	gap: 5px;
	font-size: 11px;
	font-weight: 800;
	color: #475569
}
.reconciliation-kpis {
	display: grid;
	grid-template-columns: repeat(5,1fr);
	gap: 10px;
	margin: 16px 0
}
.reconciliation-kpis article {
	padding: 14px;
	border: 1px solid var(--line);
	border-radius: 14px;
	background: #fff
}
.reconciliation-kpis span {
	display: block;
	color: #64748b;
	font-size: 10px;
	text-transform: uppercase;
	font-weight: 850
}
.reconciliation-kpis b {
	font-size: 24px
}
.reconciliation-kpis .good {
	color: #087f5b
}
.reconciliation-kpis .bad {
	color: #b4233b
}
.reconciliation-note {
	padding: 11px 13px;
	margin-bottom: 10px;
	border-radius: 11px;
	background: #eef2ff;
	color: #3730a3
}
.recon-badge {
	display: inline-flex;
	padding: 5px 8px;
	border-radius: 999px;
	font-size: 9px;
	font-weight: 900;
	white-space: nowrap
}
.recon-badge.exact {
	background: #dcfce7;
	color: #166534
}
.recon-badge.ambiguous {
	background: #fef3c7;
	color: #92400e
}
.recon-badge.no_invoice {
	background: #ffe4e6;
	color: #9f1239
}
.recon-badge.no_payment {
	background: #e0e7ff;
	color: #3730a3
}
.recon-badge.missing_email {
	background: #e2e8f0;
	color: #475569
}
.recon-row.no_invoice {
	background: #fff1f2
}
.recon-row.ambiguous {
	background: #fffbeb
}
@media(max-width:1100px) {
	.reconciliation-filters {
		grid-template-columns: 1fr 1fr 1fr
	}
	.recon-search {
		grid-column: span 2
	}
	.reconciliation-kpis {
		grid-template-columns: repeat(2,1fr)
	}
}
@media(max-width:700px) {
	.reconciliation-filters {
		grid-template-columns: 1fr
	}
	.recon-search {
		grid-column: auto
	}
	.reconciliation-kpis {
		grid-template-columns: 1fr 1fr
	}
}
/* v2.7.4 customer-ready reconciliation */
#reconciliation-modal.reconciliation-dialog {
	width: min(1760px,calc(100vw - 20px));
	max-width: none;
	height: min(980px,calc(100dvh - 20px));
	border-radius: 24px
}
#reconciliation-modal .history-panel {
	height: 100%;
	display: flex;
	flex-direction: column;
	background: #f8fafc
}
#reconciliation-modal .settings-modal-head {
	padding: 25px 30px;
	background: linear-gradient(135deg,#fff,#f3f6ff);
	border-bottom: 1px solid #dbe3f0
}
#reconciliation-modal .settings-modal-head h2 {
	font-size: 26px;
	margin: 0 0 7px;
	color: #172033
}
#reconciliation-modal .settings-modal-head p {
	margin: 0;
	color: #64748b
}
#reconciliation-modal .history-body {
	padding: 20px 22px 30px;
	overflow: auto
}
#reconciliation-modal .reconciliation-filters {
	position: sticky;
	top: 0;
	z-index: 5;
	grid-template-columns: 170px 170px minmax(280px,1fr) 220px 120px auto auto;
	padding: 17px 18px;
	border: 1px solid #dbe3f0;
	border-radius: 17px;
	background: rgba(255,255,255,.97);
	box-shadow: 0 10px 28px rgba(15,23,42,.08);
	backdrop-filter: blur(10px)
}
#reconciliation-modal .reconciliation-kpis {
	grid-template-columns: repeat(5,minmax(160px,1fr));
	gap: 12px;
	margin: 18px 0
}
#reconciliation-modal .reconciliation-kpis article {
	min-height: 84px;
	padding: 16px 18px;
	border-radius: 16px;
	box-shadow: 0 5px 16px rgba(15,23,42,.05)
}
#reconciliation-modal .history-table-wrap {
	overflow: auto;
	border: 1px solid #dbe3f0;
	border-radius: 17px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(15,23,42,.06)
}
#reconciliation-modal table {
	width: 100%;
	min-width: 1580px;
	border-collapse: separate;
	border-spacing: 0;
	table-layout: auto
}
#reconciliation-modal thead th {
	position: sticky;
	top: 0;
	z-index: 2;
	padding: 14px 13px;
	background: #eef2f7;
	color: #52627a;
	font-size: 10px;
	line-height: 1.25;
	letter-spacing: .06em;
	white-space: normal;
	border-bottom: 1px solid #dbe3f0
}
#reconciliation-modal tbody td {
	padding: 16px 13px;
	line-height: 1.45;
	vertical-align: top;
	border-bottom: 1px solid #edf1f6;
	color: #243147
}
#reconciliation-modal tbody tr:nth-child(even) {
	background: #fafcff
}
#reconciliation-modal tbody tr:hover {
	background: #f1f5ff
}
#reconciliation-modal td code {
	display: inline-block;
	max-width: 270px;
	padding: 5px 8px;
	border-radius: 8px;
	background: #eef2f7;
	color: #31415b;
	overflow-wrap: anywhere;
	word-break: break-word
}
#reconciliation-modal td small {
	display: block;
	margin-top: 4px;
	color: #64748b;
	overflow-wrap: anywhere
}
#reconciliation-modal tbody td:nth-child(1) {
	min-width: 145px
}
#reconciliation-modal tbody td:nth-child(2),#reconciliation-modal tbody td:nth-child(6) {
	min-width: 125px;
	white-space: nowrap
}
#reconciliation-modal tbody td:nth-child(3) {
	min-width: 285px
}
#reconciliation-modal tbody td:nth-child(4),#reconciliation-modal tbody td:nth-child(8) {
	min-width: 235px;
	overflow-wrap: anywhere
}
#reconciliation-modal tbody td:nth-child(5),#reconciliation-modal tbody td:nth-child(9) {
	min-width: 150px;
	white-space: nowrap;
	text-align: right;
	font-variant-numeric: tabular-nums
}
#reconciliation-modal tbody td:nth-child(7) {
	min-width: 175px
}
#reconciliation-modal tbody td:nth-child(10) {
	min-width: 285px;
	color: #475569
}
#reconciliation-modal tbody td:nth-child(11) {
	min-width: 100px
}
#reconciliation-modal .raw-data pre {
	max-width: 760px;
	max-height: 380px;
	overflow: auto;
	border-radius: 12px
}
#reconciliation-modal .recon-export-note {
	grid-column: 1/-1;
	color: #64748b;
	font-size: 10px;
	padding-left: 2px
}
@media(max-width:1300px) {
	#reconciliation-modal.reconciliation-dialog {
		width: calc(100vw - 12px);
		height: calc(100dvh - 12px)
	}
	#reconciliation-modal .reconciliation-filters {
		grid-template-columns: repeat(3,minmax(180px,1fr))
	}
}
@media(max-width:760px) {
	#reconciliation-modal .reconciliation-filters {
		position: static;
		grid-template-columns: 1fr
	}
	#reconciliation-modal .reconciliation-kpis {
		grid-template-columns: 1fr 1fr
	}
	#reconciliation-modal .history-body {
		padding: 12px
	}
}
/* v2.8.0 three-source reconciliation */
#reconciliation-modal .reconciliation-kpis {
	grid-template-columns: repeat(6,minmax(145px,1fr))
}
#reconciliation-modal table {
	min-width: 2150px
}
#reconciliation-modal tbody td:nth-child(10) {
	min-width: 125px;
	white-space: nowrap
}
#reconciliation-modal tbody td:nth-child(11) {
	min-width: 230px
}
#reconciliation-modal tbody td:nth-child(12) {
	min-width: 220px;
	overflow-wrap: anywhere
}
#reconciliation-modal tbody td:nth-child(13) {
	min-width: 145px;
	text-align: right;
	white-space: nowrap;
	font-variant-numeric: tabular-nums
}
#reconciliation-modal tbody td:nth-child(14) {
	min-width: 285px
}
/* v2.8.4 Laravel Billingo ID audit */
.laravel-billingo-id {
	display: block;
	margin-top: 7px;
	padding: 6px 8px;
	border-radius: 8px;
	background: #eef2ff;
	color: #3730a3;
	font-size: 10px;
	line-height: 1.35
}
.identity-mismatch {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-top: 8px;
	padding: 9px;
	border: 1px solid #fecaca;
	border-radius: 10px;
	background: #fff1f2;
	color: #9f1239;
	font-size: 10px
}
.identity-mismatch span {
	display: block;
	color: #7f1d1d
}
/* v2.9.1 kézi csoportos stornózás */
.manual-bulk-dialog {
	width: min(1600px, calc(96vw - 24px));
	height: min(930px,95dvh);
	max-height: 95dvh;
	background: #f6f8fc;
	border: 0;
	border-radius: 26px;
	padding: 0;
	overflow: hidden;
	box-shadow: 0 24px 80px rgba(15,23,42,.28)
}
@media (min-width: 1101px) {
	.manual-bulk-dialog {
		width: min(1600px, calc(96vw - 24px));
		max-width: calc(96vw - 24px);
	}
}
.manual-bulk-dialog::backdrop {
	background: rgba(15,23,42,.48);
	backdrop-filter: blur(4px)
}
.manual-bulk-dialog .history-panel {
	height: 100%;
	grid-template-rows: auto minmax(0,1fr)
}
.manual-bulk-dialog .settings-modal-head {
	padding: 22px 28px;
	background: linear-gradient(135deg,#fff,#f5f7ff)
}
.manual-bulk-dialog .settings-modal-head h2 {
	font-size: 26px;
	letter-spacing: -.035em
}
.manual-bulk-body {
	display: grid;
	gap: 18px;
	padding: 22px 28px 30px;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch
}
.manual-bulk-warning {
	padding: 13px 16px;
	border: 1px solid #f5c27a;
	border-radius: 13px;
	background: #fff8eb;
	color: #854d0e;
	font-size: 13px
}
.manual-bulk-section {
	min-width: 0;
	padding: 17px;
	border: 1px solid #e1e7f0;
	border-radius: 17px;
	background: #fff;
	box-shadow: 0 5px 18px rgba(15,23,42,.035)
}
.manual-bulk-section-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 15px;
	margin-bottom: 14px
}
.manual-bulk-section-head h3 {
	margin: 0 0 4px;
	font-size: 16px;
	letter-spacing: -.02em
}
.manual-bulk-section-head p {
	margin: 0;
	color: #64748b;
	font-size: 12px
}
.manual-bulk-source-count {
	flex: 0 0 auto;
	padding: 6px 9px;
	border-radius: 999px;
	background: #eef2ff;
	color: #3730a3;
	font-size: 11px;
	font-weight: 800
}
.manual-bulk-filters {
	display: grid;
	grid-template-columns: minmax(250px,2fr) repeat(3,minmax(135px,1fr));
	gap: 10px;
	align-items: end
}
.manual-bulk-filters label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	color: #475569;
	font-size: 11px;
	font-weight: 800
}
.manual-bulk-filters input,.manual-bulk-filters select {
	width: 100%;
	min-width: 0
}
.manual-bulk-list-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin: 14px 0 9px;
	color: #64748b;
	font-size: 12px
}
.manual-bulk-check-all {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 750;
	color: #334155
}
.manual-bulk-check-all input,.manual-bulk-table input[type=checkbox] {
	width: 18px;
	height: 18px;
	min-height: 18px;
	padding: 0!important;
	accent-color: #3157d5
}
.manual-bulk-table-wrap {
	max-height: 340px;
	overflow: auto;
	border-radius: 13px
}
.manual-bulk-table {
	min-width: 800px;
	background: #fff
}
.manual-bulk-table thead {
	position: sticky;
	top: 0;
	z-index: 2
}
.manual-bulk-table th {
	white-space: nowrap
}
.manual-bulk-table td {
	vertical-align: middle;
	font-size: 12px
}
.manual-bulk-table td strong,.manual-bulk-subline {
	display: block
}
.manual-bulk-subline {
	margin-top: 3px;
	color: #64748b;
	font-size: 10px;
	overflow-wrap: anywhere
}
.manual-bulk-status {
	display: inline-flex;
	padding: 5px 8px;
	border-radius: 999px;
	font-size: 10px;
	font-weight: 850;
	white-space: nowrap
}
.manual-bulk-status.is-active {
	background: #dcfce7;
	color: #166534
}
.manual-bulk-status.is-cancelled {
	background: #ffe4e6;
	color: #9f1239
}
.manual-bulk-status.is-pending {
	background: #eef2ff;
	color: #3730a3
}
.manual-bulk-table tr[hidden] {
	display: none!important
}
.manual-bulk-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 9px;
	margin-top: 13px
}
.manual-bulk-actions button {
	min-height: 42px
}
#bulk-manual-identifiers {
	display: block;
	width: 100%;
	resize: vertical;
	min-height: 100px;
	padding: 12px;
	border: 1px solid #cbd5e1;
	border-radius: 12px;
	background: #fff;
	font: 13px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace
}
.manual-bulk-message {
	min-height: 20px;
	margin-top: 10px;
	color: #166534;
	font-size: 12px;
	overflow-wrap: anywhere
}
.manual-bulk-message.has-error {
	color: #b42318
}
.manual-bulk-execute-actions {
	padding-top: 14px;
	border-top: 1px solid #edf1f6
}
.manual-bulk-execute-actions .danger {
	background: linear-gradient(135deg,#c9364f,#a61b36)!important
}
.manual-bulk-execution {
	margin-top: 16px;
	padding: 14px;
	border: 1px solid #dbe3f0;
	border-radius: 13px;
	background: #f8fafc
}
.manual-bulk-progress {
	height: 8px;
	overflow: hidden;
	border-radius: 99px;
	background: #e2e8f0
}
.manual-bulk-progress span {
	display: block;
	width: 0;
	height: 100%;
	border-radius: 99px;
	background: linear-gradient(90deg,#3157d5,#6d5dfc);
	transition: width .2s
}
.manual-bulk-execution p {
	margin: 9px 0;
	color: #475569;
	font-size: 12px;
	font-weight: 800
}
.manual-bulk-log {
	display: grid;
	gap: 5px;
	max-height: 190px;
	overflow: auto;
	font-size: 12px
}
.manual-bulk-log-ok,.manual-bulk-log-error {
	padding: 7px 9px;
	border-radius: 8px;
	overflow-wrap: anywhere
}
.manual-bulk-log-ok {
	background: #ecfdf3;
	color: #067647
}
.manual-bulk-log-error {
	background: #fef3f2;
	color: #b42318
}
@media(max-width:1000px) {
	.manual-bulk-filters {
		grid-template-columns: 1fr 1fr
	}
	.manual-bulk-search {
		grid-column: 1/-1
	}
}
@media(max-width:650px) {
	.manual-bulk-dialog {
		width: calc(100vw - 10px);
		height: 97dvh;
		max-height: 97dvh;
		border-radius: 17px
	}
	.manual-bulk-dialog .settings-modal-head {
		padding: 17px
	}
	.manual-bulk-body {
		padding: 12px;
		gap: 12px
	}
	.manual-bulk-section {
		padding: 12px
	}
	.manual-bulk-section-head {
		flex-direction: column
	}
	.manual-bulk-filters {
		grid-template-columns: 1fr
	}
	.manual-bulk-search {
		grid-column: auto
	}
	.manual-bulk-actions {
		display: grid;
		grid-template-columns: 1fr
	}
	.manual-bulk-actions button {
		width: 100%
	}
	.manual-bulk-list-toolbar {
		align-items: flex-start;
		flex-direction: column
	}
}
/* Csoportos stornózás: időszakos számlabetöltés */
.manual-bulk-load-form {
	display: grid;
	grid-template-columns: minmax(180px, 220px) minmax(180px, 220px) auto;
	align-items: end;
	justify-content: start;
	gap: 12px;
	margin: 14px 0 18px;
	padding: 14px;
	border: 1px solid #dbe4f0;
	border-radius: 12px;
	background: #f8faff;
}
.manual-bulk-load-field {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 7px;
}
.manual-bulk-load-field label {
	color: #334155;
	font-size: 12px;
	font-weight: 750;
}
.manual-bulk-load-field input {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}
#bulk-load-start {
	min-height: 43px;
	align-self: end;
	white-space: nowrap;
	background: linear-gradient(135deg, #174ea6, #3157d5) !important;
	color: #ffffff !important;
	font-size: 13px;
	font-weight: 800 !important;
	line-height: 1.3;
	padding: 11px 18px !important;
	border: 1px solid #174ea6 !important;
	box-shadow: 0 5px 14px rgba(49, 87, 213, .22);
}
#bulk-load-start:disabled {
	background: #64748b !important;
	color: #ffffff !important;
	opacity: .75;
}
@media (max-width: 760px) {
	.manual-bulk-load-form {
		grid-template-columns: minmax(0, 1fr);
	}
	#bulk-load-start {
		width: 100%;
		white-space: normal;
	}
}


/* v2.9.17.4: consistent, accessible business UI button styles */
button,
button[type="button"],
button[type="submit"],
button[type="reset"],
input[type="button"],
input[type="submit"],
input[type="reset"],
a.button,
.button,
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 40px;
	max-width: 100%;
	padding: 10px 16px;
	border: 1px solid transparent;
	border-radius: 10px;
	background: linear-gradient(135deg, var(--brand), var(--brand2));
	color: #fff;
	font: inherit;
	font-weight: 750;
	line-height: 1.25;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	overflow-wrap: anywhere;
	cursor: pointer;
	transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

button *,
input[type="button"] *,
input[type="submit"] *,
input[type="reset"] *,
a.button *,
.button *,
.btn * {
	color: inherit;
}

button:hover,
button[type="button"]:hover,
button[type="submit"]:hover,
button[type="reset"]:hover,
input[type="button"]:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
a.button:hover,
.button:hover,
.btn:hover {
	filter: brightness(1.04);
	box-shadow: 0 5px 14px rgba(49, 87, 213, .2);
}

button:focus-visible,
input[type="button"]:focus-visible,
input[type="submit"]:focus-visible,
input[type="reset"]:focus-visible,
a.button:focus-visible,
.button:focus-visible,
.btn:focus-visible {
	outline: 3px solid rgba(99, 102, 241, .35);
	outline-offset: 2px;
}

button:disabled,
input[type="button"]:disabled,
input[type="submit"]:disabled,
input[type="reset"]:disabled,
button[disabled],
.button:disabled,
.btn:disabled {
	opacity: .6;
	cursor: not-allowed;
	filter: none;
	box-shadow: none;
}

button.secondary,
.secondary,
button.settings-button,
.settings-button,
button.logout-button,
.logout-button {
	background: #fff;
	color: #334155;
	border-color: var(--line);
	box-shadow: none;
}

button.danger,
.danger {
	background: linear-gradient(135deg, #c9364f, #a61b36);
	color: #fff;
}

button.success,
.success {
	background: linear-gradient(135deg, #0f9f6e, #087f5b);
	color: #fff;
}

@media (max-width: 720px) {
	button,
	button[type="button"],
	button[type="submit"],
	button[type="reset"],
	input[type="button"],
	input[type="submit"],
	input[type="reset"],
	a.button,
	.button,
	.btn {
		min-height: 42px;
		padding: 10px 12px;
	}
}


/* v2.9.17.4: high-visibility live mode and account management */
.top-profile {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 14px;
	min-width: 0;
}

.mode-pill.mode-critical {
	background: #b91c1c !important;
	color: #fff !important;
	border: 2px solid #7f1d1d !important;
	box-shadow: 0 0 0 4px rgba(185, 28, 28, .15), 0 5px 18px rgba(127, 29, 29, .22);
	font-weight: 900;
	letter-spacing: .035em;
	padding: 10px 14px;
	white-space: normal;
	text-align: center;
	max-width: 330px;
	animation: live-warning-pulse 2.2s ease-in-out infinite;
}
.mode-pill.mode-critical span { color: #fff !important; }
@keyframes live-warning-pulse {
	0%, 100% { box-shadow: 0 0 0 3px rgba(185, 28, 28, .12), 0 5px 18px rgba(127, 29, 29, .18); }
	50% { box-shadow: 0 0 0 6px rgba(185, 28, 28, .2), 0 5px 20px rgba(127, 29, 29, .28); }
}
.account-menu { position: relative; }
.account-menu > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 7px 10px; border-radius: 12px; }
.account-menu > summary::-webkit-details-marker { display: none; }
.account-menu[open] > summary, .account-menu > summary:hover { background: #eef2ff; }
.account-dropdown {
	position: absolute; z-index: 10000; top: calc(100% + 12px); right: 0;
	width: min(390px, calc(100vw - 28px)); max-height: min(78vh, 760px); overflow: auto;
	padding: 20px; background: #fff; color: #172033; border: 1px solid #dbe3ef;
	border-radius: 16px; box-shadow: 0 20px 60px rgba(15, 23, 42, .24);
}
.account-dropdown h3 { margin: 0 0 12px; font-size: 15px; }
.account-dropdown hr { border: 0; border-top: 1px solid #e5eaf2; margin: 18px 0; }
.account-form { display: grid; gap: 10px; }
.account-form label { display: grid; gap: 5px; font-size: 12px; font-weight: 750; color: #475569; }
.account-form input { width: 100%; min-width: 0; box-sizing: border-box; padding: 10px 12px; border: 1px solid #cbd5e1; border-radius: 9px; background: #fff; color: #172033; font: inherit; }
.account-form button, .logout-form button { width: 100%; min-height: 42px; background: #174ea6; color: #fff; border: 0; border-radius: 9px; font-weight: 800; cursor: pointer; }
.logout-form { margin-top: 18px; }
.account-warning { padding: 10px; background: #fff7ed; border: 1px solid #fdba74; border-radius: 9px; color: #9a3412; font-size: 13px; }
.admin-list { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.7; }
@media (max-width: 1000px) {
	.top-profile { gap: 8px; }
	.mode-pill.mode-critical { max-width: 220px; font-size: 11px; }
}
@media (max-width: 720px) {
	.top-profile { flex-wrap: wrap; }
	.account-dropdown { right: -8px; }
}

/* v2.9.17.4: account dropdown is navigation, not an embedded settings form */
.account-nav { display: grid; gap: 8px; }
.account-nav > a {
	display: flex;
	align-items: center;
	min-height: 42px;
	padding: 11px 13px;
	border: 1px solid #e0e7f2;
	border-radius: 9px;
	background: #fff;
	color: #174ea6;
	font-weight: 800;
	text-decoration: none;
}
.account-nav > a:hover { background: #eff6ff; border-color: #93c5fd; }
.account-nav .logout-form { margin-top: 8px; }

/* v2.9.17.4: admin pages inherit the shared application shell */
.management-content { min-height: calc(100vh - 160px); }
.management-hero { margin-bottom: 22px; }
.management-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 22px; }
.management-tabs a { display:inline-flex; align-items:center; min-height:40px; padding:9px 14px; border:1px solid var(--line, #dbe3ef); border-radius:10px; color:#334155; background:#fff; text-decoration:none; font-weight:800; }
.management-tabs a.active { background:#174ea6; border-color:#174ea6; color:#fff; }
.management-card { margin-bottom:20px; }
.management-card h2 { margin:4px 0 0; }
.management-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:20px; }
.management-form label { display:grid; gap:7px; color:#475569; font-size:13px; font-weight:750; }
.management-form input { width:100%; min-width:0; box-sizing:border-box; padding:12px; border:1px solid #cbd5e1; border-radius:9px; background:#fff; color:#172033; font:inherit; }
.management-form .full { grid-column:1/-1; }
.form-actions { display:flex; justify-content:flex-start; }
.management-form button { min-width:190px; }
.notice { padding:13px 16px; border-radius:10px; margin:14px 0; }
.notice.success { background:#ecfdf3; border:1px solid #86efac; color:#166534; }
.notice.error { background:#fff1f2; border:1px solid #fda4af; color:#9f1239; }
.management-table { width:100%; border-collapse:collapse; }
.management-table th,.management-table td { text-align:left; padding:13px; border-bottom:1px solid #e5eaf2; white-space:nowrap; }
.management-table th { font-size:11px; letter-spacing:.04em; color:#64748b; background:#f8fafc; }
.table-responsive { overflow-x:auto; }
.count-pill { display:inline-flex; padding:6px 10px; border-radius:999px; background:#eef2ff; color:#3730a3; font-weight:800; font-size:12px; }
.status-pill { display:inline-flex; padding:5px 9px; border-radius:999px; font-size:12px; font-weight:800; }
.status-ok { background:#dcfce7; color:#166534; }
.status-off { background:#fee2e2; color:#991b1b; }
.app-footer { display:flex; justify-content:space-between; gap:12px; padding:18px 24px; border-top:1px solid #e5eaf2; color:#64748b; font-size:12px; }
.side-menu a.side-link { text-decoration:none; }
@media(max-width:700px) { .management-form { grid-template-columns:1fr; } .management-form .full { grid-column:auto; } .app-footer { flex-direction:column; } }

/* v2.9.17.4 hotfix: keep admin navigation links visually identical to sidebar buttons */
.side-menu a.side-link { display:flex; align-items:center; gap:12px; width:100%; box-sizing:border-box; border:1px solid transparent; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.side-menu a.side-link:hover { background:rgba(255,255,255,.08); }

/* v2.9.17.4.2: consistent sidebar icon grid, left-aligned labels and independent scrolling */
.side-nav {
    height: 100vh;
    height: 100dvh;
    box-sizing: border-box;
    overflow: hidden;
}
.side-menu {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    align-content: start;
    padding: 0 5px 12px 0;
    scrollbar-width: thin;
    scrollbar-color: rgba(203,213,225,.55) transparent;
}
.side-menu::-webkit-scrollbar { width: 7px; }
.side-menu::-webkit-scrollbar-track { background: transparent; }
.side-menu::-webkit-scrollbar-thumb { background: rgba(203,213,225,.45); border-radius: 999px; }
.side-link {
    display: grid !important;
    grid-template-columns: 24px minmax(0,1fr) auto !important;
    align-items: center !important;
    justify-content: initial !important;
    gap: 10px !important;
    text-align: left !important;
}
.side-link .side-icon {
    display: inline-flex;
    width: 24px;
    min-width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    line-height: 1;
    font-style: normal;
}
.side-link .side-label {
    display: block;
    min-width: 0;
    text-align: left;
    line-height: 1.3;
    overflow-wrap: anywhere;
}
.side-link b { justify-self: end; }
.side-menu a.side-link { text-decoration: none; }
.side-footer { flex: 0 0 auto; margin-top: 8px; }


/* v2.9.22 responsive tablet and touch support */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
img, canvas, video, iframe { max-width: 100%; }
input, select, textarea, button { font: inherit; }
button, input[type="button"], input[type="submit"], a, summary, select { touch-action: manipulation; }
:where(button, input, select, textarea, a, summary):focus-visible { outline: 3px solid #7c9cff; outline-offset: 2px; }
.app-layout { grid-template-columns: 260px minmax(0, 1fr); }
.app-main, .wrap, .card, .panel, .table-responsive { min-width: 0; }
.table-responsive, .table-wrap, .dataTables_wrapper { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
table { max-width: 100%; }
input, select, textarea { max-width: 100%; }
button, input[type="submit"], .btn, .side-link { min-height: 42px; }
dialog { max-width: min(960px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: auto; }

@media (min-width: 701px) and (max-width: 1100px) {
  .app-layout { grid-template-columns: minmax(0, 1fr) !important; }
  .app-main { grid-column: 1 !important; width: 100%; }
  .side-nav {
    width: min(320px, 86vw);
    max-width: 86vw;
    transform: translateX(-110%);
    visibility: hidden;
    transition: transform .22s ease, visibility .22s ease;
    box-shadow: 12px 0 40px rgba(15,23,42,.24);
  }
  .side-nav.open { transform: translateX(0); visibility: visible; }
  .mobile-menu-toggle { display: inline-flex !important; align-items: center; justify-content: center; flex: 0 0 44px; }
  .topbar { gap: 12px; padding: 0 18px !important; }
  .top-context { margin-right: auto; }
  .wrap { padding-left: 20px; padding-right: 20px; }
  .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-grid, .csv-upload-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .management-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card { overflow-wrap: anywhere; }
}

@media (max-width: 700px) {
  .app-layout { display: block !important; }
  .app-main { grid-column: auto !important; width: 100%; }
  .side-nav {
    width: min(320px, 88vw);
    max-width: 88vw;
    transform: translateX(-110%);
    visibility: hidden;
    transition: transform .22s ease, visibility .22s ease;
  }
  .side-nav.open { transform: translateX(0); visibility: visible; }
  .mobile-menu-toggle { display: inline-flex !important; align-items: center; justify-content: center; flex: 0 0 44px; }
  .topbar { gap: 8px; padding: 0 12px !important; }
  .top-context b { font-size: 14px; }
  .top-context span { display: none; }
  .top-profile { gap: 5px; min-width: 0; }
  .profile-label { display: none; }
  .profile-chip { padding: 4px; }
  .wrap { padding: 18px 12px 32px !important; }
  .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-grid, .csv-upload-grid, .csv-period, .management-form { grid-template-columns: minmax(0, 1fr) !important; }
  .management-form .full { grid-column: auto !important; }
  .form-actions { flex-wrap: wrap; }
  .form-actions > *, .management-form button { max-width: 100%; }
  .table-responsive table, .table-wrap table { min-width: 620px; }
  .app-footer { padding: 16px; }
  dialog { width: calc(100vw - 20px); max-width: calc(100vw - 20px); padding: 16px; }
  .modal-actions, .dialog-actions { display: flex; flex-wrap: wrap; gap: 8px; }
  .modal-actions > *, .dialog-actions > * { flex: 1 1 140px; }
}

@media (hover: none) and (pointer: coarse) {
  button, input[type="button"], input[type="submit"], .btn, .side-link, select, summary { min-height: 44px; }
  .side-link { padding-top: 12px !important; padding-bottom: 12px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .side-nav { transition: none !important; }
}


/* v2.9.25 – széles, adatgazdag ablakok asztali nézetben */
@media (min-width: 761px) {
  #data-browser-modal.history-dialog,
  #annual-stripe-modal.history-dialog,
  #csv-store-modal.history-dialog,
  #annual-modal.history-dialog,
  #scan-modal.history-dialog,
  #history-modal.history-dialog,
  #reconciliation-modal.history-dialog {
    width: min(1700px, calc(96vw - 16px)) !important;
    max-width: calc(96vw - 16px) !important;
    margin: auto;
  }
  #data-browser-modal.history-dialog,
  #annual-stripe-modal.history-dialog,
  #csv-store-modal.history-dialog,
  #annual-modal.history-dialog,
  #scan-modal.history-dialog,
  #history-modal.history-dialog {
    height: min(930px, 94dvh);
    max-height: 94dvh;
  }
}
@media (max-width: 760px) {
  #data-browser-modal.history-dialog,
  #annual-stripe-modal.history-dialog,
  #csv-store-modal.history-dialog,
  #annual-modal.history-dialog,
  #scan-modal.history-dialog,
  #history-modal.history-dialog,
  #reconciliation-modal.history-dialog {
    width: calc(100vw - 12px) !important;
    max-width: calc(100vw - 12px) !important;
  }
}
