
body {
    background-color: #ebedef;
    color: #2f2f2f;
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";    
    font-size: .875rem;
    min-height: 100vh;
    display: flex;
}

.gm-style-cc { display:none; }

.dropdown-toggle {
    white-space: normal;
}

hr {
    margin-top: 1.1rem;
    margin-bottom: 1.1rem;
}

.form-select {
    font-size: .875rem;
}

.form-select:focus {
    box-shadow: 0 0 0 0.05rem rgba(0,123,255,.25);
}

.form-control.is-valid:focus, .was-validated .form-control:valid:focus {
    box-shadow: 0 0 0 0.05rem rgb(25 135 84 / 25%);
}

.form-inline {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    -ms-flex-align: center;
    align-items: center;
}

.form-group {
    margin-bottom: 1rem;
}

.page-link:focus {
    z-index: 3;
    outline: 0;
    box-shadow: 0 0 0 0rem rgb(0 123 255 / 25%);
}

.btn-block {
    display: block;
    width: 100%;
}


.viewer-backdrop {
    background-color: rgba(0,0,0,1)!important;
}


.continuous_scan_success_label_color {
    color: #008000;
}

.continuous_scan_warning_label_color {
    color: #aa4400;
}

.continuous_scan_error_label_color {
    color: #800000;
}

.form-control-plain {
    padding-top: calc(.375rem + 1px);
    padding-bottom: calc(.375rem + 1px);
    margin-bottom: 0;
    font-size: inherit;
    line-height: 1.5;
}

.input-group-text {
    font-size: .875rem;
}

.add_right_border_radius {
    border-top-right-radius: .25rem!important;
    border-bottom-right-radius: .25rem!important;
}

.add_bottom_border_radius {
    border-bottom-right-radius: .25rem!important;
    border-bottom-left-radius: .25rem!important;
}

.tox-tinymce {
    border-color: #dee2e6!important;
    border-radius: var(--bs-border-radius)!important;
}

.form-control.is-invalid:focus, .was-validated .form-control:invalid:focus {
    box-shadow: 0 0 0 0.05rem rgba(220,53,69,.25);
}

.form-control:focus {
    box-shadow: 0 0 0 0.05rem rgba(0,123,255,.25);
}

.input-group>.input-group-append:not(:last-child)>.input-group-text{
    border-top-right-radius: .25rem;
    border-bottom-right-radius: .25rem;
}

.card-footer {
    background-color: #fff;    
}

.btn-group-btn-primary-selected {
    color: #fff!important;
    background-color: #0063a7!important;
    border-color: #0063a7!important;
}

.selection_modal_btn_margin {
    margin-top: 3px;
}

.img_upload_progress_bar_div {
    background-color: #ccc;
}

.scan_list_remove_item_icon_color {
    color: #dc3545;
}

.collection_open_close_icon_color {
    color: #0063a7;
}

.collection_remove_icon_color {
    color: #dc3545;
}

.list-group-item:focus, .list-group-item:hover {
    z-index: auto;
    text-decoration: none;
}

.select2-container{ width: 100% !important; }
.input-group > .select2-container { width: 1% !important; flex: 1 1 auto; min-width: 0; }


.obligatory_label {
    color: #e55353;
}


.container-fluid {
    padding-right: 30px;
    padding-left: 30px;    
}

.jumbotron {
    background-color: #d8dbe0;
    padding-right: 2rem;
    padding-left: 2rem;
    border-radius: 0.3rem;    
}

.list-group-item-dark {
    border-color: #dee2e6;    
    background-color: #e9ecef;
}

.modal_icon_color {
    color: #337ab7;
}

a,
a:hover,
a:focus {
    color: inherit;
    text-decoration: none;
    transition: all 0.3s;
}

.navbar {
    padding: 15px 10px;
    background: #fff;
    border: none;
    border-radius: 0;
    margin-bottom: 40px;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}

.navbar-btn {
    box-shadow: none;
    outline: none !important;
    border: none;
}

.line {
    width: 100%;
    height: 1px;
    border-bottom: 1px dashed #ddd;
    margin: 40px 0;
}

/* ---------------------------------------------------
    SIDEBAR STYLE
----------------------------------------------------- */

.wrapper {
    display: flex;
    width: 100%;
}

#sidebar {
    width: 256px;
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    z-index: 999;
    background: #3c4b64;
    color: #fff;
    transition: all 0.3s;
}

#sidebar.active {
    margin-left: -256px;
}

#sidebar.active.active2 {
    margin-left: -56px;
}

#sidebar.active2 {
    width: 56px;
}

#sidebar.active2 ul li a.dropdown-toggle {
    display: none;
}

#sidebar.active2 ul li ul {
    display: block;
}

#sidebar.active2 ul li ul li a {
    padding-left: 1rem!important;
}

#sidebar .sidebar-header {
    height: 84px;
    background: rgba(0,0,21,.2);
    color: #fff;
		display: flex;
    flex: 0 0 56px;
    align-items: center;
    justify-content: left;
}

#sidebar ul.components {
    padding-top: 0 0;
}

#sidebar ul p {
    color: #fff;
    padding: 10px;
}

#sidebar ul li a {
    display: flex;
    flex: 1;
    align-items: center;
    padding: .8445rem 1rem;
    text-decoration: none;
    color: rgba(255,255,255,.8);
    font-size: .875rem;
}

#sidebar.active2 ul li a {
    height: 48px;
    transition: all 0.3s ease-out;
}

/*
#sidebar.active2 ul li a span.label, #sidebar.active2 ul li ul li a span.label{
    opacity: 0;
    transition: all 0.3s ease-out;
}

#sidebar ul li a span.label, #sidebar ul li ul li a span.label{
    opacity: 1;
    transition: all 0.3s ease-in;
}
*/

