:root {
	/* Egységes szélesség az űrlap-/beállítás-/szerkesztő oldalaknak.
	   100% = kitölti a Bootstrap .container-t (nincs extra megkötés).
	   Ha valódi, teljes viewport-szélességet akarsz, a layout .container-jét
	   kell container-fluid-ra cserélni. */
	--app-page-max: 100%;
}

body {
	background-color: #f4f6f8 !important;
	color: #172331;
	font-family: Poppins, system-ui, -apple-system, "Segoe UI", sans-serif;
}
a {
	color: #20d489;
	font-weight: 600;
}
.logo {
	color: #000 !important;
	font-weight: 700 !important;
	font-size: 1.5rem;
	font-family: Poppins, Helvetica, "sans-serif";
	padding-right: 20px;
}
.logo span {
	color: #20d489;
}
.logo.logo-login {
	font-size: 1.8rem;
}
header {
	background: #fff;
}

/* Frontend application frame */
.frontend-header {
	z-index: 1030;
	padding: .7rem 0;
	border-bottom: 1px solid rgba(32, 212, 137, .55);
	background: rgba(255,255,255,.96);
	box-shadow: 0 .35rem 1.35rem rgba(23,35,49,.09), inset 0 -2px 0 rgba(32,212,137,.08);
	backdrop-filter: blur(12px);
}
.frontend-navbar { display: flex; align-items: center; gap: 1rem; min-height: 48px; -webkit-user-select: none; user-select: none; }
.frontend-logo { flex: 0 0 auto; margin: 0 1rem 0 0 !important; padding-right: 0 !important; }
.frontend-nav { align-items: center; gap: .2rem; }
.frontend-nav .nav-link {
	padding: .55rem .75rem;
	border-radius: .5rem;
	color: #52606d;
	font-size: .9rem;
	font-weight: 600;
	transition: color .15s ease, background-color .15s ease;
}
.frontend-nav .nav-link:hover, .frontend-nav .nav-link:focus { background: #f0f4f2; color: #172331; }
.frontend-nav .nav-link.active { background: #e8f8f0; color: #138252; }
.frontend-header .dropdown-menu {
	margin-top: .6rem !important;
	padding: .5rem;
	border: 1px solid #e3e8ec;
	border-radius: .7rem;
	box-shadow: 0 .75rem 2rem rgba(23,35,49,.13);
}
.frontend-header .dropdown-item { padding: .55rem .7rem; border-radius: .4rem; color: #34414d; font-size: .88rem; font-weight: 500; }
.frontend-header .dropdown-item:hover, .frontend-header .dropdown-item:focus { background: #eaf8f1; color: #137a4e; }
.frontend-company-switcher { flex: 0 1 250px; margin: 0 .75rem 0 .75rem; }
.frontend-company-switcher .form-select {
	min-height: 42px;
	border-color: #dce3e7;
	border-radius: .55rem;
	background-color: #f8faf9;
	color: #34414d;
	font-size: .82rem;
	font-weight: 550;
}
.frontend-user-menu { flex: 0 0 auto; }
.frontend-user-trigger { display: flex; align-items: center; gap: .25rem; color: #66727f; }
.frontend-mobile-label { display: none; }
.frontend-create-invoice { flex: 0 0 auto; margin-left: .75rem; }
.frontend-create-invoice .btn { font-size: .84rem; font-weight: 650; }
.frontend-add-company { flex: 0 0 auto; margin-left: .35rem; padding-right: .7rem; padding-left: .7rem; font-weight: 700; }
.frontend-navbar-toggler { margin-left: auto; border-color: #cfe1d8; }
.frontend-navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(32,212,137,.14); }
.frontend-user-avatar {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border: 2px solid #ccefe0;
	border-radius: 50%;
	background: #e6f8f0;
	color: #137a4e;
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .03em;
}
.frontend-main { width: 100%; padding-top: 1rem; }
.frontend-main > .container { padding-bottom: 2rem; }
.frontend-main .breadcrumb { padding: .55rem 0; background: transparent; color: #7a8691; font-size: .8rem; }
.frontend-main .breadcrumb a { color: #617383; }

/* Shared frontend surfaces */
.frontend-body .box-white,
.frontend-body .card {
	border: 1px solid #dce3e8 !important;
	border-radius: .75rem;
	background: #fff;
	box-shadow: 0 .45rem 1.5rem rgba(23,35,49,.075);
}
.frontend-body .box-white { overflow: hidden; margin-bottom: 1.5rem; padding: 0 1.25rem 1.5rem; }
.frontend-body .box-title {
	margin: 0 -1.25rem 0.75rem;
	padding: .9rem 1.25rem;
	border-bottom: 1px solid #dfe6ea;
	background: #f7f9fa;
	color: #172331;
	font-size: 1.02rem;
	font-weight: 700;
}
.frontend-body .box-title + .row > hr { display: none; }
.frontend-body .page-title { margin: 1.25rem 0 1.5rem; color: #172331; font-weight: 750; letter-spacing: -.025em; }
.frontend-body .form-control,
.frontend-body .form-select {
	min-height: 42px;
	border-color: #cbd5dc;
	border-radius: .5rem;
	background-color: #fbfcfd;
	box-shadow: inset 0 1px 2px rgba(23,35,49,.025);
	transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
/* A fájlválasztó gomb természetes magasságát ne növelje üres alsó sáv. */
.frontend-body .form-control[type="file"] { min-height: auto; }
.frontend-body .form-control:hover,
.frontend-body .form-select:hover { border-color: #aebbc4; }
.frontend-body .form-control:focus,
.frontend-body .form-select:focus {
	border-color: #43c88f;
	background-color: #fff;
	box-shadow: 0 0 0 .2rem rgba(32,212,137,.14);
}
.frontend-body .form-label,
.frontend-body .form-group > label,
.frontend-body .form-group label.def {
	margin-bottom: .4rem;
	color: #3d4b57;
	font-size: .84rem;
	font-weight: 650;
}
.frontend-body .form-group { margin-bottom: .6rem; }
.frontend-body .form-group:last-child { margin-bottom: 0; }
.frontend-body .input-group-text {
	border-color: #cbd5dc;
	background: #f1f4f6;
	color: #667580;
}
.frontend-body .select2-container--krajee-bs5 .select2-selection,
.frontend-body .select2-container--krajee .select2-selection {
	border-color: #cbd5dc;
	border-radius: .5rem;
	background-color: #fbfcfd;
	box-shadow: inset 0 1px 2px rgba(23,35,49,.025);
}
/*
 * Asztali űrlap-tipográfia: a beírt érték és a placeholder kisebb betűmérettel,
 * hogy arányban legyen a 42px-es mezőmagassággal és a .84rem-es címkékkel.
 * Mobilon szándékosan marad a Bootstrap 16px-e (iOS fókusz-zoom elkerülése).
 * Hangolás: az alábbi .875rem értéket módosítva (pl. .9375rem = 15px).
 */
@media (min-width: 992px) {
	.frontend-body .form-control,
	.frontend-body .form-select,
	.frontend-body .input-group-text,
	.frontend-body .select2-container--krajee-bs5 .select2-selection,
	.frontend-body .select2-container--krajee .select2-selection,
	.frontend-body .select2-container--krajee-bs5 .select2-selection__rendered,
	.frontend-body .select2-container--krajee .select2-selection__rendered,
	.frontend-body .select2-selection__placeholder,
	.frontend-body .select2-search__field,
	.frontend-body .select2-results__option,
	.frontend-body .typeahead,
	.frontend-body .tt-input {
		font-size: .9375rem;
	}
}
.frontend-body .btn { border-radius: .5rem; }
.frontend-body .btn-primary { box-shadow: 0 .25rem .7rem rgba(25,182,116,.2); }
.auth-register-button { position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .8rem; padding: .8rem 1rem; border: 1px solid #62cea0; background: linear-gradient(135deg, #f5fdf9 0%, #eaf9f2 100%); color: #147c50; text-align: left; box-shadow: 0 .3rem .9rem rgba(23,145,91,.1); transition: transform .15s ease, border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.auth-register-button:hover,
.auth-register-button:focus { transform: translateY(-1px); border-color: #20bd7b; background: linear-gradient(135deg, #effbf5 0%, #ddf6ea 100%); color: #106b45; box-shadow: 0 .5rem 1.15rem rgba(23,145,91,.16), 0 0 0 .2rem rgba(32,212,137,.1); }
.auth-register-icon { display: grid; place-items: center; width: 2.15rem; height: 2.15rem; transform: rotate(-4deg); border-radius: .65rem; background: linear-gradient(135deg, #8d3ed4 0%, #d84fa1 58%, #ff8a5b 100%); color: #fff; box-shadow: 0 .25rem .6rem rgba(108,40,159,.24); transition: transform .18s ease; }
.auth-register-icon svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.auth-register-copy { display: flex; min-width: 0; flex-direction: column; gap: .05rem; }
.auth-register-copy strong { font-size: .96rem; font-weight: 750; line-height: 1.25; }
.auth-register-copy small { color: #648073; font-size: .78rem; font-weight: 450; }
.auth-register-arrow { color: #239b68; font-size: 1.15rem; transition: transform .15s ease; }
.auth-register-button:hover .auth-register-arrow,
.auth-register-button:focus .auth-register-arrow { transform: translateX(3px); }
.auth-register-button:hover .auth-register-icon,
.auth-register-button:focus .auth-register-icon { transform: translateY(-1px) rotate(2deg) scale(1.04); }

/* Registration confirmation */
.registration-success-page { width: min(100%, 760px); margin: 2.25rem auto 3rem; padding: 0 1rem; }
.registration-success-card { position: relative; overflow: hidden; padding: 2rem 2.25rem; border: 1px solid #dce4e8; border-top: 3px solid #20c982; border-radius: 1rem; background: #fff; box-shadow: 0 .75rem 2.2rem rgba(23,35,49,.1); text-align: center; }
.registration-success-card::before { position: absolute; top: -85px; right: -70px; width: 210px; height: 210px; border-radius: 50%; background: radial-gradient(circle, rgba(143,62,212,.1), rgba(216,79,161,.035) 55%, transparent 70%); content: ''; pointer-events: none; }
.registration-success-visual { display: grid; place-items: center; width: 5rem; height: 5rem; margin: 0 auto 1.1rem; transform: rotate(-3deg); border-radius: 1.35rem; background: linear-gradient(135deg, #f0e5fb, #fde7f2 60%, #fff0e7); }
.registration-success-envelope { position: relative; width: 3rem; color: #7936b0; }
.registration-success-envelope svg { display: block; width: 100%; fill: rgba(255,255,255,.7); stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.registration-success-envelope span { position: absolute; right: -.45rem; bottom: -.25rem; display: grid; place-items: center; width: 1.45rem; height: 1.45rem; border: 3px solid #f9e9f5; border-radius: 50%; background: #20c982; color: #fff; font-size: .72rem; font-weight: 800; }
.registration-success-status { display: inline-flex; align-items: center; gap: .45rem; margin-bottom: .65rem; color: #158155; font-size: .78rem; font-weight: 750; letter-spacing: .055em; text-transform: uppercase; }
.registration-success-status span { width: .45rem; height: .45rem; border-radius: 50%; background: #20c982; box-shadow: 0 0 0 4px rgba(32,201,130,.12); }
.registration-success-card h1 { max-width: 600px; margin: 0 auto .7rem; color: #1d2c37; font-size: clamp(1.55rem, 4vw, 2rem); font-weight: 760; letter-spacing: -.035em; line-height: 1.2; }
.registration-success-lead { margin: 0; color: #667681; font-size: .95rem; }
.registration-success-email { display: inline-block; margin-top: .65rem; padding: .45rem .8rem; border: 1px solid #d6e5dd; border-radius: 999px; background: #f4faf7; color: #2d6049; font-size: .92rem; font-weight: 700; letter-spacing: .015em; }
.registration-success-steps { display: grid; gap: .65rem; max-width: 570px; margin: 1.6rem auto; padding: 0; list-style: none; text-align: left; }
.registration-success-steps li { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .8rem; padding: .75rem .9rem; border: 1px solid #e2e7ea; border-radius: .65rem; background: #fbfcfd; }
.registration-success-steps li > span { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: #e8f8f0; color: #148255; font-size: .75rem; font-weight: 800; }
.registration-success-steps strong,
.registration-success-steps small { display: block; }
.registration-success-steps strong { color: #34434e; font-size: .9rem; }
.registration-success-steps small { margin-top: .12rem; color: #71808a; font-size: .82rem; line-height: 1.4; }
.registration-success-note { display: flex; max-width: 570px; flex-direction: column; gap: .2rem; margin: 0 auto; padding: .85rem 1rem; border: 1px solid #ead9ad; border-radius: .65rem; background: #fffaec; color: #735a20; text-align: left; }
.registration-success-note strong { font-size: .88rem; }
.registration-success-note span { font-size: .82rem; line-height: 1.45; }
.registration-success-actions { display: flex; justify-content: center; gap: .65rem; margin-top: 1.4rem; }
.registration-progress { display: grid; grid-template-columns: auto minmax(24px, 1fr) auto minmax(24px, 1fr) auto; align-items: start; gap: .55rem; margin: 1.3rem auto 0; padding: 0 1rem; }
.registration-progress > div { display: flex; align-items: center; flex-direction: column; gap: .4rem; color: #89949c; text-align: center; }
.registration-progress > div > span { display: grid; place-items: center; width: 1.65rem; height: 1.65rem; border: 1px solid #ccd5da; border-radius: 50%; background: #fff; font-size: .7rem; font-weight: 750; }
.registration-progress > div > strong { font-size: .75rem; font-weight: 650; }
.registration-progress > i { height: 1px; margin-top: .82rem; background: #d8dfe3; }
.registration-progress .is-complete,
.registration-progress .is-current { color: #168657; }
.registration-progress .is-complete > span { border-color: #20c982; background: #20c982; color: #fff; }
.registration-progress .is-current > span { border-color: #57cea0; background: #effaf5; }

/* Resend verification email */
.verification-resend-page { width: min(100%, 620px); margin: 2.25rem auto 3rem; padding: 0 1rem; }
.verification-resend-card { overflow: hidden; padding: 2rem 2.25rem 0; border: 1px solid #dce4e8; border-top: 3px solid #20c982; border-radius: 1rem; background: #fff; box-shadow: 0 .75rem 2.2rem rgba(23,35,49,.1); text-align: center; }
.verification-resend-visual { width: 4.6rem; height: 4.6rem; }
.verification-resend-card h1 { margin: 0 0 .65rem; color: #1d2c37; font-size: clamp(1.5rem, 4vw, 1.9rem); font-weight: 760; letter-spacing: -.035em; }
.verification-resend-lead { max-width: 490px; margin: 0 auto; color: #667681; font-size: .92rem; line-height: 1.55; }
.verification-resend-form { margin-top: 1.4rem; text-align: left; }
.verification-resend-form .form-label { color: #3d4b57; font-size: .9rem; font-weight: 700; }
.verification-resend-form .form-control { min-height: 46px; border-color: #cbd5dc; border-radius: .55rem; background: #fbfcfd; }
.verification-resend-form .form-control:focus { border-color: #43c88f; background: #fff; box-shadow: 0 0 0 .2rem rgba(32,212,137,.14); }
.verification-resend-note { display: flex; flex-direction: column; gap: .2rem; margin-top: 1rem; padding: .85rem 1rem; border: 1px solid #ead9ad; border-radius: .65rem; background: #fffaec; color: #735a20; }
.verification-resend-note strong { font-size: .88rem; }
.verification-resend-note span { font-size: .82rem; line-height: 1.45; }
.verification-resend-actions { display: flex; align-items: center; justify-content: flex-end; gap: .65rem; margin: 1.5rem -2.25rem 0; padding: 1rem 2.25rem; border-top: 1px solid #e1e7ea; background: #f8faf9; }
.verification-resend-help { margin: 1.1rem 0 0; color: #75828c; font-size: .86rem; text-align: center; }
.verification-resend-help a { color: #168657; font-weight: 650; text-decoration: none; }
.verification-resend-help a:hover { text-decoration: underline; }
.frontend-body .table > :not(caption) > * > * { padding: .85rem .75rem; }
.frontend-body .table thead th { border-bottom-width: 1px; background: #f7f9fa; color: #65717c; font-size: .74rem; letter-spacing: .025em; text-transform: uppercase; }
.frontend-body .card-header { border-bottom: 1px solid #e7ebee; border-radius: .75rem .75rem 0 0 !important; background: #f8faf9; }
.frontend-body .card-footer { border-top: 1px solid #e7ebee; border-radius: 0 0 .75rem .75rem !important; background: #f8faf9; }
.frontend-body .modal-content { border: 0; border-radius: .85rem; background: #fff; box-shadow: 0 1rem 3rem rgba(23,35,49,.22); }
.frontend-body .modal-header { border-bottom-color: #e8ecef; }
.frontend-body .modal-content .modal-title { color: #172331; }
.frontend-body .offcanvas { border-color: #e0e5e8; background: #f7f9fa; }
.frontend-body .alert { border: 0; border-radius: .65rem; box-shadow: 0 .2rem .75rem rgba(23,35,49,.06); }
.frontend-body .footer { border-top: 1px solid #e1e6e9; background: #eef1f3; }

/* Dashboard */
.dashboard-page { padding: .75rem 0 2.5rem; }
.dashboard-profile-created { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; padding: 1.2rem 3.5rem 1.2rem 1.25rem; border: 1px solid #ccebdc; border-radius: 1rem; background: linear-gradient(110deg, #edf9f2, #f8fcfa); color: #226346; }
.dashboard-profile-created-icon { display: grid; place-items: center; flex: 0 0 2.75rem; height: 2.75rem; border-radius: 50%; background: #d8f2e4; color: #168557; }
.dashboard-profile-created strong { display: block; font-size: 1rem; }
.dashboard-profile-created p { margin: .25rem 0 0; color: #527363; font-size: .9rem; overflow-wrap: anywhere; }
.dashboard-profile-created > div { min-width: 0; }
.dashboard-hero { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 1.5rem; background: transparent; }
.dashboard-hero h1 { margin: .2rem 0 .35rem; color: #172331; font-size: clamp(1.75rem, 4vw, 2.35rem); font-weight: 750; letter-spacing: -.035em; }
.dashboard-hero p { margin: 0; color: #687681; }
.dashboard-eyebrow { color: #15915d; font-size: .7rem; font-weight: 750; letter-spacing: .095em; text-transform: uppercase; }
.dashboard-primary-action { flex: 0 0 auto; min-width: 155px; }
.dashboard-system-status { border: 1px solid #dce5e1 !important; }
.dashboard-onboarding,
.dashboard-empty-actions,
.dashboard-panel,
.dashboard-kpi {
	border: 1px solid #dce3e8;
	border-radius: .85rem;
	background: #fff;
	box-shadow: 0 .45rem 1.5rem rgba(23,35,49,.065);
}
.dashboard-onboarding { overflow: hidden; padding: 1.6rem; }
.dashboard-onboarding-intro { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 1rem; margin-bottom: 1.35rem; }
.dashboard-progress-copy { display: flex; align-items: flex-end; flex-direction: column; color: #60707c; white-space: nowrap; }
.dashboard-progress-copy strong { color: #172331; font-size: 1.25rem; }
.dashboard-progress-copy span { font-size: .72rem; }
.dashboard-onboarding-intro h2,
.dashboard-empty-actions h2,
.dashboard-panel h2,
.dashboard-section-heading h2 { margin: .2rem 0 .35rem; color: #172331; font-size: 1.18rem; font-weight: 720; }
.dashboard-onboarding-intro p,
.dashboard-empty-actions p { margin: 0; color: #687681; font-size: .9rem; }
.dashboard-onboarding-label { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.dashboard-onboarding-segments { display: inline-flex; align-items: center; gap: 4px; }
.dashboard-onboarding-segment { display: block; width: 20px; height: 5px; border-radius: 999px; background: #e4eae7; transition: background-color .2s ease; }
.dashboard-onboarding-segment.is-complete { background: #15915d; }
.dashboard-steps { display: grid; gap: .65rem; }
.dashboard-step { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .85rem; padding: .85rem 1rem; border: 1px solid #e2e7ea; border-radius: .65rem; color: #34424e; text-decoration: none; transition: border-color .15s ease, background-color .15s ease, transform .15s ease; }
.dashboard-step:hover { transform: translateY(-1px); border-color: #9ddfc3; background: #f9fcfa; color: #172331; }
.dashboard-step.is-complete { background: #f6fbf8; }
.dashboard-step.is-next { border-color: #9ddfc3; background: #f9fcfa; }
.dashboard-step-number { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: #edf1f3; color: #53616d; font-size: .78rem; font-weight: 750; }
.dashboard-step.is-complete .dashboard-step-number { background: #dff6eb; color: #118353; }
.dashboard-step-content { display: flex; flex-direction: column; gap: .15rem; }
.dashboard-step-content strong { font-size: .9rem; }
.dashboard-step-content small { color: #687984; font-size: .82rem; font-weight: 400; line-height: 1.45; }
.dashboard-step-arrow { color: #89959e; max-width: 8rem; font-size: .85rem; }
.dashboard-empty-actions[hidden] { display: none; }
.dashboard-empty-actions { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 1.25rem; padding: 1.4rem 1.6rem; border-left: 3px solid rgba(32,212,137,.7); }
.dashboard-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.dashboard-kpi { position: relative; overflow: hidden; padding: 1.2rem; }
.dashboard-kpi::before { position: absolute; top: 0; right: 0; left: 0; height: 3px; background: #7d8b96; content: ''; }
.dashboard-kpi.is-success::before { background: #20b978; }
.dashboard-kpi.is-warning::before { background: #e5aa2f; }
.dashboard-kpi.is-danger::before { background: #dc6871; }
.dashboard-kpi > span { display: block; margin-bottom: .55rem; color: #667580; font-size: .77rem; font-weight: 650; }
.dashboard-kpi strong { display: block; overflow-wrap: anywhere; color: #172331; font-size: clamp(1.25rem, 2.1vw, 1.65rem); line-height: 1.2; }
.dashboard-kpi small { display: block; margin-top: .55rem; color: #7a8791; font-size: .7rem; }
.dashboard-analytics { margin-bottom: 1.5rem; }
.dashboard-panel { padding: 1.25rem; }
.dashboard-panel-heading,
.dashboard-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.dashboard-panel-link { color: #168c5a; font-size: .78rem; text-decoration: none; }
.dashboard-finance > p { margin: 0 0 1rem; color: #687681; font-size: .84rem; line-height: 1.6; }
.dashboard-finance > p:last-child { margin-bottom: 0; }
.dashboard-finance .table { margin-bottom: 0; color: #35434e; font-size: .84rem; }
.dashboard-finance .table > thead > tr > th { color: #667580; font-size: .75rem; font-weight: 650; }
.dashboard-finance .table > :not(caption) > * > * { padding: .7rem .75rem; border-color: #e8edf0; }
.dashboard-invoice-details { padding: 0; border: 0; background: transparent; color: #168c5a; font: inherit; text-align: left; cursor: pointer; }
.dashboard-invoice-details:hover { text-decoration: underline; }
.dashboard-invoice-details:focus-visible { outline: 2px solid #168c5a; outline-offset: 3px; border-radius: 2px; }
.dashboard-chart { position: relative; height: 310px; }
.dashboard-chart-small { height: 310px; }
.dashboard-chart-empty { display: none; place-items: center; min-height: 260px; border: 1px dashed #d8e0e4; border-radius: .65rem; background: #f8faf9; color: #74818b; font-size: .84rem; text-align: center; }
.dashboard-attention { margin-bottom: 1.75rem; }
.dashboard-attention-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.dashboard-attention-item { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .1rem .75rem; padding: 1rem; border: 1px solid #e1e7ea; border-radius: .65rem; color: #35434e; text-decoration: none; }
.dashboard-attention-item:hover { border-color: #b9d8ca; background: #fafcfb; color: #172331; }
.dashboard-attention-item strong { grid-row: span 2; color: #15915d; font-size: 1.55rem; }
.dashboard-attention-item span { font-size: .84rem; font-weight: 650; }
.dashboard-attention-item small { color: #78858f; font-size: .68rem; font-weight: 400; }
.dashboard-attention-item.has-warning strong { color: #c3535c; }
.dashboard-recent { margin-top: 1rem; }
.dashboard-plan-hint { display: flex; align-items: flex-start; gap: 1rem; margin-top: 1.5rem; padding: 1.25rem; border: 1px solid #dcebe3; border-radius: 14px; background: #f6fbf8; }
.dashboard-plan-hint-icon { flex: 0 0 24px; color: #168c5a; margin-top: .1rem; }
.dashboard-plan-hint h2 { margin: 0 0 .4rem; font-size: 1rem; }
.dashboard-plan-hint p { margin: 0 0 .6rem; color: #64748b; font-size: .875rem; line-height: 1.6; }
.dashboard-recent .box-white,
.dashboard-recent .card { box-shadow: 0 .4rem 1.3rem rgba(23,35,49,.055); }

/* Smart invoice list */
.invoice-list-title { margin: .2rem 0 .3rem; color: #172331; font-size: clamp(1.7rem, 3vw, 2.25rem); font-weight: 760; letter-spacing: -.04em; }
.invoice-list-title svg { width: 1.05em; height: 1.05em; margin-right: .25rem; color: #20c982; vertical-align: -.14em; }
.invoice-list-subtitle { margin: 0 0 1.6rem; color: #6e7c87; font-size: .86rem; }
.invoice-list-create { margin: 1rem 0 1.5rem; border-radius: .72rem; font-size: .88rem; box-shadow: 0 .45rem 1.1rem rgba(32, 201, 130, .18); }
.invoice-list-header-actions { display: flex; justify-content: flex-end; align-items: flex-start; gap: .65rem; }
.invoice-list-export { margin: 1rem 0 1.5rem; border-radius: .72rem; font-size: .88rem; }
.invoice-export-modal { border: 0; border-radius: 1rem; box-shadow: 0 1.5rem 4rem rgba(28, 48, 39, .18); }
.invoice-export-modal .modal-header, .invoice-export-modal .modal-footer { padding: 1.25rem 1.5rem; }
.invoice-export-modal .modal-body { padding: 1.4rem 1.5rem; }
.invoice-export-options, .invoice-export-formats { display: flex; flex-wrap: wrap; gap: .65rem; }
.invoice-export-options label { padding: .55rem .8rem; border: 1px solid #dfe6e2; border-radius: .65rem; background: #fff; }
.invoice-export-options input { margin-right: .4rem; }
.invoice-export-formats > div { flex: 1 1 150px; }
.invoice-export-formats label { display: block; height: 100%; padding: .8rem; border: 1px solid #dfe6e2; border-radius: .75rem; cursor: pointer; }
.invoice-export-formats input { margin-right: .45rem; }
.invoice-export-formats small { display: block; margin: .25rem 0 0 1.3rem; color: #77847e; }
.invoice-export-summary { display: flex; justify-content: space-between; align-items: center; margin-top: 1.1rem; padding: .9rem 1rem; border-radius: .75rem; background: #edf9f4; color: #275b46; }
.invoice-export-note { margin: .65rem 0 0; color: #77847e; font-size: .84rem; }
.invoice-list-search { margin: .35rem 0 1.1rem; }
.invoice-search-row { margin-bottom: 1rem; }
.invoice-smart-list { --invoice-border: #dfe6e2; --invoice-muted: #77847e; }
.invoice-smart-list .panel,
.invoice-smart-list .kv-panel,
.invoice-smart-grid { margin: 0; border: 0; background: transparent; box-shadow: none; }
.invoice-smart-list .panel-heading,
.invoice-smart-list .card-header:empty,
.invoice-smart-list .kv-panel-before:empty,
.invoice-smart-list .kv-panel-after:empty { display: none; }
.invoice-smart-list .table-responsive { overflow: visible; margin: 0; }
.invoice-smart-table { margin: 0; border-collapse: separate; border-spacing: 0 .55rem; color: #26352f; }
.invoice-smart-table > thead > tr > th { padding: 0 1rem .25rem; border: 0; background: transparent; color: #829089; font-size: .74rem; font-weight: 700; letter-spacing: .065em; text-transform: uppercase; white-space: nowrap; }
.invoice-smart-table > tbody > tr { position: relative; filter: drop-shadow(0 .35rem .7rem rgba(23, 35, 49, .045)); transition: transform .18s ease, filter .18s ease; }
.invoice-smart-table > tbody > tr:hover,
.invoice-smart-table > tbody > tr:focus { z-index: 1; outline: none; filter: drop-shadow(0 .65rem 1.1rem rgba(23, 35, 49, .09)); transform: translateY(-2px); }
.invoice-smart-table > tbody > tr:focus-visible td { box-shadow: inset 0 0 0 2px rgba(32, 201, 130, .38); }
.invoice-smart-table > tbody > tr > td { height: 88px; padding: .9rem 1rem; border-top: 1px solid var(--invoice-border); border-bottom: 1px solid var(--invoice-border); background: #fff; vertical-align: middle; cursor: pointer; }
.invoice-smart-table > tbody > tr > td:first-child { border-left: 4px solid #20c982; border-radius: .85rem 0 0 .85rem; }
.invoice-smart-table > tbody > tr > td:last-child { border-right: 1px solid var(--invoice-border); border-radius: 0 .85rem .85rem 0; }
.invoice-smart-table > tbody > tr.is-overdue > td:first-child { border-left-color: #ef6a71; }
.invoice-smart-table > tbody > tr.is-draft > td:first-child { border-left-color: #aab5af; }
.invoice-smart-identity { display: flex; min-width: 185px; flex-direction: column; gap: .32rem; }
.invoice-smart-partner { overflow: hidden; max-width: 290px; color: #172a22; font-size: 1.03rem; font-weight: 720; text-overflow: ellipsis; white-space: nowrap; }
.invoice-smart-document { display: flex; align-items: center; gap: .4rem; color: var(--invoice-muted); font-size: .8rem; }
.invoice-smart-number { color: #53615b; font-weight: 700; }
.invoice-smart-number.is-draft { color: #7d8983; font-style: italic; }
.invoice-smart-separator { color: #bdc6c1; }
.invoice-smart-dates { display: grid; grid-template-columns: repeat(2, minmax(82px, 1fr)); gap: 1rem; }
.invoice-smart-dates span { display: flex; flex-direction: column; gap: .18rem; }
.invoice-smart-dates small { color: #8a9690; font-size: .7rem; font-weight: 550; }
.invoice-smart-dates strong { color: #46554e; font-size: .86rem; font-weight: 650; white-space: nowrap; }
.invoice-smart-status { display: flex; min-width: 130px; flex-direction: column; align-items: flex-start; gap: .42rem; }
.invoice-status { display: inline-flex; align-items: center; gap: .4rem; padding: .34rem .62rem; border-radius: 999px; font-size: .75rem; font-weight: 700; white-space: nowrap; }
.invoice-status i { width: .38rem; height: .38rem; border-radius: 50%; background: currentColor; }
.invoice-status.is-paid { background: #e7f9ef; color: #128355; }
.invoice-status.is-due { background: #fff5d9; color: #9b6a05; }
.invoice-status.is-overdue { background: #ffebed; color: #c74651; }
.invoice-status.is-draft { border: 1px dashed #bdc6c1; background: #f5f7f6; color: #6f7b75; }
.invoice-nav-status { display: inline-flex; align-items: center; gap: .32rem; padding-left: .25rem; color: #7b8882; font-size: .69rem; font-weight: 600; white-space: nowrap; }
.invoice-nav-status i { font-size: .8rem; font-style: normal; }
.invoice-nav-status.is-done { color: #168858; }
.invoice-nav-status.is-pending { color: #8b7861; }
.invoice-nav-status.is-error { color: #c74651; }
.invoice-nav-status.is-muted { color: #a0aaa5; }
.invoice-smart-amount-heading { text-align: right !important; }
.invoice-smart-amount-cell { text-align: right; white-space: nowrap; }
.invoice-smart-amount { display: flex; align-items: baseline; justify-content: flex-end; gap: .3rem; }
.invoice-smart-amount strong { color: #182b23; font-size: 1.06rem; font-weight: 760; letter-spacing: -.02em; }
.invoice-smart-amount span { color: #7f8b85; font-size: .74rem; font-weight: 650; }
.invoice-smart-amount.is-negative strong { color: #c74651; }
.invoice-smart-actions-heading { width: 1%; }
.invoice-smart-actions-cell { width: 1%; white-space: nowrap; }
.invoice-smart-actions-cell .invoice-action-button { margin-left: .28rem; }
.invoice-action-button { display: inline-grid; place-items: center; width: 2rem; height: 2rem; padding: 0; border: 1px solid #dce4df; border-radius: .58rem; background: #fff; color: #64736c; text-decoration: none; transition: .17s ease; }
.invoice-action-button svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.invoice-action-button:hover { border-color: #a9d9c3; background: #f0faf5; color: #138354; transform: translateY(-1px); }
.invoice-action-button.is-primary { border-color: #20c982; background: #20c982; color: #fff; }
.invoice-action-button.is-primary:hover { border-color: #18b474; background: #18b474; color: #fff; }
.invoice-smart-summary { margin: 0 .2rem .3rem; color: #7d8983; font-size: .8rem; }
.invoice-smart-pagination { gap: .25rem; margin: 1rem 0 0; }
.invoice-smart-pagination .page-link { min-width: 2.15rem; border-color: #dde5e0; border-radius: .55rem; color: #53625b; font-size: .75rem; text-align: center; }
.invoice-smart-pagination .active .page-link { border-color: #20c982; background: #20c982; color: #fff; }
.invoice-smart-empty { display: flex; align-items: center; flex-direction: column; gap: .35rem; padding: 3.2rem 1rem !important; border: 1px dashed #cfdbd4 !important; border-radius: .85rem !important; background: rgba(255, 255, 255, .72) !important; color: #718079; text-align: center; }
.invoice-smart-empty-icon { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; margin-bottom: .25rem; border-radius: 50%; background: #e7f8ef; color: #158457; font-size: 1.45rem; }
.invoice-smart-empty strong { color: #34443c; font-size: .9rem; }
.invoice-smart-empty span { font-size: .72rem; font-weight: 400; }
.dashboard-recent .invoice-smart-table > thead > tr > th { padding-top: .35rem; }
.dashboard-recent .invoice-smart-summary { display: none; }

/* Company settings */
.company-settings-page { max-width: var(--app-page-max); margin: 0 auto; padding: .75rem 0 2.5rem; }
.page-title-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.company-settings-card { overflow: hidden; margin-top: 1.25rem; border: 1px solid #dce3e8; border-radius: .85rem; background: #fff; box-shadow: 0 .45rem 1.5rem rgba(23,35,49,.07); }
.company-settings-tabs { gap: .25rem; padding: .75rem 1rem 0; border-bottom-color: #dfe6ea; background: #f7f9fa; }
.company-settings-tabs .nav-link { padding: .7rem 1rem; border: 0; border-bottom: 2px solid transparent; border-radius: .45rem .45rem 0 0; color: #65737e; font-size: .86rem; font-weight: 650; }
.company-settings-tabs .nav-link:hover { background: #eef3f0; color: #24323d; }
.company-settings-tabs .nav-link.active { border-bottom-color: #20c982; background: #fff; color: #128354; }
.company-settings-content { padding: 1.5rem; }
.company-settings-section-heading { margin: 1.7rem 0 .85rem; padding-bottom: .55rem; border-bottom: 1px solid #e8ecef; }
.company-settings-section-heading:first-child { margin-top: 0; }
.company-settings-section-heading h3 { margin: 0; color: #263540; font-size: .95rem; font-weight: 700; }
.company-settings-section-heading p { margin: .25rem 0 0; color: #74818b; font-size: .77rem; }
.company-settings-panel { height: 100%; padding: 1.15rem 1.25rem; border: 1px solid #e3e9ed; border-radius: .7rem; background: #fbfcfd; }
.company-settings-panel > :last-child { margin-bottom: 0; }
.company-settings-panel-heading { margin: 0 0 1rem; padding-bottom: .6rem; border-bottom: 1px solid #e8edf0; }
.company-settings-panel-heading h3 { margin: 0; color: #263540; font-size: .93rem; font-weight: 700; }
.company-settings-panel-heading p { margin: .25rem 0 0; color: #74818b; font-size: .76rem; line-height: 1.4; }
.company-settings-actions { display: flex; justify-content: flex-end; padding: 1rem 1.5rem; border-top: 1px solid #e1e7ea; background: #f8faf9; }
.form-control[readonly] {
	padding-right: 2.35rem;
	border-color: #d7e0e5;
	background-color: #f3f6f7;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23717f89' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10' width='16' height='10' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right .75rem center;
	color: #5f6d77;
	box-shadow: inset 0 1px 2px rgba(31, 45, 56, .04);
	cursor: not-allowed;
}
#invoice-date-issued-display.form-control {
	background-color: #e9ecef;
}
@media (max-width: 991.98px) {
    #invoice-date-issued-display.form-control {
        background-image: none;
        padding-right: .75rem;
    }
}
.invoice-issued-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: .2rem .5rem; }
.invoice-deadline-shortcuts { display: flex; flex-wrap: nowrap; flex-shrink: 0; gap: .25rem; margin-bottom: .25rem; }
.invoice-deadline-shortcut { padding: .05rem .45rem; border: 1px solid #d7e0e5; border-radius: .4rem; background: #f3f6f7; color: #5f6d77; font-size: .75rem; font-weight: 600; line-height: 1.5; cursor: pointer; }
.invoice-deadline-shortcut:hover { background: #e7edef; border-color: #b8c6ce; color: #263540; }
.invoice-deadline-shortcut:focus-visible { outline: 2px solid #128354; outline-offset: 2px; }
.form-control[readonly]:focus {
	border-color: #d7e0e5;
	box-shadow: 0 0 0 .2rem rgba(113, 127, 137, .08);
}
.input-group .form-control[readonly] {
	border-right-color: #cbd6dc;
}

/* NAV connection settings */
.nav-connect-page { max-width: var(--app-page-max); margin: 0 auto; padding: .75rem 0 2.5rem; }
.nav-connect-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.4rem; }
.nav-connect-heading p { margin: 0; color: #6d7b86; font-size: .9rem; }
.nav-environment-badge { display: inline-flex; align-items: center; gap: .45rem; flex: 0 0 auto; padding: .45rem .75rem; border: 1px solid; border-radius: 999px; font-size: .72rem; font-weight: 700; letter-spacing: .025em; text-transform: uppercase; }
.nav-environment-badge.is-live { border-color: #a7dec6; background: #ebf9f2; color: #11794d; }
.nav-environment-badge.is-test { border-color: #ead49d; background: #fff9e9; color: #8a6715; }
.nav-environment-dot { width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 3px rgba(32,212,137,.1); }
.nav-menu-environment-badge { gap: .3rem; padding: .22rem .42rem; font-size: .56rem; line-height: 1; }
.nav-menu-environment-badge .nav-environment-dot { width: .32rem; height: .32rem; }
.nav-guide-card,
.nav-form-card { border: 1px solid #dce3e8; border-radius: .85rem; background: #fff; box-shadow: 0 .45rem 1.5rem rgba(23,35,49,.07); }
.nav-guide-card { position: sticky; top: 96px; overflow: hidden; padding: 1.35rem; border-top: 3px solid rgba(32,201,130,.65); background: linear-gradient(180deg, #f8fcfa 0, #fff 170px); }
.nav-guide-heading { padding-bottom: 1rem; border-bottom: 1px solid #e3e9e6; }
.nav-guide-heading h3,
.nav-form-heading h3 { margin: .2rem 0 .35rem; color: #21313c; font-size: 1.15rem; font-weight: 720; }
.nav-guide-heading p,
.nav-form-heading p { margin: 0; color: #71808b; font-size: .8rem; line-height: 1.55; }
.nav-guide-steps { display: grid; gap: 1.15rem; margin: 1.2rem 0; padding: 0; list-style: none; }
.nav-guide-steps li { display: grid; grid-template-columns: auto 1fr; gap: .75rem; }
.nav-guide-number { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border: 1px solid #b9e5d1; border-radius: 50%; background: #e9f9f1; color: #128254; font-size: .74rem; font-weight: 800; }
.nav-guide-steps strong { color: #30404b; font-size: .84rem; }
.nav-guide-steps p { margin: .25rem 0 0; color: #6f7d88; font-size: .75rem; font-weight: 400; line-height: 1.55; }
.nav-guide-link { display: inline-block; margin-top: .35rem; color: #168b59; font-size: .73rem; text-decoration: none; }
.nav-guide-link:hover { color: #106d46; text-decoration: underline; }
.nav-form-card { overflow: hidden; }
.nav-form-heading { padding: 1.35rem 1.5rem 1.1rem; border-bottom: 1px solid #e2e8eb; background: #f8faf9; }
.nav-form-card form { padding: 1.5rem; }
.nav-test-notice { display: flex; align-items: flex-start; flex-direction: column; gap: .2rem; margin: 1.25rem 1.5rem 0; padding: .85rem 1rem; border: 1px solid #ead8a9; border-radius: .6rem; background: #fffaec; color: #725718; }
.nav-test-notice strong { font-size: .8rem; }
.nav-test-notice span { font-size: .73rem; line-height: 1.45; }
.nav-form-separator { margin: 1.35rem 0; border-top: 1px solid #e4e9ec; }
.nav-form-actions { display: flex; justify-content: flex-end; margin: 1.5rem -1.5rem -1.5rem; padding: 1rem 1.5rem; border-top: 1px solid #e1e7ea; background: #f8faf9; }

/* NAV üzemmód figyelmeztető sáv */
.nav-mode-banner { display: flex; align-items: flex-start; gap: .75rem; margin: .9rem 0 0; padding: .9rem 1.1rem; border: 1px solid; border-radius: .7rem; font-size: .85rem; line-height: 1.5; }
.nav-mode-banner.is-test { border-color: #ead49d; background: #fff9e9; color: #725718; }
.nav-mode-banner strong { font-weight: 700; }
.nav-mode-banner a { color: inherit; font-weight: 600; text-decoration: underline; }
.nav-mode-banner-actions { margin-left: auto; flex: 0 0 auto; }
.invoice-test-badge { display: inline-flex; align-items: center; margin-left: .4rem; padding: .1rem .4rem; border: 1px solid #ead49d; border-radius: .35rem; background: #fff9e9; color: #8a6715; font-size: .58rem; font-weight: 800; letter-spacing: .04em; vertical-align: middle; }

/* Shared list pages */
.app-list-page { padding: .75rem 0 2.5rem; }
.app-list-heading,
.nav-connect-heading,
.page-title-row { background: transparent; }
.app-list-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.35rem; }
.app-list-heading h2 { margin: .2rem 0 .35rem; color: #172331; font-size: clamp(1.55rem, 3vw, 2rem); font-weight: 750; letter-spacing: -.03em; }
.app-list-heading p { margin: 0; color: #6e7c87; font-size: .86rem; }
.app-list-heading .btn { flex: 0 0 auto; }
.app-list-card,
.pending-invitations-card { overflow: hidden; border: 1px solid #dce3e8; border-radius: .85rem; background: #fff; box-shadow: 0 .45rem 1.5rem rgba(23,35,49,.065); }
.app-list-card .panel,
.app-list-card .kv-panel,
.app-list-card .grid-view { margin: 0; border: 0; box-shadow: none; }
.app-list-card .panel-heading,
.app-list-card .card-header:empty,
.app-list-card .kv-panel-before:empty,
.app-list-card .kv-panel-after:empty { display: none; }
.app-list-card .table-responsive { margin: 0; }
.app-list-card .table { margin: 0; color: #35434e; font-size: .95rem; }
.app-list-card .table > thead > tr > th { padding: .8rem .9rem; border-bottom: 1px solid #dfe5e9; background: #f6f8f9; color: #5e6d78; font-size: .75rem; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; white-space: nowrap; }
.app-list-card .table > tbody > tr > td { padding: .85rem .9rem; border-bottom-color: #e9edef; vertical-align: middle; }
.app-list-card .table-hover > tbody > tr:hover > * { --bs-table-bg-state: #f8fcfa; }
.app-list-card .filters td { padding: .55rem .65rem !important; background: #fafbfc; }
.app-list-card .filters .form-control,
.app-list-card .filters .form-select,
.app-list-card .filters .select2-selection { min-height: 34px; font-size: .8rem; }
.app-list-card .summary { padding: .8rem 1rem; border-bottom: 1px solid #e5eaed; color: #798690; font-size: .78rem; }
.app-list-card .pagination { gap: .2rem; margin: 0; padding: .85rem 1rem; border-top: 1px solid #e5eaed; }
.partner-index .app-list-card .kv-panel-pager,
.item-index .app-list-card .kv-panel-pager { height: auto; }
.partner-index .app-list-card .kv-panel-pager .pagination,
.item-index .app-list-card .kv-panel-pager .pagination { flex-wrap: wrap; margin: 0; padding: .85rem 1rem; }
.app-list-card .page-link { min-width: 2rem; border-radius: .4rem; font-size: .8rem; text-align: center; }
.app-list-card .empty { padding: 2.5rem 1rem !important; color: #74818b; text-align: center; }
.app-list-card .action-column { width: 1%; white-space: nowrap; }
.item-index .app-list-card .item-name-column { width: 40%; min-width: 260px; }
.item-index .app-list-card .item-name-cell { font-weight: 700; color: #172331; overflow-wrap: anywhere; }
.item-index .app-list-card .item-compact-column { width: 1%; }
.item-index .app-list-card .item-note-column { width: 18%; min-width: 150px; }
.item-index .app-list-card .item-note-cell { color: #6e7c87; overflow-wrap: anywhere; }
.item-index .app-list-card .item-price-cell { text-align: right; white-space: nowrap; }
.app-list-actions { width: 1%; white-space: nowrap; text-align: right; }
.app-list-action-button { display: inline-grid; place-items: center; width: 2.15rem; height: 2.15rem; margin-left: .25rem; border: 1px solid #dce4df; border-radius: .58rem; background: #fff; color: #64736c; text-decoration: none; transition: background-color .17s ease, border-color .17s ease, color .17s ease; }
.app-list-action-button svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.app-list-action-button:hover { border-color: #a9d9c3; background: #f0faf5; color: #138354; }
.app-list-action-button[data-method="post"]:hover { border-color: #e9bec2; background: #fff5f5; color: #b84e58; }
.app-list-action-button:focus-visible { outline: 2px solid #168c5a; outline-offset: 3px; }
.app-list-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1.6rem 0 .7rem; }
.app-list-section-heading h3 { margin: 0; color: #30404b; font-size: .95rem; font-weight: 700; }
.app-list-section-heading span { color: #7a8791; font-size: .73rem; }
.pending-invitation-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: .85rem; padding: 1rem 1.15rem; border-bottom: 1px solid #e7ecef; }
.pending-invitation-item:last-child { border-bottom: 0; }
.pending-invitation-avatar { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: #e7f8ef; color: #128254; font-size: .75rem; font-weight: 800; }
.pending-invitation-content { display: flex; min-width: 0; flex-direction: column; }
.pending-invitation-content strong { overflow: hidden; color: #32414c; font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
.pending-invitation-content span { overflow: hidden; color: #77848e; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }

/* Incoming invoice HTML document */
.incoming-invoice-row { cursor: pointer; }
.incoming-invoice-row:focus-visible { outline: 2px solid #128254; outline-offset: -2px; }
.incoming-invoice-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); align-items: start; gap: 1.5rem; }
.incoming-invoice-layout .incoming-invoice-sheet { min-width: 0; padding: clamp(1.25rem, 2.5vw, 2.25rem); }
.incoming-invoice-management { display: grid; min-width: 0; gap: 1.5rem; }
.incoming-invoice-layout .incoming-invoice-management-card { padding: 1.15rem; }
.incoming-invoice-layout .incoming-invoice-imports strong { overflow-wrap: anywhere; }
.incoming-invoice-sheet { padding: clamp(1.25rem, 4vw, 3rem); border: 1px solid #dce3e8; border-radius: .85rem; background: #fff; box-shadow: 0 .45rem 1.5rem rgba(23,35,49,.065); color: #35434e; }
.incoming-invoice-sheet-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; padding-bottom: 1.6rem; border-bottom: 2px solid #263640; }
.incoming-invoice-caption { display: block; margin: 0 0 .55rem; color: #77848f; font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.incoming-invoice-sheet-header h3 { margin: 0 0 .6rem; color: #172331; font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 750; letter-spacing: -.035em; }
.incoming-invoice-sheet-header p { margin: 0; font-size: .9rem; overflow-wrap: anywhere; }
.incoming-invoice-sheet-tags { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.incoming-invoice-tag { padding: .4rem .7rem; border: 1px solid #dce7e1; border-radius: .45rem; background: #f4faf7; color: #47705c; font-size: .72rem; font-weight: 650; white-space: nowrap; }
.incoming-invoice-tag.is-test { border-color: #ecd5a1; background: #fff8e8; color: #8b681f; }
.incoming-invoice-reference { display: flex; flex-wrap: wrap; gap: .3rem .5rem; margin-top: 1.25rem; padding: .85rem 1rem; border-radius: .5rem; background: #f4f7f9; font-size: .85rem; }
.incoming-invoice-reference span { flex-basis: 100%; color: #6e7c87; }
.incoming-invoice-parties { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; padding: 1.8rem 0; }
.incoming-invoice-party-name { margin-bottom: .55rem; color: #263640; font-size: 1.1rem; font-weight: 720; overflow-wrap: anywhere; }
.incoming-invoice-parties p { margin: .25rem 0; font-size: .86rem; line-height: 1.6; overflow-wrap: anywhere; }
.incoming-invoice-parties p span { color: #77848f; }
.incoming-invoice-metadata { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 1.15rem 0; border-top: 1px solid #e5eaed; border-bottom: 1px solid #e5eaed; }
.incoming-invoice-metadata dt, .incoming-invoice-huf-totals dt { margin-bottom: .35rem; color: #77848f; font-size: .74rem; font-weight: 500; }
.incoming-invoice-metadata dd { margin: 0; font-size: .88rem; font-weight: 650; }
.incoming-invoice-section { margin-top: 1.8rem; }
.incoming-invoice-section-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; margin-bottom: .8rem; }
.incoming-invoice-section-heading h4 { margin: 0; color: #30404b; font-size: .95rem; font-weight: 720; }
.incoming-invoice-section-heading > span { color: #77848f; font-size: .78rem; }
.incoming-invoice-table { width: 100%; min-width: 720px; font-size: .82rem; }
.incoming-invoice-table th { padding: .7rem .6rem; border-top: 1px solid #dfe5e9; border-bottom: 1px solid #dfe5e9; background: #f6f8f9; color: #5e6d78; font-size: .7rem; font-weight: 750; white-space: nowrap; }
.incoming-invoice-table td { padding: .95rem .6rem; border-bottom: 1px solid #e9edef; vertical-align: top; }
.incoming-invoice-table .is-number { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.incoming-invoice-line-description { min-width: 180px; max-width: 340px; overflow-wrap: anywhere; }
.incoming-invoice-line-description strong { display: block; font-weight: 650; }
.incoming-invoice-line-description span, .incoming-invoice-unit { display: block; margin-top: .25rem; color: #77848f; font-size: .73rem; }
.incoming-invoice-empty { padding: 1.5rem !important; color: #77848f; text-align: center; }
.incoming-invoice-totals-area { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .8fr); gap: 2rem; margin-top: 1.8rem; }
.incoming-invoice-currency-note p { margin: .35rem 0; font-size: .82rem; }
.incoming-invoice-currency-note .incoming-invoice-missing-note { margin-top: .75rem; color: #77848f; font-size: .75rem; }
.incoming-invoice-totals { margin: 0; }
.incoming-invoice-totals > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .65rem 0; }
.incoming-invoice-totals dt { font-size: .86rem; font-weight: 500; }
.incoming-invoice-totals dd { margin: 0; font-size: .95rem; font-weight: 650; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.incoming-invoice-totals .incoming-invoice-grand-total { margin-top: .35rem; padding: .95rem 0; border-top: 2px solid #263640; }
.incoming-invoice-grand-total dt, .incoming-invoice-grand-total dd { color: #172331; font-size: 1.08rem; font-weight: 750; }
.incoming-invoice-huf-totals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 1rem 0 0; padding: 1rem; border-radius: .45rem; background: #f6f8f9; }
.incoming-invoice-huf-totals dd { margin: 0; font-size: .82rem; font-variant-numeric: tabular-nums; }
.incoming-invoice-disclaimer { margin-top: 2rem; padding: 1rem 1.15rem; border: 1px solid #ecdfbe; border-radius: .55rem; background: #fffbf2; color: #7b6539; }
.incoming-invoice-disclaimer strong { display: block; margin-bottom: .35rem; font-size: .85rem; }
.incoming-invoice-disclaimer p { margin: 0; font-size: .8rem; line-height: 1.65; }
.incoming-invoice-management-card { height: 100%; padding: 1.4rem; }
.incoming-invoice-management-card h3 { margin: 0 0 .45rem; color: #30404b; font-size: 1rem; font-weight: 720; }
.incoming-invoice-management-intro { margin-bottom: 1.2rem; color: #77848f; font-size: .83rem; }
.incoming-invoice-management-card .form-label { font-size: .86rem; }
.incoming-invoice-imports { list-style: none; margin: 0; padding: 0; }
.incoming-invoice-imports li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding: .85rem 0; border-bottom: 1px solid #e9edef; }
.incoming-invoice-imports li:last-child { border-bottom: 0; }
.incoming-invoice-imports strong { display: block; font-size: .8rem; font-weight: 650; }
.incoming-invoice-imports span { display: block; margin-top: .2rem; color: #77848f; font-size: .73rem; }
@media (max-width: 991.98px) {
    .incoming-invoice-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767.98px) {
    .incoming-invoice-sheet-header { flex-direction: column; gap: 1rem; }
    .incoming-invoice-sheet-tags { justify-content: flex-start; }
    .incoming-invoice-parties { grid-template-columns: 1fr; gap: 1.4rem; }
    .incoming-invoice-metadata { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .incoming-invoice-totals-area { grid-template-columns: 1fr; gap: 1rem; }
    .incoming-invoice-huf-totals { grid-template-columns: 1fr; }
}

/* Company invitation */
.company-invite-page { max-width: var(--app-page-max); margin: 0 auto; padding: .75rem 0 2.5rem; }
.company-invite-heading { align-items: center; }
.company-invite-card,
.company-invite-info { overflow: hidden; border: 1px solid #dce3e8; border-radius: .85rem; background: #fff; box-shadow: 0 .45rem 1.5rem rgba(23,35,49,.065); }
.company-invite-card-heading { padding: 1.25rem 1.5rem 1rem; border-bottom: 1px solid #e1e7ea; background: #f8faf9; }
.company-invite-card-heading h3,
.company-invite-info h3 { margin: 0 0 .35rem; color: #263640; font-size: 1.08rem; font-weight: 720; }
.company-invite-card-heading p,
.company-invite-info p { margin: 0; color: #6f7d88; font-size: .9rem; line-height: 1.55; }
.company-invite-form { padding: 1.5rem 1.5rem 0; }
.company-invite-form .form-label,
.company-invite-form .form-group > label { font-size: .9rem; }
.company-invite-access-option { margin-top: 1.15rem; padding: 1rem 1.1rem; border: 1px solid #dfe6e9; border-radius: .65rem; background: #fafcfc; }
.company-invite-access-option .form-check { display: flex; align-items: center; gap: .55rem; min-height: auto; padding-left: 0; }
.company-invite-access-option .form-check-input { position: static; float: none; width: 1.1rem; height: 1.1rem; margin: 0; }
.company-invite-access-option .form-check-label { color: #34434e; font-size: .92rem; font-weight: 700; }
.company-invite-access-option p { margin: .3rem 0 0 1.65rem; color: #73808a; font-size: .84rem; }
.company-invite-actions { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; margin: 1.5rem -1.5rem 0; padding: 1rem 1.5rem; border-top: 1px solid #e1e7ea; background: #f8faf9; }
.company-invite-info { position: sticky; top: 96px; padding: 1.3rem; border-top: 3px solid rgba(32,201,130,.65); background: linear-gradient(180deg, #f7fcf9 0, #fff 150px); }
.company-invite-role { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #e5ebe8; }
.company-invite-role strong { display: block; margin-bottom: .2rem; color: #34434e; font-size: .92rem; }
.company-invite-role p { font-size: .86rem; }
.company-invite-note { margin-top: 1.15rem; padding: .8rem .9rem; border: 1px solid #cfe7db; border-radius: .55rem; background: #f2faf6; color: #47705c; font-size: .84rem; line-height: 1.5; }

/* Company prefix editor */
.company-prefix-editor-page { max-width: var(--app-page-max); margin: 0 auto; padding: .75rem 0 2.5rem; }
.company-prefix-editor-heading { align-items: center; }
.company-prefix-editor-card,
.company-prefix-editor-info { overflow: hidden; border: 1px solid #dce3e8; border-radius: .85rem; background: #fff; box-shadow: 0 .45rem 1.5rem rgba(23,35,49,.065); }
.company-prefix-editor-card-heading { padding: 1.25rem 1.5rem 1rem; border-bottom: 1px solid #e1e7ea; background: #f8faf9; }
.company-prefix-editor-card-heading h3,
.company-prefix-editor-info h3 { margin: 0 0 .35rem; color: #263640; font-size: 1.08rem; font-weight: 720; }
.company-prefix-editor-card-heading p,
.company-prefix-editor-info p { margin: 0; color: #6f7d88; font-size: .9rem; line-height: 1.55; }
.company-prefix-editor-form { padding: 1.5rem 1.5rem 0; }
.company-prefix-editor-form .form-label,
.company-prefix-editor-form .form-group > label { font-size: .9rem; }
.company-prefix-editor-form .form-text { color: #75828c; font-size: .82rem; }
.company-prefix-active-option { margin-top: 1.15rem; padding: 1rem 1.1rem; border: 1px solid #dfe6e9; border-radius: .65rem; background: #fafcfc; }
.company-prefix-active-option .form-check { display: flex; align-items: center; gap: .55rem; min-height: auto; padding-left: 0; }
.company-prefix-active-option .form-check-input { position: static; float: none; width: 1.1rem; height: 1.1rem; margin: 0; }
.company-prefix-active-option .form-check-label { color: #34434e; font-size: .92rem; font-weight: 700; }
.company-prefix-active-option p { margin: .3rem 0 0 1.65rem; color: #73808a; font-size: .84rem; }
.company-prefix-editor-actions { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; margin: 1.5rem -1.5rem 0; padding: 1rem 1.5rem; border-top: 1px solid #e1e7ea; background: #f8faf9; }
.company-prefix-editor-info { position: sticky; top: 96px; padding: 1.3rem; border-top: 3px solid rgba(32,201,130,.65); background: linear-gradient(180deg, #f7fcf9 0, #fff 150px); }
.company-prefix-example { margin: 1.15rem 0; padding: .9rem 1rem; border: 1px solid #cfe7db; border-radius: .6rem; background: #f2faf6; }
.company-prefix-example span { display: block; margin-bottom: .2rem; color: #638071; font-size: .78rem; }
.company-prefix-example strong { color: #177c51; font-size: 1.08rem; letter-spacing: .02em; }
.company-prefix-editor-info ul { display: grid; gap: .55rem; margin: 1rem 0 0; padding-left: 1.15rem; color: #5f6e79; font-size: .86rem; line-height: 1.5; }
.company-prefix-editor-info li::marker { color: #1dbb78; }

/* Add company */
.company-add-page { max-width: var(--app-page-max); margin: 0 auto; padding: .75rem 0 2.5rem; }
.company-add-verification-success { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .8rem; margin: .25rem 0 1.25rem; padding: .9rem 1rem; border: 1px solid #a9dec6; border-radius: .7rem; background: #f1faf6; box-shadow: 0 .25rem .8rem rgba(23,145,91,.06); }
.company-add-verification-icon { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: #20c982; color: #fff; font-size: .85rem; font-weight: 800; box-shadow: 0 0 0 4px rgba(32,201,130,.1); }
.company-add-verification-success strong { display: block; color: #206747; font-size: 1rem; font-weight: 750; }
.company-add-verification-success p { margin: .15rem 0 0; color: #577367; font-size: .9rem; line-height: 1.45; }
.company-add-welcome { border-color: #d5dfe4; background: #f8faf9; }
.company-add-welcome .company-add-verification-icon { background: linear-gradient(135deg, #8d3ed4, #d84fa1); box-shadow: 0 0 0 4px rgba(141,62,212,.08); }
.company-add-welcome strong { color: #34434e; }
.company-add-welcome p { color: #667681; }
.company-add-heading { align-items: center; }
.company-add-invitation-separator { margin: 0 0 1.5rem; border-color: #dfe6e9; opacity: 1; }
.company-add-card,
.company-add-guide { border: 1px solid #dce3e8; border-radius: .85rem; background: #fff; box-shadow: 0 .45rem 1.5rem rgba(23,35,49,.065); }
.company-add-card { overflow: hidden; }
.company-add-section { padding: 1.45rem 1.5rem; border-bottom: 1px solid #e4e9ec; }
.company-add-section-heading { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: .8rem; margin-bottom: 1.2rem; }
.company-add-section-heading h3,
.company-add-guide h3 { margin: 0 0 .25rem; color: #263640; font-size: 1.08rem; font-weight: 720; }
.company-add-section-heading p { margin: 0; color: #71808a; font-size: .86rem; line-height: 1.5; }
.company-add-step { display: grid; place-items: center; width: 1.85rem; height: 1.85rem; border: 1px solid #b8e5d0; border-radius: 50%; background: #eaf9f1; color: #148255; font-size: .78rem; font-weight: 800; }
.company-add-form .form-label,
.company-add-form .form-group > label { font-size: .9rem; }
.company-type-field > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.company-type-option { display: grid; grid-template-columns: auto 1fr; align-items: flex-start; gap: .6rem; min-height: 92px; padding: .9rem; border: 1px solid #dce3e8; border-radius: .65rem; background: #fbfcfd; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, transform .15s ease; }
.company-type-option:hover { transform: translateY(-1px); border-color: #a7d9c3; background: #f8fcfa; }
.company-type-option:has(.form-check-input:checked) { border-color: #6fd3a8; background: #effaf5; box-shadow: 0 0 0 2px rgba(32,212,137,.08); }
.company-type-option .form-check-input { margin-top: .15rem; }
.company-type-option > span { display: flex; flex-direction: column; gap: .2rem; }
.company-type-option strong { color: #32414c; font-size: .9rem; }
.company-type-option small { color: #75828c; font-size: .8rem; font-weight: 400; line-height: 1.4; }
.company-add-accountant-option { margin-top: 1rem; padding: .9rem 1rem; border: 1px solid #dfe6e9; border-radius: .65rem; background: #fafcfc; }
.company-add-accountant-option .form-check { display: flex; align-items: center; gap: .55rem; min-height: auto; padding-left: 0; }
.company-add-accountant-option .form-check-input { position: static; float: none; width: 1.1rem; height: 1.1rem; margin: 0; }
.company-add-accountant-option .form-check-label { color: #34434e; font-size: .9rem; font-weight: 700; }
.company-add-accountant-option p { margin: .3rem 0 0 1.65rem; color: #73808a; font-size: .82rem; }
.company-add-actions { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; padding: 1rem 1.5rem; background: #f8faf9; }
.company-add-guide { position: sticky; top: 96px; padding: 1.3rem; border-top: 3px solid rgba(32,201,130,.65); background: linear-gradient(180deg, #f7fcf9 0, #fff 160px); }
.company-add-guide ul { display: grid; gap: 1rem; margin: 1.2rem 0; padding: 0; list-style: none; }
.company-add-guide li { display: flex; flex-direction: column; padding-left: .9rem; border-left: 2px solid #b9e5d1; }
.company-add-guide li strong { color: #34434e; font-size: .9rem; }
.company-add-guide li span { margin-top: .15rem; color: #71808a; font-size: .82rem; line-height: 1.45; }
.company-add-guide-note { display: flex; flex-direction: column; gap: .25rem; padding: .9rem; border: 1px solid #cfe7db; border-radius: .6rem; background: #f2faf6; }
.company-add-guide-note strong { color: #237452; font-size: .88rem; }
.company-add-guide-note span,
.company-add-guide-footer { color: #608071; font-size: .82rem; line-height: 1.5; }
.company-add-guide-footer { margin: 1rem 0 0; }
.company-add-card [hidden] { display: none !important; }
.company-add-logout { display: flex; align-items: center; justify-content: center; gap: .45rem; margin-top: 4.5rem; color: #7a8791; font-size: .86rem; }
.company-add-logout-link { color: #54636e; font-weight: 700; text-decoration: none; }
.company-add-logout-link:hover { color: #168657; text-decoration: underline; }

/* Tax authority audit export */
.tax-export-page { max-width: var(--app-page-max); margin: 0 auto; padding: .75rem 0 2.5rem; }
.tax-export-card,
.tax-export-info { overflow: hidden; border: 1px solid #dce3e8; border-radius: .85rem; background: #fff; box-shadow: 0 .45rem 1.5rem rgba(23,35,49,.065); }
.tax-export-card-heading { padding: 1.25rem 1.5rem 1rem; border-bottom: 1px solid #e1e7ea; background: #f8faf9; }
.tax-export-card-heading h3,
.tax-export-info h3 { margin: 0 0 .3rem; color: #263640; font-size: 1.05rem; font-weight: 720; }
.tax-export-card-heading p,
.tax-export-info p { margin: 0; color: #71808a; font-size: .9rem; line-height: 1.55; }
.tax-export-form { padding: 1.4rem 1.5rem 0; }
.tax-export-form .form-label,
.tax-export-form .form-group > label,
.tax-export-mode-field > label { margin-bottom: .6rem; color: #3c4b56; font-size: .9rem; font-weight: 700; }
.tax-export-mode-field > div { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; }
.tax-export-mode-option { display: grid; grid-template-columns: auto 1fr; align-items: flex-start; gap: .65rem; padding: .9rem; border: 1px solid #dce3e8; border-radius: .65rem; background: #fbfcfd; cursor: pointer; }
.tax-export-mode-option:has(.form-check-input:checked) { border-color: #79d8af; background: #f2fbf7; box-shadow: 0 0 0 2px rgba(32,212,137,.08); }
.tax-export-mode-option .form-check-input { margin-top: .15rem; }
.tax-export-mode-option > span { display: flex; flex-direction: column; gap: .15rem; }
.tax-export-mode-option strong { color: #32414c; font-size: .92rem; }
.tax-export-mode-option small { color: #78858f; font-size: .82rem; font-weight: 400; line-height: 1.45; }
.tax-export-fields { margin-top: 1.3rem; padding-top: 1.2rem; border-top: 1px solid #e5eaed; }
.tax-export-fields[hidden] { display: none !important; }
.tax-export-section-title { display: flex; align-items: baseline; gap: .5rem; margin-bottom: .85rem; }
.tax-export-section-title span { color: #34434e; font-size: .95rem; font-weight: 700; }
.tax-export-section-title small { color: #7a8791; font-size: .82rem; }
.tax-export-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1.5rem -1.5rem 0; padding: 1rem 1.5rem; border-top: 1px solid #e1e7ea; background: #f8faf9; }
.tax-export-actions > div { display: flex; flex-direction: column; }
.tax-export-actions strong { color: #35444f; font-size: .9rem; }
.tax-export-actions small { color: #7a8791; font-size: .8rem; }
.tax-export-info { position: sticky; top: 96px; padding: 1.3rem; border-top: 3px solid rgba(32,201,130,.65); background: linear-gradient(180deg, #f7fcf9 0, #fff 150px); }
.tax-export-info ul { display: grid; gap: .65rem; margin: 1.1rem 0; padding-left: 1.15rem; color: #5f6e79; font-size: .88rem; line-height: 1.5; }
.tax-export-info li::marker { color: #1dbb78; }
.tax-export-info-link { color: #168b59; font-size: .86rem; text-decoration: none; }
.tax-export-info-link:hover { color: #106d46; text-decoration: underline; }

@media (max-width: 991.98px) {
	.frontend-navbar { flex-wrap: wrap; }
	.frontend-logo { margin-right: auto !important; }
	.frontend-navbar .navbar-collapse { width: 100%; padding: .85rem 0 .25rem; border-top: 1px solid #e5ebe8; }
	.frontend-nav { width: 100%; gap: .15rem; padding-bottom: .65rem; }
	.frontend-nav .nav-link { padding-right: .65rem; padding-left: .65rem; }
	.frontend-create-invoice,
	.frontend-company-switcher,
	.frontend-add-company,
	.frontend-user-menu { display: flex; width: min(100%, 22rem); margin: 0 auto .65rem; }
	.frontend-company-switcher .form-select,
	.frontend-user-trigger { width: 100%; }
	.frontend-company-switcher .form-select { text-align: center; text-align-last: center; }
	.frontend-company-switcher .form-select,
	.frontend-add-company,
	.frontend-user-trigger { min-height: 42px; }
	.frontend-add-company,
	.frontend-user-trigger { align-items: center; justify-content: center; gap: .45rem; }
	.frontend-create-invoice { margin-top: .35rem; margin-bottom: .9rem; filter: drop-shadow(0 .45rem .7rem rgba(32, 201, 130, .22)); }
	.frontend-create-invoice:has(> .dropdown-menu.show) { z-index: 2; }
	.frontend-create-invoice .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; font-size: .9rem; font-weight: 750; }
	.invoice-create-button > .dropdown-toggle-split { position: relative; }
	.invoice-create-button > .dropdown-toggle-split::before { position: absolute; top: 50%; left: 0; width: 1px; height: 1.5rem; transform: translateY(-50%); background: #fff; content: ''; }
	.frontend-add-company { border-color: #dce3e7; background: #f8faf9; color: #65726c; font-weight: 600; }
	.frontend-user-trigger { padding: .35rem .75rem; border: 1px solid #dce3e7; border-radius: .55rem; background: #f8faf9; }
	.frontend-mobile-label { display: inline; font-size: .84rem; font-weight: 650; }
	.frontend-user-menu .dropdown-menu { width: 100%; }
	.dashboard-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dashboard-attention-grid { grid-template-columns: 1fr; }
	.invoice-smart-table > thead { display: none; }
	.invoice-smart-table,
	.invoice-smart-table > tbody { display: block; width: 100%; }
	.invoice-smart-table > tbody > tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; margin-bottom: .7rem; border: 1px solid var(--invoice-border); border-left: 4px solid #20c982; border-radius: .85rem; background: #fff; filter: drop-shadow(0 .3rem .65rem rgba(23, 35, 49, .045)); }
	.invoice-smart-table > tbody > tr.is-overdue { border-left-color: #ef6a71; }
	.invoice-smart-table > tbody > tr.is-draft { border-left-color: #aab5af; }
	.invoice-smart-table > tbody > tr > td { display: block; height: auto; border: 0; background: transparent; }
	.invoice-smart-table > tbody > tr > td:first-child,
	.invoice-smart-table > tbody > tr > td:last-child { border: 0; border-radius: 0; }
	.invoice-smart-identity-cell { grid-column: 1; grid-row: 1; padding: .9rem .5rem .35rem .9rem !important; }
	.invoice-smart-amount-cell { grid-column: 2; grid-row: 1; align-self: start; padding: .9rem .9rem .35rem .4rem !important; }
	.invoice-smart-identity-cell,
	.invoice-smart-partner { text-align: left; }
	.invoice-smart-partner,
	.invoice-smart-amount { line-height: 1.3; }
	.invoice-smart-dates-cell { grid-column: 1; grid-row: 2; padding: .35rem .5rem .9rem .9rem !important; }
	.invoice-smart-status-cell { grid-column: 1 / -1; grid-row: 3; padding: .7rem .9rem !important; border-top: 1px solid #edf0ee !important; }
	.invoice-smart-actions-cell { grid-column: 2; grid-row: 2; align-self: end; width: auto; padding: .25rem .9rem .7rem .35rem !important; text-align: right; }
	.invoice-smart-partner { max-width: none; font-size: 1.05rem; }
	.invoice-smart-dates { display: flex; gap: 1.2rem; }
	.invoice-smart-status { min-width: 0; flex-direction: row; align-items: center; justify-content: space-between; }
	.invoice-smart-amount strong { font-size: 1.08rem; }
}

@media (max-width: 575.98px) {
	.registration-success-page { margin-top: 1rem; padding: 0 .65rem; }
	.registration-success-card { padding: 1.5rem 1rem; }
	.registration-success-actions { align-items: stretch; flex-direction: column; }
	.registration-success-actions .btn { width: 100%; }
	.registration-progress { gap: .25rem; padding: 0; }
	.registration-progress > div > strong { font-size: .65rem; }
	.verification-resend-page { margin-top: 1rem; padding: 0 .65rem; }
	.verification-resend-card { padding: 1.5rem 1rem 0; }
	.verification-resend-actions { align-items: stretch; flex-direction: column-reverse; margin-right: -1rem; margin-left: -1rem; padding-right: 1rem; padding-left: 1rem; }
	.verification-resend-actions .btn { width: 100%; }
	.frontend-create-invoice > .btn:first-child { flex: 1 1 auto; }
	.frontend-body .box-white { padding-right: 1rem; padding-left: 1rem; }
	.frontend-body .box-title { margin-right: -1rem; margin-left: -1rem; }
	.dashboard-hero,
	.dashboard-empty-actions { align-items: stretch; flex-direction: column; gap: 1rem; }
	.dashboard-primary-action { width: 100%; }
	.dashboard-primary-action > .btn:first-child,
	.invoice-list-create > .btn:first-child { flex: 1 1 auto; }
	.dashboard-onboarding { padding: 1.15rem; }
	.dashboard-kpis { grid-template-columns: 1fr; }
	.invoice-list-title { font-size: 1.65rem; }
	.invoice-list-title svg { display: none; }
	.invoice-list-subtitle { margin-bottom: .9rem; }
	.invoice-list-create { width: 100%; margin: .3rem 0 1rem; }
	.invoice-list-header-actions { display: block; }
	.invoice-list-export { width: 100%; margin: .3rem 0 .5rem; }
	.invoice-export-summary { align-items: flex-start; flex-direction: column; gap: .2rem; }
	.invoice-search-field,
	.invoice-search-action { width: 100%; }
	.invoice-search-field .form-control,
	.invoice-search-action .btn { width: 100%; }
	.invoice-search-action .btn { min-height: 42px; }
	.invoice-smart-list .table-responsive { overflow: visible; }
	.invoice-smart-table > tbody > tr:hover { transform: none; }
	.invoice-smart-document { font-size: .78rem; }
	.invoice-smart-dates { gap: .8rem; }
	.invoice-smart-dates small { font-size: .68rem; }
	.invoice-smart-dates strong { font-size: .8rem; }
	.invoice-smart-status { gap: .55rem; flex-wrap: wrap; }
	.invoice-action-button { width: 2.15rem; height: 2.15rem; }
	.dashboard-panel-heading,
	.dashboard-section-heading { align-items: flex-start; flex-direction: column; }
	.dashboard-chart,
	.dashboard-chart-small { height: 260px; }
	.company-settings-content { padding: 1.1rem; }
	.company-settings-tabs { overflow-x: auto; flex-wrap: nowrap; padding-right: .65rem; padding-left: .65rem; }
	.company-settings-tabs .nav-link { white-space: nowrap; }
	.company-settings-actions { padding: 1rem 1.1rem; }
	.company-settings-actions .btn { width: 100%; }
	.nav-connect-heading { align-items: flex-start; flex-direction: column; gap: .75rem; }
	.nav-guide-card { position: static; }
	.nav-form-heading,
	.nav-form-card form { padding-right: 1.1rem; padding-left: 1.1rem; }
	.nav-test-notice { margin-right: 1.1rem; margin-left: 1.1rem; }
	.nav-form-actions { margin-right: -1.1rem; margin-left: -1.1rem; padding-right: 1.1rem; padding-left: 1.1rem; }
	.nav-form-actions .btn { width: 100%; }
	.app-list-heading { align-items: stretch; flex-direction: column; gap: .85rem; }
	.app-list-heading .btn { width: 100%; }
	.pending-invitation-item { grid-template-columns: auto minmax(0, 1fr); }
	.pending-invitation-item > .badge,
	.pending-invitation-item > .btn { grid-column: 2; justify-self: start; }
	.company-invite-info { position: static; }
	.company-invite-form { padding-right: 1.1rem; padding-left: 1.1rem; }
	.company-invite-actions { align-items: stretch; flex-direction: column-reverse; margin-right: -1.1rem; margin-left: -1.1rem; padding-right: 1.1rem; padding-left: 1.1rem; }
	.company-invite-actions .btn { width: 100%; }
	.company-prefix-editor-info { position: static; }
	.company-prefix-editor-form { padding-right: 1.1rem; padding-left: 1.1rem; }
	.company-prefix-editor-actions { align-items: stretch; flex-direction: column-reverse; margin-right: -1.1rem; margin-left: -1.1rem; padding-right: 1.1rem; padding-left: 1.1rem; }
	.company-prefix-editor-actions .btn { width: 100%; }
	.company-add-guide { position: static; }
	.company-type-field > div { grid-template-columns: 1fr; }
	.company-type-option { min-height: auto; }
	.company-add-section { padding-right: 1.1rem; padding-left: 1.1rem; }
	.company-add-actions { align-items: stretch; flex-direction: column-reverse; padding-right: 1.1rem; padding-left: 1.1rem; }
	.company-add-actions .btn { width: 100%; }
	.tax-export-mode-field > div { grid-template-columns: 1fr; }
	.tax-export-actions { align-items: stretch; flex-direction: column; }
	.tax-export-actions .btn { width: 100%; }
	.tax-export-info { position: static; }
}

/* Loader styles */
.loader {
	border: 3px solid #fff;
    border-top: 3px solid #000;
    border-radius: 50%;
    width: 25px;
    height: 25px;
	display: inline-block;
    animation: spin 1s linear infinite;
}

/* Spin animation */
@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}
  
.page-title {
	margin: 2rem 0 1rem 0;
}
.btn-new-invoice {
	margin: 1rem 0 2rem 0;
}
.btn-new-invoice .bi {
	width: 1.5em;
    height: 1.5em;
	vertical-align: -.4em;
}
.page-title .bi {
	width: 1em;
    height: 1em;
}
.offcanvas .bi {
	width: 1.1em;
    height: 1.1em;
	vertical-align: -.2em;
 }
 
.btn-primary {
	color: #fff;
	border-color: #20d489;
	background-color: #20d489;

	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-style: normal;
}
.btn-primary:hover {
	color: #fff;
	border-color: #19b674;
	background-color: #19b674;
}

.btn-outline-primary {
	color: #20d489;
	border-color: #20d489;
	background-color: #fff;

	font-family: "Poppins", sans-serif;
	font-weight: normal;
	font-style: normal;
}
.btn-outline-primary:hover {
	color: #fff;
	border-color: #19b674;
	background-color: #19b674;
}

.btn-outline-grey {
	color: #212529;
	border-color: #212529;
	background-color: #fff;

	font-family: "Poppins", sans-serif;
	font-weight: normal;
	font-style: normal;
}

.btn.btn-bg-light {
    border-color: #f5f8fa;
    background-color: #f5f8fa;
}
.btn.btn-grey {
	border-color: #e9e8e8;
    background-color: #f6f2f2;
}
.btn.btn-white {
    border-color: #d8d1d1;
    background-color: #fff;
}

.active>.page-link, .page-link.active {
	background-color: #19b674;
    border-color: #19b674;
}
.page-link {
	color: #000;
}

.box { padding-bottom: 2rem; padding: 0 0.75rem 2rem 0.75rem; margin-bottom: 1rem; }
.box-white { background: #fff; border: 1px solid #f6f1ea; }
.box-title { 
	font-size: 1.3rem;
    font-weight: 700;
    padding: 15px 5px 10px;
}
.box label { font-weight: 700; margin-bottom: 3px;
    margin-top: 12px; }
.box hr {
	margin-bottom: .5rem !important;
	opacity: 1;
	color: #d8d1d1;
}
.row-heading { font-weight: 600; padding-bottom:5px; }
.row-total { font-size: 1.1rem; }
.invoice-editor-errors { font-size: 14px; line-height: 1.5; }
.invoice-editor-errors > p { margin-bottom: .4rem; font-size: inherit; font-weight: 600; line-height: inherit; }
.invoice-editor-errors > ul { margin-bottom: 0; padding-left: 1.25rem; font-size: inherit; font-weight: 400; line-height: inherit; }
.invoice-editor-errors > ul > li { font-size: inherit; line-height: inherit; }
.invoice-editor-actions { display: flex; justify-content: center; align-items: center; gap: .75rem; margin: 1.5rem 0 3rem; padding-top: .75rem; }
.invoice-editor-final-actions { display: flex; align-items: center; gap: .75rem; }
.invoice-editor-actions .invoice-editor-button { display: inline-flex; justify-content: center; align-items: center; gap: .8rem; min-height: 58px; padding: .85rem 1.5rem; border: 1px solid transparent; border-radius: 1rem; font-size: 16px; font-weight: 650; line-height: 1.4; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease; }
.invoice-editor-button svg { flex-shrink: 0; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.invoice-editor-actions .invoice-editor-button-draft { background: transparent; border-color: #dce6df; color: #526359; }
.invoice-editor-actions .invoice-editor-button-draft:hover { background: #f1f8f4; border-color: #b3d8c3; color: #2b4435; }
.invoice-editor-actions .invoice-editor-button-preview { background: #e9fbf2; border-color: #b9edd3; color: #176443; }
.invoice-editor-actions .invoice-editor-button-preview:hover { background: #d7f8e8; border-color: #71d9a9; color: #124e34; box-shadow: none; }
.invoice-editor-button-preview svg, .invoice-editor-button-create svg { box-sizing: content-box; padding: 5px; border-radius: .55rem; background: rgba(255,255,255,.6); }
.invoice-editor-actions .invoice-editor-button-create { min-width: 400px; padding-right: 1.75rem; background: #20d489; border-color: #20d489; color: #fff; box-shadow: none; }
.invoice-editor-actions .invoice-editor-button-create:hover { background: #34e298; border-color: #34e298; color: #fff; box-shadow: none; }
.invoice-editor-button-create svg { color: #083c28; }
.invoice-preview-create { min-width: 0; min-height: 40px; padding: .5rem .85rem; border: 1px solid #20d489; border-radius: .7rem; background: #20d489; color: #fff; font-size: 14px; font-weight: 600; line-height: 1.4; box-shadow: none; }
.invoice-preview-create:not([hidden]) { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; }
.invoice-preview-create:hover, .invoice-preview-create:focus { background: #34e298; border-color: #34e298; color: #fff; box-shadow: none; }
.invoice-preview-create:focus-visible { outline: 3px solid #20c982; outline-offset: 3px; }
.invoice-preview-create svg { box-sizing: content-box; width: 16px; height: 16px; flex-shrink: 0; padding: 4px; border-radius: .4rem; background: rgba(255,255,255,.6); color: #083c28; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.invoice-preview-close { min-height: 40px; padding: .5rem .85rem; border: 1px solid #dce6df; border-radius: .7rem; background: #f3f6f4; color: #526359; font-size: 14px; font-weight: 600; line-height: 1.4; box-shadow: none; }
.invoice-preview-close:not([hidden]) { display: inline-flex; align-items: center; justify-content: center; }
.invoice-preview-close:hover, .invoice-preview-close:focus { background: #e8eee9; border-color: #c6d3ca; color: #2b4435; box-shadow: none; }
.invoice-preview-close:focus-visible { outline: 3px solid #20c982; outline-offset: 3px; }
.invoice-editor-actions .invoice-editor-button:not(:disabled):hover { transform: translateY(-2px); }
.invoice-editor-actions .invoice-editor-button:not(:disabled):active { transform: translateY(1px); box-shadow: none; }
.invoice-editor-actions .invoice-editor-button:focus { box-shadow: none; }
.invoice-editor-actions .invoice-editor-button:focus-visible { outline: 3px solid #20c982; outline-offset: 3px; }
.invoice-editor-actions .invoice-editor-button:disabled { opacity: .55; box-shadow: none; }
@media (prefers-reduced-motion: reduce) {
    .invoice-editor-actions .invoice-editor-button { transition: none; }
    .invoice-editor-actions .invoice-editor-button:not(:disabled):hover,
    .invoice-editor-actions .invoice-editor-button:not(:disabled):active { transform: none; }
}
@media (max-width: 767px) {
    .invoice-editor-actions, .invoice-editor-final-actions { flex-direction: column; align-items: stretch; gap: .65rem; }
    .invoice-editor-actions .invoice-editor-button { width: 100%; }
    .invoice-editor-actions .invoice-editor-button-create { min-width: 0; }
}
.amount-total { color: #19b674; font-weight: 700; }

.box-auth { max-width: 460px; margin: 0 auto; }

/* Auth (login / register) split layout */
.auth-shell {
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	gap: 2rem;
	align-items: center;
	width: 100%;
	max-width: 1060px;
	margin: 0 auto;
	padding: 1.25rem 1rem 2rem;
}
.auth-aside {
	position: relative;
	overflow: hidden;
	border-radius: 1.1rem;
	padding: 2.5rem 2.5rem 0;
	background: linear-gradient(150deg, #0f7a4d 0%, #16a86a 55%, #20d489 100%);
	color: #fff;
	box-shadow: 0 1rem 2.5rem rgba(15, 122, 77, .28);
}
.auth-aside::before,
.auth-aside::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
	pointer-events: none;
}
.auth-aside::before {
	top: -4rem;
	right: -3rem;
	width: 12rem;
	height: 12rem;
}
.auth-aside::after {
	bottom: -5rem;
	left: -3rem;
	width: 14rem;
	height: 14rem;
	background: rgba(255, 255, 255, .08);
}
.auth-aside-inner { position: relative; z-index: 1; }
.auth-aside-art {
	position: relative;
	z-index: 1;
	margin: 2rem -2.5rem 0;
	border-radius: 1.25rem 1.25rem 0 0;
	overflow: hidden;
}
.auth-aside-art img { display: block; width: 100%; height: auto; }
.auth-eyebrow {
	display: inline-block;
	margin-bottom: 1rem;
	padding: .3rem .7rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, .16);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.auth-aside-title {
	margin: 0;
	color: #fff;
	font-size: 2rem;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -.02em;
}
.auth-aside-lead {
	margin: .85rem 0 1.5rem;
	color: rgba(255, 255, 255, .88);
	font-size: 1rem;
	font-weight: 400;
}
.auth-benefits {
	display: grid;
	gap: .75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.auth-benefits li {
	position: relative;
	padding-left: 1.9rem;
	color: rgba(255, 255, 255, .97);
	font-size: .95rem;
	font-weight: 500;
}
.auth-benefits li::before {
	content: "✓";
	position: absolute;
	top: .05rem;
	left: 0;
	display: grid;
	place-items: center;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 50%;
	background: rgba(255, 255, 255, .22);
	color: #fff;
	font-size: .72rem;
	font-weight: 800;
}
.auth-aside-foot {
	margin-top: 1.75rem;
	color: rgba(255, 255, 255, .8);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .03em;
}
.auth-card-column {
	display: flex;
	align-items: center;
	justify-content: center;
}
.auth-shell .box-auth {
	width: 100%;
	max-width: 480px;
	margin: 0 auto;
	padding: 0 1.25rem 1.75rem;
	border-color: #e3e8ec;
	border-radius: 1rem;
	box-shadow: 0 1rem 2.5rem rgba(23, 35, 49, .1);
}
.auth-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: .35rem;
	padding: .35rem;
	margin: .9rem .25rem 1rem;
	border-radius: .75rem;
	background: #eef2f1;
}
.auth-tab {
	display: block;
	padding: .6rem .5rem;
	border-radius: .55rem;
	color: #5b6b76;
	font-size: .9rem;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.auth-tab:hover,
.auth-tab:focus { color: #172331; text-decoration: none; }
.auth-tab.is-active {
	background: #fff;
	color: #137a4e;
	box-shadow: 0 .2rem .6rem rgba(23, 35, 49, .1);
}

@media (max-width: 991.98px) {
	.auth-shell {
		grid-template-columns: 1fr;
		gap: 1.25rem;
		max-width: 520px;
		padding-top: 1rem;
	}
	.auth-aside {
		padding: 0;
		border-radius: 1rem;
		background: #fff;
		box-shadow: 0 .6rem 1.6rem rgba(23, 35, 49, .08);
	}
	.auth-aside::before,
	.auth-aside::after { display: none; }
	.auth-aside-inner { display: none; }
	.auth-aside-art {
		margin: 0;
		border-radius: 1rem;
	}
}

@media (min-width: 992px) {
	.hidden-lg {
		display: none;
	}
}
.show-lg { display: none; }
@media (min-width: 992px) {
	.show-lg {
		display: flex;
	}
}

@media (max-width: 991px) {
	.invoice-row-net {
			text-align: left !important;
			
	}
	.invoice-row-net span {
		top: 0 !important;
	}
}

.has-error .help-block {
	color: #dc3545;
	font-size: 90%;
}
.has-error input, .has-error select {
	border-color: #dc3545;
}
label.control-label {
	font-weight: bold;
}
.has-error .form-control, .has-error .form-select {
    background-color: #f3dcdc;
}

.card.border-default { border: none; }
.card-header { background: #f0f1f5; border: none; border-radius: 0; }
.card-footer { background: #e6e8f0; }
.kv-grid-table thead { border-bottom: 1px solid #dee2e6;  }
.kv-grid-table thead a { font-weight: 700; text-decoration: none; color: #000; }

.kv-grid-table tr td {cursor: pointer;vertical-align: middle;}

.footer { margin-top: 3rem !important; }

.modal-content { border-radius: 0; background: #757575; }
.modal-content .modal-title { color: #fff; }
@media (min-width: 1200px) {
    .modal-xl {
        --bs-modal-width: 1020px;
    }
}
#add-invoice-item .table-responsive { overflow: visible; }

/* A tétel és a hozzá tartozó megjegyzés-sor együtt legyen kijelölve. */
#add-invoice-item table > tbody > tr.invoice-item-note-row:hover > *,
#add-invoice-item table > tbody > tr.kv-tabform-row:hover + tr.invoice-item-note-row > *,
#add-invoice-item table > tbody > tr.kv-tabform-row:has(+ tr.invoice-item-note-row:hover) > * {
    --bs-table-color-state: var(--bs-table-hover-color);
    --bs-table-bg-state: var(--bs-table-hover-bg);
}

#add-invoice-item .invoice-item-note-link,
#add-invoice-item .invoice-item-copy-link,
#add-invoice-item .invoice-item-delete-link {
    font-size: .78rem;
    font-weight: 400;
    white-space: nowrap;
    text-decoration: none;
    -webkit-user-select: none;
    user-select: none;
}

#add-invoice-item .invoice-item-note-link:hover,
#add-invoice-item .invoice-item-copy-link:hover,
#add-invoice-item .invoice-item-delete-link:hover,
#add-invoice-item .invoice-item-note-link:focus-visible,
#add-invoice-item .invoice-item-copy-link:focus-visible,
#add-invoice-item .invoice-item-delete-link:focus-visible {
    text-decoration: underline;
    text-underline-offset: .15em;
}

/* Compact, readable NAV VAT selector on desktop and touch devices. */
.invoice-vat-option { padding: .2rem 0; line-height: 1.25; white-space: normal; }
.invoice-vat-option-title { font-size: .95rem; font-weight: 600; color: #1f2937; }
.invoice-vat-option-description { margin-top: .15rem; font-size: .78rem; line-height: 1.3; color: #667085; }
.invoice-vat-help { display: none; margin-top: .3rem; font-size: .72rem; line-height: 1.3; color: #667085; white-space: normal; }
.invoice-vat-select + .select2-container .select2-selection--single { min-height: 38px; }
.invoice-vat-select + .select2-container .select2-selection__rendered { font-size: .9rem; font-weight: 600; }
.select2-results__option { min-height: 42px; }

@media (max-width: 767.98px) {
    .invoice-vat-option-title { font-size: 1rem; }
    .invoice-vat-option-description { font-size: .85rem; }
    .invoice-vat-help { font-size: .8rem; }
    .select2-results__option { min-height: 48px; padding: .55rem .7rem; }
    .select2-container--open .select2-dropdown { max-width: calc(100vw - 24px); }

    #add-invoice-item .table-responsive { overflow: visible; }
    #add-invoice-item table,
    #add-invoice-item tbody { display: block; width: 100%; }
    #add-invoice-item thead { display: none; }
    #add-invoice-item tr.kv-tabform-row {
        display: block;
        width: 100%;
        margin: 0 0 1rem;
        padding: .85rem;
        border: 1px solid #dce3e9;
        border-radius: .75rem;
        background: #fff;
        box-shadow: 0 .2rem .65rem rgba(23, 35, 49, .07);
    }
    #add-invoice-item tr.kv-tabform-row > td:not([hidden]) {
        display: block;
        width: 100% !important;
        padding: .48rem 0;
        border: 0;
    }
    #add-invoice-item tr.kv-tabform-row > td[style*="display: none"] { display: none !important; }
    #add-invoice-item tr.kv-tabform-row > td::before {
        content: attr(data-mobile-label);
        display: block;
        margin-bottom: .35rem;
        color: #52606d;
        font-size: .8rem;
        font-weight: 600;
        line-height: 1.25;
    }
    #add-invoice-item tr.kv-tabform-row input,
    #add-invoice-item tr.kv-tabform-row select,
    #add-invoice-item tr.kv-tabform-row .select2-container,
    #add-invoice-item tr.kv-tabform-row .twitter-typeahead { width: 100% !important; min-width: 0; }
    #add-invoice-item tr.kv-tabform-row .invoice-vat-help { margin-top: .35rem; }
    #add-invoice-item tr.kv-tabform-row > td.invoice-item-action-cell {
        display: flex;
        justify-content: flex-end;
        padding-top: .6rem;
        border-top: 1px solid #edf1f4;
    }
    #add-invoice-item tr.kv-tabform-row > td.invoice-item-action-cell::before { display: none; }
}
.offcanvas-ajax-content {
	display: flex;
	min-height: 0;
	flex: 1 1 auto;
	flex-direction: column;
	overflow: hidden;
}

.offcanvas-ajax-content > .offcanvas-body {
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.offcanvas-loading {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	min-height: 12rem;
	color: #52606d;
	font-size: .9rem;
	font-weight: 600;
}

.offcanvas-loading .spinner-border {
	width: 2.25rem;
	height: 2.25rem;
	color: #20b978;
}

.invoice-chain-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 1rem;
	color: #26352f;
	text-align: left;
	background: #fff;
	border: 0;
}

.invoice-chain-toggle:hover,
.invoice-chain-toggle:focus-visible {
	color: var(--bs-primary);
	background: #f7faf8;
}

.invoice-chain-toggle:focus-visible {
	outline: 3px solid rgba(var(--bs-primary-rgb), .2);
	outline-offset: -3px;
}

.invoice-chain-chevron {
	flex: 0 0 auto;
	transition: transform .2s ease;
}

.invoice-chain-toggle.collapsed .invoice-chain-chevron {
	transform: rotate(-90deg);
}

.invoice-chain-action-chevron {
	flex: 0 0 auto;
}

.invoice-subpanel-link {
	align-items: center;
}

.invoice-subpanel-chevron {
	flex: 0 0 auto;
	color: #6c757d;
	font-size: 1.7rem;
	font-weight: 300;
	line-height: 1;
	transition: transform .15s ease, color .15s ease;
}

.invoice-subpanel-link:hover .invoice-subpanel-chevron,
.invoice-subpanel-link:focus-visible .invoice-subpanel-chevron {
	color: var(--bs-primary);
	transform: translateX(.15rem);
}

.invoice-offcanvas-back {
	flex: 0 0 auto;
	color: #495057;
	font-size: 2rem;
	line-height: 1;
	text-decoration: none;
}

.invoice-offcanvas-back:hover,
.invoice-offcanvas-back:focus-visible {
	color: var(--bs-primary);
}

.invoice-chain-content {
	padding: 1rem 1rem 1rem;
	color: #5f6e68;
	font-size: .9rem;
}

.invoice-chain-content p {
	margin-bottom: .55rem;
}

.invoice-type-picker {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: .75rem;
}

.invoice-type-option {
	display: flex;
	align-items: center;
	gap: .75rem;
	min-width: 0;
	padding: .9rem 1rem;
	color: #495057;
	text-align: left;
	background: #fff;
	border: 1px solid #dee2e6;
	border-radius: .65rem;
	transition: border-color .15s ease, box-shadow .15s ease, color .15s ease;
}

.invoice-type-option:hover {
	color: var(--bs-primary);
	border-color: var(--bs-primary);
}

.invoice-type-option:focus-visible {
	outline: 3px solid rgba(var(--bs-primary-rgb), .25);
	outline-offset: 2px;
}

.invoice-type-option.is-active {
	color: var(--bs-primary);
	background: rgba(var(--bs-primary-rgb), .06);
	border-color: var(--bs-primary);
	box-shadow: 0 0 0 1px var(--bs-primary);
}

.invoice-type-option svg {
	width: 1.8rem;
	height: 1.8rem;
	flex: 0 0 auto;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.invoice-type-option span,
.invoice-type-option small {
	display: block;
}

.invoice-type-option small {
	margin-top: .15rem;
	color: #6c757d;
	font-size: .78rem;
}

@media (max-width: 767.98px) {
	.invoice-type-picker {
		grid-template-columns: 1fr;
		gap: .5rem;
	}

	.invoice-type-option {
		padding: .7rem .85rem;
	}
}

.invoice-appearance-picker {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.invoice-appearance-info {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 1.15rem;
	height: 1.15rem;
	padding: 0;
	color: #6c757d;
	background: none;
	border: 0;
	cursor: pointer;
	position: relative;
	top: 10px;
	position: relative;
    top: 10px;
}

.invoice-appearance-info:hover,
.invoice-appearance-info:focus-visible {
	color: var(--bs-primary);
	outline: none;
}

.invoice-appearance-info svg {
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

@media (max-width: 767.98px) {
	.invoice-appearance-picker {
		grid-template-columns: 1fr;
	}
}
/* Error / status pages */
.error-page { display: flex; justify-content: center; width: 100%; padding: 1.5rem 0 3rem; }
.error-card { position: relative; overflow: hidden; width: min(100%, 620px); padding: 2.6rem 2.25rem 2.1rem; border: 1px solid #dce3e8; border-radius: 1rem; background: #fff; box-shadow: 0 .75rem 2.2rem rgba(23,35,49,.1); text-align: center; }
.error-card::before { position: absolute; top: 0; right: 0; left: 0; height: 4px; background: var(--error-accent, #20d489); content: ''; }
.error-card::after { position: absolute; top: -95px; right: -75px; width: 230px; height: 230px; border-radius: 50%; background: radial-gradient(circle, rgba(32,212,137,.12), rgba(32,212,137,.03) 55%, transparent 70%); content: ''; pointer-events: none; }
.error-card.is-client { --error-accent: #e0962f; }
.error-card.is-server { --error-accent: #dc5a63; }
.error-visual { position: relative; display: grid; place-items: center; width: 5.5rem; height: 5.5rem; margin: 0 auto 1.15rem; border-radius: 1.35rem; background: #f3f7f5; color: var(--error-accent, #20d489); }
.error-visual svg { width: 2.35rem; height: 2.35rem; }
.error-code { position: absolute; right: -.55rem; bottom: -.5rem; min-width: 2.7rem; padding: .2rem .55rem; border: 3px solid #fff; border-radius: 999px; background: var(--error-accent, #20d489); color: #fff; font-size: .78rem; font-weight: 800; letter-spacing: .02em; }
.error-eyebrow { margin: 0 0 .4rem; color: #15915d; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.error-card.is-client .error-eyebrow,
.error-card.is-server .error-eyebrow { color: var(--error-accent); }
.error-title { margin: 0 0 .85rem; color: #172331; font-size: clamp(1.5rem, 4vw, 1.95rem); font-weight: 760; letter-spacing: -.03em; line-height: 1.22; }
.error-message { display: block; max-width: 500px; margin: 0 auto 1.45rem; padding: .85rem 1.15rem; border: 1px solid #e5eaed; border-radius: .7rem; background: #f8fafb; color: #46545f; font-size: .94rem; line-height: 1.55; text-align: left; }
.error-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .65rem; }
.error-help { margin: 1.35rem 0 0; color: #75828c; font-size: .85rem; line-height: 1.55; }
.error-help a { color: #168657; font-weight: 650; text-decoration: none; }
.error-help a:hover { text-decoration: underline; }
@media (max-width: 480px) {
	.error-card { padding: 2.1rem 1.35rem 1.7rem; }
}

/* A nem szerkeszthető értékek ugyanazt a magasságot kapják, mint az inputok. */
#add-invoice-item tr.kv-tabform-row > td { vertical-align: top !important; }
#add-invoice-item tr.kv-tabform-row > td.invoice-item-serial,
#add-invoice-item .invoice-item-subtotal {
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
}
#add-invoice-item tr.kv-tabform-row > td.invoice-item-serial {
    padding-top: .85rem;
}
#add-invoice-item .invoice-item-subtotal {
    display: inline-block;
    padding: 9px 0;
}
#add-invoice-item .invoice-item-note-row > td:last-child { padding-left: .75rem !important; }
@media (max-width: 767.98px) {
    #add-invoice-item tr.kv-tabform-row > td.invoice-item-serial {
        font-size: 1rem !important;
        padding-top: .48rem;
    }
    #add-invoice-item tr.kv-tabform-row > td.invoice-item-serial::before { display: none; }
    #add-invoice-item .invoice-item-note-row { display: block; width: 100%; }
    #add-invoice-item .invoice-item-note-row > td.invoice-item-note-spacer { display: none; }
    #add-invoice-item .invoice-item-note-row > td:last-child {
        display: block;
        width: 100%;
        padding-left: .85rem !important;
        padding-right: .85rem !important;
    }
}
/* A mezők, megjegyzés és műveletek egyetlen tételblokkot alkotnak. */
#add-invoice-item tr.invoice-item-with-note > td {
    border-bottom: 0 !important;
    padding-bottom: .25rem;
}
#add-invoice-item tr.invoice-item-note-row > td {
    border-top: 0 !important;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    background: #fff;
}
#add-invoice-item .invoice-item-note-toggle { border: 0; padding: 0; }
#add-invoice-item .invoice-item-subtotal { white-space: nowrap; }
@media (max-width: 767.98px) {
    #add-invoice-item tr.kv-tabform-row.invoice-item-with-note {
        margin-bottom: 0;
        border-bottom: 0;
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
        box-shadow: none;
    }
    #add-invoice-item tr.invoice-item-note-row {
        margin-bottom: 1rem;
        border: 1px solid #dce3e9;
        border-top: 0;
        border-radius: 0 0 .75rem .75rem;
        background: #fff !important;
        overflow: hidden;
    }
    #add-invoice-item tr.invoice-item-note-row > td { border: 0; }
    #add-invoice-item tr.kv-tabform-row > td.invoice-item-action-cell { border-top: 0; }
}
#add-invoice-item .invoice-item-note-link,
#add-invoice-item .invoice-item-copy-link,
#add-invoice-item .invoice-item-delete-link { display: inline-flex; align-items: center; gap: .3rem; }

/* Csukott megjegyzésnél az elválasztó közvetlenül a tételsor alá kerül. */
#add-invoice-item tr.invoice-item-with-note:not(.invoice-item-note-open) > td {
    border-bottom: 1px solid var(--bs-border-color, #dee2e6) !important;
}
@media (max-width: 767.98px) {
    #add-invoice-item tr.kv-tabform-row.invoice-item-with-note:not(.invoice-item-note-open) {
        margin-bottom: 1rem;
        border-bottom: 1px solid #dce3e9;
        border-radius: .75rem;
    }
    #add-invoice-item tr.kv-tabform-row.invoice-item-with-note:not(.invoice-item-note-open) > td {
        border-bottom: 0 !important;
    }
}
#add-invoice-item tr.kv-tabform-row > td.invoice-item-name-cell {padding-bottom: 10px;}

#add-invoice-item .invoice-item-add-button {
    color: #0e7549;
    background: transparent;
    border: 1px solid #0e7549;
    box-shadow: none;
}
#add-invoice-item .invoice-item-add-button:hover,
#add-invoice-item .invoice-item-add-button:focus-visible,
#add-invoice-item .invoice-item-add-button:active {
    color: #0e7549;
    background: #edf5f0;
    border-color: #0e7549;
}
/* Az új tétel gomb körüli sáv az oldal hátterét használja. */
#add-invoice-item .card,
#add-invoice-item .panel,
#add-invoice-item .kv-panel-after {
    background-color: transparent;
}
#add-invoice-item .kv-panel-after {
    border-top: 0;
    box-shadow: none;
}
#add-invoice-item .invoice-item-static-value,
#add-invoice-item .invoice-item-subtotal {
    display: inline-flex;
    align-items: center;
    height: 42px;
    padding: 0;
    font-size: 1rem;
    line-height: 1.5;
    vertical-align: top;
}

@media (max-width: 767.98px) {
    /* Érintés után se maradjon aktív a táblázat hover-kiemelése. */
    #add-invoice-item table > tbody > tr.kv-tabform-row > *,
    #add-invoice-item table > tbody > tr.invoice-item-note-row > * {
        --bs-table-bg-state: transparent !important;
        --bs-table-color-state: var(--bs-table-color) !important;
    }
    #add-invoice-item tr.kv-tabform-row > td.invoice-item-mobile-actions::before { display: none; }
    #add-invoice-item tr.kv-tabform-row > td.invoice-item-mobile-actions {
        justify-content: center;
    }
    #add-invoice-item .invoice-item-note-toggle {
        width: 100%;
        justify-content: center;
    }
    #add-invoice-item tr.kv-tabform-row > td.invoice-item-unit-cell,
    #add-invoice-item .invoice-item-unit-cell input,
    #add-invoice-item tr.kv-tabform-row > td.invoice-item-subtotal-cell {
        text-align: center !important;
    }
}

/* Invoice search: explicit application, visible filter context. */
.invoice-filter-card { padding: 1.2rem; border: 1px solid #dfe6e2; border-radius: .9rem; background: #fff; }
.invoice-filter-form label { font-size: .8rem; font-weight: 600; color: #43574c; }
.invoice-filter-form label > .form-control, .invoice-filter-form label > .form-select { margin-top: .35rem; }
.invoice-filter-search { display: flex; align-items: flex-end; gap: .75rem; }
.invoice-filter-search > div { flex: 1; min-width: 0; }
.invoice-filter-search .form-control { margin-top: .35rem; min-height: 44px; font-size: 14px; }
.invoice-filter-submit svg, .invoice-filter-extra-toggle svg, .invoice-filter-mobile-toggle svg { width: 1.1em; height: 1.1em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vertical-align: -.15em; }
.invoice-filter-submit svg { margin-right: .3rem; }
.invoice-filter-extra-toggle svg { margin-left: .3rem; transition: transform .18s ease; }
.invoice-filter-extra-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.invoice-filter-submit { min-height: 44px; padding: .6rem 1.4rem; background: #e9fbf2; border: 1px solid #b9edd3; color: #176443; font-weight: 700; border-radius: .6rem; }
.invoice-filter-submit:hover, .invoice-filter-submit:focus { background: #d7f8e8; border-color: #71d9a9; color: #124e34; }
.invoice-filter-mobile-toggle { display: none; }
.invoice-filter-card :focus-visible { outline: 3px solid #20c982; outline-offset: 3px; }
.invoice-filter-main { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: .9rem; margin-top: 1rem; align-items: start; }
.invoice-filter-extra-toggle { align-self: start; margin-top: .25rem; padding: .5rem .65rem; border: 1px solid #dfe6e2; border-radius: .5rem; background: #f6f9f7; color: #43574c; font-size: .75rem; font-weight: 600; white-space: nowrap; }
.invoice-filter-extra-toggle:hover, .invoice-filter-extra-toggle[aria-expanded="true"] { background: #eaf4ee; border-color: #bed5c7; }
.invoice-filter-card summary { cursor: pointer; color: #43574c; font-size: .85rem; font-weight: 600; }
.invoice-period, .invoice-type-filter, .invoice-payment-filter { border: 1px solid #dfe6e2; border-radius: .6rem; padding: .75rem; }
.invoice-period-fields { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; margin-top: .8rem; }
.invoice-period-fields > :first-child, .invoice-period-presets { grid-column: 1 / -1; }
.invoice-period-presets { display: flex; flex-wrap: wrap; gap: .4rem; }
.invoice-period-presets button { border: 1px solid #c9ded2; background: #f1f8f4; color: #285c43; border-radius: .4rem; padding: .35rem .5rem; font-size: .75rem; }
.invoice-filter-check { display: flex; gap: .5rem; align-items: center; font-weight: 400 !important; cursor: pointer; }
.invoice-filter-check input { accent-color: #146b49; width: 16px; height: 16px; flex-shrink: 0; }
.invoice-type-options, .invoice-payment-options { display: grid; gap: .65rem; margin-top: .8rem; }
.invoice-filter-extra-checks { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .9rem 1.5rem; }
.invoice-filter-extra { border-top: 1px solid #edf1ee; margin-top: 1rem; padding-top: .8rem; }
.invoice-filter-extra-fields { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; padding-top: 1rem; }
.invoice-filter-active { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; border-top: 1px solid #edf1ee; margin-top: 1rem; padding-top: .9rem; font-size: .8rem; color: #63766a; }
.invoice-filter-chip { display: inline-flex; align-items: center; gap: .6rem; max-width: 100%; overflow-wrap: anywhere; padding: .35rem .65rem; border: 1px solid #c9ded2; border-radius: 1rem; color: #245a40; background: #eef8f2; text-decoration: none; }
.invoice-filter-chip:hover { background: #daeee2; color: #173f2b; }
.invoice-filter-clear { margin-left: auto; color: #43574c; }
@media (max-width: 767px) {
    .invoice-filter-card { padding: .9rem; }
    .invoice-filter-mobile-toggle { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; width: 100%; margin-top: .65rem; padding: .5rem .8rem; border: 1px solid #dfe6e2; border-radius: .6rem; background: #f6f9f7; color: #43574c; font-size: 14px; font-weight: 600; }
    .invoice-filter-mobile-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
    .invoice-filter-panel { display: none; }
    .invoice-filter-panel.is-mobile-open { display: block; }
    .invoice-filter-panel .invoice-filter-extra-toggle { display: none; }
    .invoice-filter-panel #invoice-extra-filters { display: block; }
    .invoice-filter-search .form-control { font-size: 16px; }
    .invoice-filter-main, .invoice-filter-extra-fields { grid-template-columns: 1fr; }
    .invoice-filter-search { flex-wrap: wrap; }
    .invoice-filter-search > div, .invoice-filter-submit { width: 100%; flex-basis: 100%; }
    .invoice-filter-clear { margin-left: 0; }
}