#sidebar.active2 ul li.title {
    display: none;
}

.open_icon, .close_icon {
    position: absolute;
    left: calc(100% - 56px);
    color: rgba(255,255,255,.6);
    font-size: 23px;
    width: 56px;
    text-align: center;
    cursor: pointer;
}

#sidebar .open_icon{
    opacity: 0;
    transition: all 0.3s linear;
}

#sidebar.active2 .open_icon{
    opacity: 1;
    transition: all 0.3s linear;
}

#sidebar .close_icon{
    opacity: 1;
    transition: all 0.3s linear;
}

#sidebar.active2 .close_icon{
    opacity: 0;
    transition: all 0.3s linear;
}

#sidebar ul li a .c-icon {
  color: rgba(255,255,255,.5);
  flex: 0 0 56px;
  height: 1.09375rem;
  font-size: 1.09375rem;
  text-align: center;
  transition: .25s;
  fill: currentColor;
  margin-left: -1rem;
}

#sidebar ul li a:hover {
    color: #fff;
    background: #0063a7;
}

#sidebar ul li a:hover>span {
    color: #fff;
}


#sidebar ul li.active>a, #sidebar ul li ul li.active>a
{
    color: #fff;
    background: rgba(255,255,255,.05);    
}

.c-icon{
    margin-top: 3px;
}


#sidebar ul li.active>a>span{
		color: #fff;
}

a[data-bs-toggle="collapse"] {
    position: relative;
}

.dropdown-toggle::after {

    display: inline-block;
    width: 0;
    height: 0;
    margin-left: .255em;
    /*vertical-align: .255em;*/
    content: "";
    border-top: .3em solid;
    border-right: .3em solid transparent;
    border-bottom: 0;
    border-left: .3em solid transparent;    
    
    display: block;
    position: absolute;
    top: 50%;
    right: 9px;
    transform: translateY(-50%);
}

.menu-dropdown-toggle::after {
    right: 20px;
}

#sidebar ul ul a {
    padding-left: 60px !important;
}

ul.CTAs {
    padding: 20px;
}

ul.CTAs a {
    text-align: center;
    font-size: 0.9em !important;
    display: block;
    border-radius: 5px;
    margin-bottom: 5px;
}

a.download {
    background: #fff;
    color: #7386D5;
}

a.article,
a.article:hover {
    background: #6d7fcc !important;
    color: #fff !important;
}

#sidebar ul li.title {
	  color: rgba(255,255,255,.6);
	  padding: .75rem 1rem;
    margin-top: 1rem;
    font-size: 80%;
    font-weight: 700;
    text-transform: uppercase;
    transition: .25s;
    cursor: default;
  }

/* ---------------------------------------------------
    CONTENT STYLE
----------------------------------------------------- */

#content {
    width: calc(100% - 256px);
    padding: 0px;
/*    min-height: 100vh;*/
    transition: all 0.3s;
/*    position: absolute;*/
    top: 0;
    right: 0;
}

.content_main {
    min-height: 100vh;
    position: absolute;
}

#content.active2 {
    width: calc(100% - 56px);
}

#content.active {
    width: 100%;
}

#sidebar.active2 .sidebar-header span {
    opacity: 0;
    transition: all .3s ease-out;
}

#sidebar .sidebar-header span {
    opacity: 1;
    transition: all .3s ease-in;
}

/* ---------------------------------------------------
    MEDIAQUERIES
----------------------------------------------------- */
/*
@media (max-width: 768px) {
    #sidebar {
        margin-left: -256px;
    }
    #sidebar.active {
        margin-left: 0;
    }
    #content {
        width: 100%;
    }
    #content.active {
        width: calc(100% - 256px);
    }
    #sidebarCollapse span {
        display: none;
    }
}
*/

body {
  font-size: .9rem;
}

.c-app, body, .table, .form-control, .list-group-item-action {
  color: #2f2f2f;  
} 

.page-link, a, a:hover {
  color: #0063a7;
}

.form-control {
/*    border-color: #c3c6cc;*/
    font-size: 0.875rem;
    height: calc(1.5em + .75rem + 2px);
    font-size: .875rem;
    color: #2f2f2f;
/*    border-radius: .25rem;*/
}

.card-body {
    padding-bottom: 0.25rem;
}

.table td, .table th {
  vertical-align: middle;
}

.badge {
  font-size: 80%;
}

.btn {
    font-size: 0.875rem;
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
}

.btn-primary {
  color: #fff;
  background-color: #0063a7;
  border-color: #0063a7;
}

.btn-outline-primary {
  color: #0063a7;
  background-color: #fff;
  border-color: #0063a7;
}

.btn-primary:hover {
  color: #fff;
  background-color: #1b8eb7;
  border-color: #1985ac;
}

.btn-outline-primary:hover {
  color: #fff!important;
  background-color: #1b8eb7!important;
  border-color: #1985ac!important;
}

.btn-outline-primary.active,
.btn-outline-primary:active,
.show > .btn-outline-primary.dropdown-toggle {
  color: #fff!important;
  background-color: #1985ac!important;
  border-color: #187da0!important;
}

.square-btn {
  width: 100%;
  aspect-ratio: 1 / 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.square-btn-icon {
  font-size: 6rem;
  margin-bottom: 1rem;
}

.square-btn-label {
  font-size: 0.9rem;
  text-align: center;
  line-height: 1.2;
}

.btn-primary:focus, .btn-primary.focus {
  box-shadow: 0 0 0 0.05rem rgba(65, 181, 222, 0.5);
}

.btn-primary.disabled, .btn-primary:disabled {
  color: #fff;
  background-color: #0063a7;
  border-color: #0063a7;
}

.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle {
  color: #fff;
  background-color: #1985ac;
  border-color: #187da0;
}

.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-primary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.05rem rgba(65, 181, 222, 0.5);
}

.page-item.active .page-link {
    background-color: #0063a7;
    border-color: #0063a7;
}

.login-screen {
  background-image: url('/img/login_bg.jpg');
  background-size: cover;
  align-items: center!important;
  flex-direction: row!important;
}

/* CSS Grid layout for login page */
.login-grid-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem;
  align-items: start;
}

.login-card-section {
  display: flex;
  justify-content: center;
  align-items: start;
}

.login-background-section {
  display: flex;
  justify-content: center;
  align-items: stretch;
}

.login-background-image {
  background-image: url('/img/login_bg.jpg');
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  width: 100%;
  min-height: 400px;
  border-radius: 0.25rem;
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
  flex: 1;
}

/* Responsive: mobile devices */
@media (max-width: 767.98px) {
  .login-grid-container {
    grid-template-columns: 1fr;
    gap: 1rem;
    padding: 1rem;
  }

  .login-background-section {
    display: none;
  }
}

.bg_blue {
    background-color: #0063a7;
}

.nav-item {
  background: #98a9b4; 
  margin-left: 5px;
}

.nav-item > a {
    color: #fff !important;
}

.nav-item:first-child {
  margin-left: 0px;
}

.nav-item > .active {
  background-color: #0063a7 !important;
}

.test-result-answer h3 {
  padding-top: 8px;
}

.light-blue-bg {
  background-color: #00b5e2; 
}

.login-logo {
  width: 250px;
}

.login-hp-logo {
  width: 250px;
}

/* Toast: egymas ala rakott uzenetek a jobb also sarokban. Az uj toast a gyujto aljara kerul, a korabbiak
   feljebb csusznak; mindegyik a sajat idozitojevel tunik el (showToast). A .toast osztalynevet a Bootstrap
   foglalja (alapbol rejtett), ezert tf-toast. */
#tf-toast-container {
    position: fixed;
    z-index: 1;
    right: 1%;
    bottom: 30px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    max-width: 98%;
}

.tf-toast {
    min-width: 250px;
    max-width: 100%;
    overflow-wrap: anywhere;
    background-color: #00b5e2;
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 16px;
    font-size: 17px;
    -webkit-animation: tf-toast-fadein 0.5s, tf-toast-fadeout 0.5s 4.5s forwards;
    animation: tf-toast-fadein 0.5s, tf-toast-fadeout 0.5s 4.5s forwards;
}

.tf-toast.tf-toast-danger {
    background-color: #dc3545;
}

@-webkit-keyframes tf-toast-fadein {
    from {opacity: 0;}
    to {opacity: 1;}
}

@keyframes tf-toast-fadein {
    from {opacity: 0;}
    to {opacity: 1;}
}

@-webkit-keyframes tf-toast-fadeout {
    from {opacity: 1;}
    to {opacity: 0;}
}

@keyframes tf-toast-fadeout {
    from {opacity: 1;}
    to {opacity: 0;}
}



dl {
  display: -webkit-box;
  display: flex;
  background-color: transparent;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
          flex-direction: column;
  width: 100%;
  max-width: 500px;
  position: relative;
  padding: 20px;
}

dt {
  align-self: flex-start;
  width: 100%;
  font-weight: 700;
  display: block;
  text-align: center;
  font-size: 1.2em;
  font-weight: 700;
  margin-bottom: 20px;
  margin-left: 130px;
}

dd {
    margin-bottom: 5px;
}

.text {
  font-weight: 600;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
          align-items: center;
  height: 40px;
  width: 130px;
  background-color: transparent;
  position: absolute;
  left: 0;
  -webkit-box-pack: end;
          justify-content: flex-end;
}

.percentage {
  font-size: .8em;
  line-height: 1;
  text-transform: uppercase;
  width: 100%;
  height: 40px;
  margin-left: 130px;
  background: repeating-linear-gradient(to right, #fff, #fff 1px, #eeeeee 1px, #eeeeee 5%);
}
.percentage:after {
  content: "";
  display: block;
  background-color: #27BFB4;
  width: 50px;
  margin-bottom: 10px;
  height: 100%;
  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  -webkit-transition: background-color .3s ease;
  transition: background-color .3s ease;
  cursor: pointer;
}
.percentage:hover:after, .percentage:focus:after {
  background-color: #FFD91E;
}

.percentage-1:after {
  width: 1%;
}

.percentage-2:after {
  width: 2%;
}

.percentage-3:after {
  width: 3%;
}

.percentage-4:after {
  width: 4%;
}

.percentage-5:after {
  width: 5%;
}

.percentage-6:after {
  width: 6%;
}

.percentage-7:after {
  width: 7%;
}

.percentage-8:after {
  width: 8%;
}

.percentage-9:after {
  width: 9%;
}

.percentage-10:after {
  width: 10%;
}

.percentage-11:after {
  width: 11%;
}

.percentage-12:after {
  width: 12%;
}

.percentage-13:after {
  width: 13%;
}

.percentage-14:after {
  width: 14%;
}

.percentage-15:after {
  width: 15%;
}

.percentage-16:after {
  width: 16%;
}

.percentage-17:after {
  width: 17%;
}

.percentage-18:after {
  width: 18%;
}

.percentage-19:after {
  width: 19%;
}

.percentage-20:after {
  width: 20%;
}

.percentage-21:after {
  width: 21%;
}

.percentage-22:after {
  width: 22%;
}

.percentage-23:after {
  width: 23%;
}

.percentage-24:after {
  width: 24%;
}

.percentage-25:after {
  width: 25%;
}

.percentage-26:after {
  width: 26%;
}

.percentage-27:after {
  width: 27%;
}

.percentage-28:after {
  width: 28%;
}

.percentage-29:after {
  width: 29%;
}

.percentage-30:after {
  width: 30%;
}

.percentage-31:after {
  width: 31%;
}

.percentage-32:after {
  width: 32%;
}

.percentage-33:after {
  width: 33%;
}

.percentage-34:after {
  width: 34%;
}

.percentage-35:after {
  width: 35%;
}

.percentage-36:after {
  width: 36%;
}

.percentage-37:after {
  width: 37%;
}

.percentage-38:after {
  width: 38%;
}

.percentage-39:after {
  width: 39%;
}

.percentage-40:after {
  width: 40%;
}

.percentage-41:after {
  width: 41%;
}

.percentage-42:after {
  width: 42%;
}

.percentage-43:after {
  width: 43%;
}

.percentage-44:after {
  width: 44%;
}

.percentage-45:after {
  width: 45%;
}

.percentage-46:after {
  width: 46%;
}

.percentage-47:after {
  width: 47%;
}

.percentage-48:after {
  width: 48%;
}

.percentage-49:after {
  width: 49%;
}

.percentage-50:after {
  width: 50%;
}

.percentage-51:after {
  width: 51%;
}

.percentage-52:after {
  width: 52%;
}

.percentage-53:after {
  width: 53%;
}

.percentage-54:after {
  width: 54%;
}

.percentage-55:after {
  width: 55%;
}

.percentage-56:after {
  width: 56%;
}

.percentage-57:after {
  width: 57%;
}

.percentage-58:after {
  width: 58%;
}

.percentage-59:after {
  width: 59%;
}

.percentage-60:after {
  width: 60%;
}

.percentage-61:after {
  width: 61%;
}

.percentage-62:after {
  width: 62%;
}

.percentage-63:after {
  width: 63%;
}

.percentage-64:after {
  width: 64%;
}

.percentage-65:after {
  width: 65%;
}

.percentage-66:after {
  width: 66%;
}

.percentage-67:after {
  width: 67%;
}

.percentage-68:after {
  width: 68%;
}

.percentage-69:after {
  width: 69%;
}

.percentage-70:after {
  width: 70%;
}

.percentage-71:after {
  width: 71%;
}

.percentage-72:after {
  width: 72%;
}

.percentage-73:after {
  width: 73%;
}

.percentage-74:after {
  width: 74%;
}

.percentage-75:after {
  width: 75%;
}

.percentage-76:after {
  width: 76%;
}

.percentage-77:after {
  width: 77%;
}

.percentage-78:after {
  width: 78%;
}

.percentage-79:after {
  width: 79%;
}

.percentage-80:after {
  width: 80%;
}

.percentage-81:after {
  width: 81%;
}

.percentage-82:after {
  width: 82%;
}

.percentage-83:after {
  width: 83%;
}

.percentage-84:after {
  width: 84%;
}

.percentage-85:after {
  width: 85%;
}

.percentage-86:after {
  width: 86%;
}

.percentage-87:after {
  width: 87%;
}

.percentage-88:after {
  width: 88%;
}

.percentage-89:after {
  width: 89%;
}

.percentage-90:after {
  width: 90%;
}

.percentage-91:after {
  width: 91%;
}

.percentage-92:after {
  width: 92%;
}

.percentage-93:after {
  width: 93%;
}

.percentage-94:after {
  width: 94%;
}

.percentage-95:after {
  width: 95%;
}

.percentage-96:after {
  width: 96%;
}

.percentage-97:after {
  width: 97%;
}

.percentage-98:after {
  width: 98%;
}

.percentage-99:after {
  width: 99%;
}

.percentage-100:after {
  width: 100%;
}

html, body {
  font-family: "fira-sans-2",sans-serif;
  color: #333;
}

.btn-sm {
    padding: 4px;
}



/* Tick-Xanh full-screen login mode */
/* Tick-Xanh full-screen login mode */
.tick-xanh-fullscreen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: #e4f9ff;
    display: flex;
    flex-direction: column;
    z-index: 1059;
    overflow-y: auto;
    align-items: stretch;
}

.tick-xanh-content-wrapper {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    justify-content: flex-start;
    padding: 0;
    box-sizing: border-box;
}

.tick-xanh-content-inner {
    margin: auto 0;
    min-height: fit-content;
}

/* Header section */
.tick-xanh-header {
    background-color: #e4f9ff;
    padding: 30px 20px 20px 20px;
    text-align: center;
}


.tick-xanh-logo {
    height: 90px;
    width: auto;
    object-fit: contain;
}

.tick-xanh-header-logos {
    display: none;
}

.tick-xanh-header-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 35px;
}

.tick-xanh-logo-left {
    order: -1;
}

.tick-xanh-logo-right {
    order: 1;
}

.tick-xanh-header-text {
    order: 0;
    text-align: center;
}

.tick-xanh-header-text h1 {
    color: #0669b4;
    font-size: 2.5rem;
    font-weight: bold;
    margin: 0 0 10px 0;
}

.tick-xanh-header-text p {
    color: #0669b4;
    font-size: 0.95rem;
    margin: 0;
}

/* Mobile responsive */
@media (max-width: 768px) {
    .tick-xanh-header-logos {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 20px;
        margin-bottom: 20px;
    }

    .tick-xanh-header-content {
        flex-direction: column;
        text-align: center;
        gap: 0;
        margin-bottom: -20px;
    }

    .tick-xanh-header-content .tick-xanh-logo {
        display: none;
    }

    .tick-xanh-header-text h1 {
        font-size: 2rem;
        margin-bottom: 10px;
    }

    .tick-xanh-header-logos .tick-xanh-logo {
        height: 75px;
    }

}

/* Main content area */
.tick-xanh-main-content {
    flex: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 20px;
}

/* Login container - responsive */
.tick-xanh-login-container {
    width: 100%;
    max-width: 450px;
    padding: 0;
    margin: 0 auto;
}

/* Flexbox layout for Tick-Xanh login - equal height sections */
.tick-xanh-login-grid {
    display: flex;
    gap: 3rem;
    align-items: stretch; /* Both sections have equal height */
    justify-content: center; /* Center the layout horizontally */
}

.tick-xanh-background-section {
    order: -1; /* Move background to the left in wide view */
}

.tick-xanh-login-card-section {
    flex: 0 0 450px; /* Fixed width for login card */
    display: flex;
    justify-content: center;
    align-items: center;
}

.tick-xanh-background-section {
    flex: 0 0 250px; /* Fixed width for background image */
    display: flex;
    justify-content: center;
    align-items: stretch;
}

.tick-xanh-background-image {
    background-image: url('/img/tick_xanh_shop.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 100%;
    height: 100%;
    border-radius: 0.25rem;
}

/* Responsive: tablet and mobile */
@media (max-width: 991px) {
    .tick-xanh-login-grid {
        flex-direction: column;
        gap: 0.5rem;
        padding: 0; /* Remove side padding for wider login card */
    }

    .container-fluid {
        padding: 15px; /* Reduce all padding to 15px */
    }

    .tick-xanh-login-card-section {
        order: 1; /* Login form first (top) */
        flex: 1; /* Responsive width on mobile */
    }

    .tick-xanh-main-content {
        padding-top: 0; /* Remove spacing on tablet/mobile */
    }

    .tick-xanh-background-section {
        order: 2; /* Background image second (bottom) */
        width: 100%; /* Responsive width */
        max-width: 450px; /* Maximum width same as login form */
        height: 250px;
        margin: 0.5rem auto 0; /* Smaller gap, centered */
    }
}

/* Extra small screens (576px and below) */
@media (max-width: 576px) {
    .tick-xanh-background-section {
        max-width: 100%; /* Full width on very small screens */
    }
}

.tick-xanh-fullscreen .card {
    background-color: rgba(255, 255, 255, 0.98);
    border: 1px solid #e0e0e0;
}

.tick-xanh-fullscreen .card-body {
    padding: 0;
}

.tick-xanh-fullscreen .card-body h2 {
    font-size: 1.75rem;
    font-weight: bold;
    margin-bottom: 1.5rem;
    color: #2f2f2f;
}

.tick-xanh-fullscreen .btn-primary {
    min-width: 150px;
}


/* Responsive adjustments */
@media (max-width: 786px) {
    .tick-xanh-header h1 {
        font-size: 2rem;
    }

    .tick-xanh-header p {
        font-size: 0.85rem;
    }

    .tick-xanh-main-content {
        align-items: center; /* Keep centered on small screens too */
        padding-top: 0; /* Remove spacing on smaller screens */
    }

    .tick-xanh-header {
        padding: 15px 20px; /* Same padding as smallest screens */
    }
}

@media (max-width: 576px) {
    .tick-xanh-fullscreen {
        padding-top: 0;
    }
    
    .tick-xanh-main-content {
        padding-top: 0;
        align-items: center;
    }
    
    .tick-xanh-header {
        padding: 20px 15px;
    }
    
    .tick-xanh-header h1 {
        font-size: 1.5rem;
    }
    
    .tick-xanh-header p {
        font-size: 0.75rem;
    }
    
    .tick-xanh-main-content {
        padding: 0; /* No padding for smallest screens */
    }
    
    .tick-xanh-fullscreen .card-body {
        padding: 0;
    }

    .tick-xanh-login-container {
        max-width: 100%;
    }
}

/* ---------------------------------------------------
    HEADER BAR (kiszervezett inline stílusok)
----------------------------------------------------- */

.header-bar {
    background-color: #fff;
    border-bottom: 1px solid #d8dbe0;
}

.header-info-text {
    color: #c2c2c2;
}

.version-update-bar {
    background-color: #fff3cd;
    color: #664d03;
    padding: 8px 15px;
}

.header-dark-mode-btn {
    color: #888;
    background: transparent;
    border: none;
    font-size: 18px;
    padding: 2px 6px;
    line-height: 1;
    cursor: pointer;
}

.header-dark-mode-btn:hover {
    color: #333;
    background: transparent;
}

.header-dark-mode-btn:focus {
    box-shadow: none;
    background: transparent;
}

.header-lang-btn {
    color: #888;
    background: transparent;
    border: none;
    font-size: .875rem;
    padding: 2px 8px;
    line-height: 1;
    cursor: pointer;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.header-lang-btn:hover {
    color: #333;
    background: transparent;
}

.header-lang-btn:focus {
    box-shadow: none;
    background: transparent;
}

/* Issue 1: hide Bootstrap dropdown caret */
.header-lang-btn.dropdown-toggle::after {
    display: none;
}

/* Issue 2: globe icon same size as sun/moon (18px), label stays 13px */
.header-lang-btn .fa-globe {
    font-size: 18px;
}

/* Issue 3: hover highlight on non-active language dropdown items (light mode) */
.header-lang-dropdown .dropdown-item:hover:not(.active),
.header-lang-dropdown .dropdown-item:focus:not(.active) {
    background-color: #f0f0f0;
    color: #222;
}

.header-lang-dropdown .dropdown-item.active {
    background-color: transparent;
    color: inherit;
    font-weight: bold;
}

/* ---------------------------------------------------
    DASHBOARD ITEM CARD
----------------------------------------------------- */

.dashboard-item-card {
    background-color: #fff;
    border-radius: 6px;
    padding-right: 10px;
    padding-left: 10px;
    padding-top: 5px;
    padding-bottom: 0px;
}

/* ---------------------------------------------------
    KÖZÖS - JELSZÓ SZEM IKON
----------------------------------------------------- */

.pw-toggle-icon {
    position: absolute;
    left: calc(100% - 30px);
    cursor: pointer;
    top: 10px;
    color: #2f2f2f;
    z-index: 1000;
}

/* ---------------------------------------------------
    KÖZÖS - SZÖVEGSZÍNEK
----------------------------------------------------- */

/* Kék link-stílusú szöveg (#337ab7) */
.text-link-style {
    color: #337ab7;
}

/* Fő akcent szín szöveg/ikon (#0063a7) */
.text-accent {
    color: #0063a7;
}

/* Fájl meta adat szöveg */
.file-meta-text {
    color: #aaa;
}

/* ---------------------------------------------------
    SCREEN - RÉSZLETES SZŰRŐ SÁV
----------------------------------------------------- */

.screen-filter-bar {
    background-color: #eee;
}

/* Input csoport addon (exact-match gomb) */
.screen-search-addon {
    background-color: #fff;
    color: #aaadb5;
}

/* ---------------------------------------------------
    SCREEN - TÉRKÉP
----------------------------------------------------- */

.map-canvas-border {
    border: 1px solid #dee2e6;
    border-radius: var(--bs-border-radius);
}

.map-address-bar {
    padding: 10px;
    border: 1px solid #dee2e6;
    border-top: none;
    background-color: #dee2e6;
    border-bottom-right-radius: var(--bs-border-radius);
    border-bottom-left-radius: var(--bs-border-radius);
}

/* ---------------------------------------------------
    SCREEN - EGYÉB
----------------------------------------------------- */

/* Képbélyeg keret */
.thumb-border {
    border: 1px solid #666;
}

/* GE téma megerősítő modal szövegszín */
.modal-ge-body-color {
    color: #494949;
}

/* ---------------------------------------------------
    LOGIN - LÁBLÉC SZÖVEG
----------------------------------------------------- */

.login-footer-text {
    color: #d8dbe0;
    font-size: 12px;
}

/* Előfizetési csomag kártya */
.subscription-product-card {
    background-color: #e9ecef;
}


/* ---------------------------------------------------
    INPUT_TABLE - tablazatos, szerkesztheto rekordlista
----------------------------------------------------- */

/* Minden input_table fejlecsavaban (mindig, opt-in kapcsolo nelkul) ket allapot-gomb all: "van
   adat" / "van hiba" - lasd screen.html. A korabbi piros "Invalid cells..." osszesito szoveg
   megszunt - a hibas sorok szama a "van hiba" gomb feliratanak vegen, zarojelben all (csak ha nem
   0), ugyanigy a modositott sorok szama a "van adat" gombnal. A gomb szine a ki/be allapotot jelzi:
   kikapcsolva az 1. gomb btn-warning, a 2. gomb btn-danger; bekapcsolva MINDKETTO btn-secondary
   (szurke, ugyanaz a stilus, mint a Clear / Back / Cancel gomboke a tobbi kepernyon) - az ikon
   alakja (korvonalas/tomor) ugyanezt erositi meg. (Korabbi valtozatok, mind megszuntek: allando
   szin csak ikon-jelzessel; bekapcsolva btn-success zold; kikapcsolva btn-secondary szurke; illetve
   egy "btn-outline-*" valtozat, ami vizualisan nem valt be.) */
.input-table-row-state-icons {
    display: inline-flex;
    gap: 0.5rem;
}
/* A gomb magassaga es paddingja PONTOSAN ugyanaz a keplet, mint az input-table-filter-clear-e
   (lasd .input-table-filter-bar .input-table-filter-clear lejjebb) - a szelesseg viszont mar NEM
   negyzet, hanem tartalom-alapu, mert a gombon az ikon mellett szoveg (a korabbi on-hover title)
   is all. Az ikon sajat, nagyobb font-size-a miatt vizualisan "eggyel nagyobb" a gomb sajat
   szovegehez kepest. */
.input-table-row-state-btn {
    min-height: calc(1.5em + 0.3rem + calc(var(--bs-border-width) * 2));
    font-size: 0.825rem;
    padding-top: 0.15rem;
    padding-bottom: 0.15rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    display: inline-flex;
    align-items: center;
}
.input-table-row-state-btn i {
    font-size: 1.1rem;
    line-height: 1;
}
/* A gyujto (collection_table) soronkenti eltavolitas gombja: negyzet, a magassaga ugyanaz a keplet
   (es font-size), mint az .input-table-row-state-btn-e, igy a fejlec- es az also sav gombjaival egyforma magas. */
.input-table-remove-btn {
    font-size: 0.825rem;
    width: calc(1.5em + 0.3rem + calc(var(--bs-border-width) * 2));
    height: calc(1.5em + 0.3rem + calc(var(--bs-border-width) * 2));
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.input-table-wrapper {
    min-width: 0;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: var(--bs-border-radius);
}

/* Ha folotte all a sotet fejlecsav vagy az osszesito hibasav, akkor osszeer vele. */
.list-group-item + .input-table-wrapper {
    border-top: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

/* Also sav (collection_table forras: atemeles gomb) - a fejlecsav paddingjaval. Ha lathato, a
   tablazat alja osszeer vele (read_only formon az ng-hide rejti, ott a wrapper alja marad kerek). */
.input-table-footer-bar {
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
}
.input-table-wrapper:has(+ .input-table-footer-bar:not(.ng-hide)) {
    border-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

/* Ragado fejlec. A table-responsive overflow-x: auto-ja miatt a wrapper lesz a sticky
   tartalmazo blokkja, ezert magassag-korlat nelkul sosem gorgetne fuggolegesen - a sticky
   igy soha nem lepne mukodesbe. Ezert sticky_header eseten a wrapper onallo gorgetodobozza
   valik; a max-height-ot a leiro adja (inline style), es a vizszintes gorgetes is megmarad. */
.input-table-wrapper.input-table-sticky {
    overflow: auto;
}

.input-table-wrapper.input-table-sticky > .input-table > thead > tr > th {
    position: sticky;
    top: 0;
    /* A Bootstrap a fokuszalt input-group-elemre z-index: 5-ot tesz
       (.input-group > .form-control:focus), es a cella-inputok input-group-ban ulnek. A ragado
       fejlecnek ezert 5 FOLE kell kerulnie, kulonben az eppen szerkesztett cella atussik rajta. */
    z-index: 10;
    /* Atlatszatlan hatter, kulonben a gorgo sorok atutnek a fejlecen. */
    background-color: #fff;
    --bs-table-bg: #fff;
    /* A Bootstrap tablazatai border-collapse: collapse-t hasznalnak, ez pedig a position: sticky-vel
       nem mukodik jol egyutt: a fejlec also szegelye a tabla sor-hataranak kollapszolt vonalahoz van
       kotve, ami NEM koveti a sticky elem gorgetes kozbeni vizualis athelyezeset - "leragadt"
       allapotban a szegely a tabla eredeti (nem-sticky) pozıciojanal marad, tehat a gorgo sorok es
       a fejlec kozott vizualisan eltunik a hatarvonal. Megoldas: box-shadow-val szimulalt also
       vonal, ami mindig a sajat dobozahoz kotott (nem a collapse-algoritmushoz), igy sticky
       pozicioban is helyesen kirajzolodik. A masodik ertek elott megtartjuk a Bootstrap sajat,
       ugyanerre a trukkre epulo akcent-hatter-retegét (.table > :not(caption) > * > * box-shadow-ja). */
    box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))),
                inset 0 -1px 0 var(--bs-border-color, #dee2e6);
}

/* Lokalis oszlop-szurok savja a fejlecsav es a tablazat kozott. A szurok szandekosan NEM
   igazodnak az oszlopokhoz (a tablazat vizszintesen gorgetheto, az igazitas ugyis elcsuszna):
   szabad, tordelheto elrendezes, mezonkent az oszlopnev placeholderkent. */
.input-table-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
}

.input-table-filter-bar .input-table-filter-item {
    flex: 0 1 200px;
    min-width: 140px;
}

/* A tefood.css globalis .form-control fix magassagat itt is felul kell irni (a cellakhoz hasonloan),
   kulonben a form-control-sm nem lesz kompakt. */
.input-table-filter-bar .form-control-sm,
.input-table-filter-bar .form-select-sm {
    height: auto;
    /* A Bootstrap sajat .form-control-sm-nek van min-height-je, a .form-select-sm-nek NINCS -
       enelkul a select ~3-4px-szel alacsonyabbra zsugorodna, mint a szoveges/szammezok. Sajat,
       mindket osztalyra egysegesen ervenyes min-height-tel potoljuk, a sajat paddingunkre szamolva. */
    min-height: calc(1.5em + 0.3rem + calc(var(--bs-border-width) * 2));
    font-size: 0.825rem;
    padding-top: 0.15rem;
    padding-bottom: 0.15rem;
}

/* A torlo gomb a szuromezok UTAN kovetkezik a normal flex-folyamban (a lista-oldalak quick
   search sava mintajara, lasd screen.html quick_search_bar) - nincs jobbra tolva. Fuggoleges
   merete megegyezik a szuromezokeval (a Bootstrap .btn-sm sajat meretezese elteroen magas lenne),
   vizszintesen viszont szandekosan SZELESEBB, mint a .btn-sm alapertelmezett 0.5rem oldalpaddingja
   - a quick search sav "sima" (nem -sm) gombjainak 0.75rem-es oldalpaddingjat kovetve, hogy ne
   tunjon szukebbnek a szoveges/legordulo mezoknel. */
.input-table-filter-bar .input-table-filter-clear {
    min-height: calc(1.5em + 0.3rem + calc(var(--bs-border-width) * 2));
    font-size: 0.825rem;
    padding-top: 0.15rem;
    padding-bottom: 0.15rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

.input-table {
    margin-bottom: 0;
    /* Egysegesen ugyanaz a meret, mint a cella-editoroke (lasd lent) - a read-only szoveges
       cellak es a fejlecek se legyenek nagyobbak, mint a szerkesztheto mezok. */
    font-size: 0.825rem;
}

/* Kompakt cellak */
.input-table > thead > tr > th,
.input-table > tbody > tr > td {
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
}

/* A tefood.css globalis .form-control fix magassagat felul kell irni, kulonben a
   form-control-sm nem lesz kompakt a cellaban. */
.input-table .form-control-sm,
.input-table .form-select-sm,
.input-table .input-group-sm > .input-group-text {
    height: auto;
    /* Lasd az input-table-filter-bar azonos szabalyanal: a .form-select-sm-nek a Bootstrapben
       nincs min-height-je, enelkul a cella-select alacsonyabb lenne, mint a tobbi cella-editor. */
    min-height: calc(1.5em + 0.3rem + calc(var(--bs-border-width) * 2));
    font-size: 0.825rem;
    padding-top: 0.15rem;
    padding-bottom: 0.15rem;
}

/* A suffixes cellak egy sorban maradjanak: a Bootstrap input-group alapbol tordel, amitol szuk
   oszlopban a suffix az input ala kerulne. A tablazat ugyis vizszintesen gorgetheto. */
.input-table .input-group-sm {
    flex-wrap: nowrap;
}

/* A cella <td>-je ng-style-lal kapja a szoveg-igazitast (col.align), de a form-control/form-select
   elemek a bongeszo alapertelmezett UA-stilusa miatt NEM oroklik ezt automatikusan - a szamitott
   text-align rajtuk "start" marad meg akkor is, ha az orokolt (td-n beallitott) ertek "right"/
   "center" volna. Explicit "inherit"-tel kenyszeritjuk, hogy tenylegesen a td igazitasat kovessek -
   ezt eloben, a bongeszoben leellenorizve (tpl_test.html) mind input, mind select eseten mukodik. */
.input-table td input.form-control,
.input-table td select.form-select {
    text-align: inherit;
}

/* A cella-inputok soha ne essenek ossze nullara, ha a tablazat szuk helyre kerul - inkabb
   a table-responsive wrapper gorgessen vizszintesen. */
.input-table .form-control-sm,
.input-table .form-select-sm {
    min-width: 60px;
}

/* A Bootstrap is-invalid alapbol egy SVG figyelmezteto ikont tesz az input jobb szelere,
   plusz padding-right-ot. Szuk cellaban ez erezheto helyet esz, es input-group-os (suffixes)
   cellaban csunyan ul. A piros keret onmagaban eleg jelzes, a szoveg a tooltipben van. */
.input-table .form-control.is-invalid,
.input-table .form-select.is-invalid {
    background-image: none;
    padding-right: 0.5rem;
}

/* Megjegyzes: a read-only oszlopok szandekosan NEM kapnak sajat hattert - minden cella a sor
   alapszinet viseli (table-striped csik, illetve dirty soron a table-warning sarga). */

/* A lokalis oszlop-szuro select2-je (filter.select2: 1, lasd input_table_guide.md 11.1). A
   select2-bootstrap-5-theme sajat betumerete (0.875rem) nagyobb a tablazat tobbi eleminek
   0.825rem-jenel. Az osztalyt maga a JS teszi fel a select2 altal letrehozott DOM-elemekre
   (controllers.js initSelect2ForId, extra_css_class parameter) - a zart doboz allando
   ".select2-container"-jara es minden nyitaskor a friss dropdown-wrapperre -, mert a
   select2/compat opciok (containerCssClass/dropdownCssClass) ebben a vendorolt buildben nem
   hasznalhatok. Az !important azert kell, mert a select2-bootstrap-5-theme sajat, sm-detektalo
   szabalya (".form-select-sm ~ .select2-container--bootstrap-5 .select2-selection") 3 osztalyos
   specificitasu - eloben leellenorizve, hogy enelkul a mi (2 osztalyos) szabalyunk veszit ellene,
   forrassorrendtol fuggetlenul. */
.input-table-filter-select2 .select2-selection,
.input-table-filter-select2 .select2-search__field,
.input-table-filter-select2 .select2-results__option {
    font-size: 0.825rem !important;
}

/* A zart doboz magassaga: a select2.min.css (nem a theme) egy fix "height: 28px"-et ad a
   ".select2-selection--single"-re, amit a fenti/theme-beli min-height-alapu "sm" felulirasok NEM
   tudnak hatastalanitani (fix height mindig felulbiralja a kisebb min-height-ot). A "height: auto"
   torli ezt, ezert ervenyesulhet a tobbi cella-editorral megegyezo min-height+padding meret -
   eloben leellenorizve: pontosan ugyanaz a magassag (26.6px), mint egy sima .form-control-sm-e. */
.input-table-filter-select2 .select2-selection {
    height: auto !important;
    min-height: calc(1.5em + 0.3rem + calc(var(--bs-border-width) * 2)) !important;
    padding-top: 0.15rem !important;
    padding-bottom: 0.15rem !important;
}


/* add_new: a beszurt uj sor eros zold kiemelese, az add_new "+" gomb (btn-success) szinevel es feher szoveggel.
   Sajat osztaly, mert a Bootstrap .table-success csak halvany zold, es csikozott (paratlan) sorban a sotetebb
   --bs-table-striped-bg-t mutatja - az uj sor pedig mindig az elso, tehat paratlan. A csikozott sor is ugyanazt
   a szint kapja. */
.input-table-wrapper tr.input-table-row-just-added {
    --bs-table-bg: #198754;
    --bs-table-striped-bg: #198754;
    --bs-table-color: #fff;
    --bs-table-striped-color: #fff;
}

/* add_new: a beszurt uj sor zold kiemelesenek 1 mp-es atuszasa a szokasos hatterbe. A cella
   hattere a background-color-bol es a csikozas box-shadow retegebol all ossze, ezert mindketto atmenetes. Csak
   a kiemelt soron el (controllers.js applyPendingAddNewRow), igy a dirty-valtas szerkeszteskor azonnali marad. */
.input-table-wrapper tr.input-table-row-highlight-fade > td {
    transition: background-color 1s ease, box-shadow 1s ease, color 1s ease;
}
