.blink2-outer
{
    animation: blink-animation-1 4s infinite;
    animation-delay: 2s;
    opacity: 0;
}
.blink2-outer > .blink2-inner
{
    animation: blink-animation-2 4s infinite;
    animation-delay: 2s;
    opacity: 0;
}
@keyframes blink-animation-1
{
    0%   {opacity: 0;}
    24%  {opacity: 1;}
    75%  {opacity: 1;}
    85%  {opacity: 0;}
    100% {opacity: 0;}
}
@keyframes blink-animation-2
{
    0%   {opacity: 0;}
    24%  {opacity: 0;}
    48%  {opacity: 1;}
    100% {opacity: 1;}
}


.service_property_table {
    display: grid;
    grid-template-columns: auto auto 1fr;
}

.service_property_table label {
    margin-left: 1rem;
    margin-right: 1rem;
    text-align: right;
    align-self: center;

    font-weight: bold;
}

.service_property_table span {
    text-overflow: ellipsis;

    align-self: center;
}

.service_property_table span.button_value {
    display: grid;
    grid-template-columns: auto auto 1fr;
    grid-column-gap: 0.5rem;
    align-items: center;
}

.service_property_table .buttons {
    display: flex;
    justify-content: end;
}

.service_property_table .buttons .btn {
    margin-left: 0.25rem;
    justify-self: left;

    padding-top: 0;
    padding-bottom: 0;
    display: flex;
    align-items: center;
}

#git_out_panel {
    white-space: pre;
    background-color: #333;
    color: #EEE;
    font-family: monospace;

    overflow-x: scroll;
}

#git_out_panel.error {
    background-color: #A33;
}

.pgsqlsequence {
    display: flex;
    flex-direction: column;
}

.pgsqlsequence .tabrow {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;

    margin: 0.2rem 0;
    padding: 0.1rem 0.1rem;

    border: 1px solid #444;
    border-radius: 2px;
    background: #DDD;
}

.pgsqlsequence .tabrow.error { background: #F44; }

.pgsqlsequence .tabrow .tabcol1 {
    grid-column: 1;
    align-self: center;

    font-weight: bold;
    
    margin-left: 0.2rem;
}

.pgsqlsequence .tabrow .tabcol2 {
    grid-column: 2;
    align-self: center;
    font-family: monospace;
}

.pgsqlsequence .tabrow .tabcol3 {
    grid-column: 3;
    align-self: center;
    font-family: monospace;
}

.pgsqlsequence .tabrow .tabcol4 {
    display: flex;
    grid-column: 4;
    align-self: center;

    justify-content: end;
}

.pgsqlsequence .tabrow .tabcol4 .btn.uptodate {
    background-color: #BBB;
    border: 1px solid #000;
}
.pgsqlsequence .tabrow .tabcol4 .btn.uptodate:hover { background-color: #999; }


.servicestats {
    
    display: grid;
    grid-template-columns: auto 16px auto 48px auto 16px auto 1fr;

    margin: 0.2rem 0;
    padding: 0.1rem 0.1rem;
}

.servicestats .tabcol1 {grid-column: 1; font-weight: bold; }
.servicestats .tabcol2 {grid-column: 3; }
.servicestats .tabcol3 {grid-column: 5; font-weight: bold; }
.servicestats .tabcol4 {grid-column: 7; }

.service_config {
    white-space: pre;
    font-family: monospace;
    background-color: #EEE;
    height: 200px;
    overflow: auto;
    resize: vertical;
}


/* --------------------------- */

.service_logs {
    display: flex;
    flex-direction: column;
    
}

.service_logs .service_logs_filter {
    display: flex;
    flex-direction: row;
    justify-content: end;
}

.service_logs .service_logs_filter .btn-filter {
    font-size: 0.9rem;
    padding: 0.15rem .75rem 0 .75rem;
    line-height: unset;
    margin: 0 0 0 0.5rem;
    
    background-color: transparent;
}
.service_logs .service_logs_filter .btn-filter:hover { background-color: #CCC; }

.service_logs .service_logs_filter .btn-filter.btn-filter-on {
    background-color: #2975d8;
    border: 1px solid #2651be;
}
.service_logs .service_logs_filter .btn-filter.btn-filter-on:hover { background-color: #0955b8; }


.service_logs .service_logs_pagination {
    display: flex;
    flex-direction: row;
    justify-content: end;
}

.service_logs .service_logs_pagination .btn-pagination {
    font-size: 0.9rem;
    padding: 0 .25rem 0 .25rem;
    min-width: 1rem;
    line-height: unset;
    margin: 0 0 0 0.30rem;
    border-radius: 0;
}
.service_logs .service_logs_pagination .btn-pagination:hover { background-color: #777; }

.service_logs .service_logs_pagination .btn-pagination.btn-pagination-active { background-color: #777; }
.service_logs .service_logs_pagination .btn-pagination.btn-pagination-active:hover { background-color: #555; }

.service_logs_content .collapsed { display: none; }

.service_logs_content {
    display: flex;
    flex-direction: column;
    min-height: 2rem;
    
    margin-top:    0.5rem;
    margin-bottom: 0.5rem;
}

.service_logs_content .log_row {
    display: flex;
    flex-direction: row;
    
    border: 1px solid #888;
    margin: 0.2rem 0;
    
    cursor: pointer;
}

.service_logs_content .log_row .srcvlog_col_level {
    min-width: 5rem;
    padding-left: 0.2rem;
    margin-right: 0.2rem;
}

/*TRACE*/
.service_logs_content .log_row.log-level-0 .srcvlog_col_level { background-color: #EEE; color: #888; } 
.service_logs_content .log_row.log-level-0                    { color: #888; }

/*DEBUG*/
.service_logs_content .log_row.log-level-1 .srcvlog_col_level { background-color: #EEE; }
.service_logs_content .log_row.log-level-1                    { color: #000; }

/*INFO*/
.service_logs_content .log_row.log-level-2 .srcvlog_col_level { background-color: #ADF; }
.service_logs_content .log_row.log-level-2                    { color: #000; }

/*WARN*/
.service_logs_content .log_row.log-level-3 .srcvlog_col_level { background-color: #F80; }
.service_logs_content .log_row.log-level-3                    { color: #000; }

/*ERROR*/
.service_logs_content .log_row.log-level-4 .srcvlog_col_level { background-color: #F00; }
.service_logs_content .log_row.log-level-4                    { color: #000; }

/*FATAL*/
.service_logs_content .log_row.log-level-5 .srcvlog_col_level { background-color: #A00; }
.service_logs_content .log_row.log-level-5                    { color: #000; border-color: #F00; }

.service_logs_content .log_row .srcvlog_col_title {
    flex-grow: 1;
    text-overflow: ellipsis;
}

.service_logs_content .log_row .srcvlog_col_date {
    padding-right: 0.2rem;
    color: #555;
}

.log_row_content {
    margin-top: -0.2rem;
    border: 1px solid #888;
    border-radius: 0 0 4px 4px;
    border-top-width: 0;
    
    display: flex;
    flex-direction: column;
    
}

.log_row_content .srcvlog_col_data_header {
    font-weight: bold;
    background-color: #EEE;
    padding: 0 1rem;
}

.log_row_content .srcvlog_col_data_data {
        
    padding: 0.1rem 1rem;
    white-space: pre-wrap;
    font-family: monospace;
    
    border: 1px solid #888;
    border-radius: 4px;
    margin : 0.5rem 0.1rem;
    
    background-color: #EEE;
    color: #000;
}

.log_row_content .srcvlog_col_data_data.srcvlog_col_user {
    font-family: unset;
    background-color: transparent;
    border: none;
}

.log_row_content .srcvlog_col_data_data.srcvlog_col_appstatus {
    white-space: pre;
    overflow-x: scroll;
}

.log_row_content .srcvlog_col_data_data.srcvlog_col_dump {
    white-space: pre;
    overflow-x: scroll;
}

.log_row_content .srcvlog_col_data_data.srcvlog_col_trace {
    white-space: pre;
    overflow-x: scroll;
}

.service_logs_commands {
    margin-top: 0.5rem;
}

/*  -------------------------------------------- */

.service_mailtest {
    display: grid;
    grid-template-columns: auto 1fr;
}

.service_mailtest span {
    grid-column: 1/3;
}

.service_mailtest label {
    margin: 0.1rem 0.5rem 0.1rem 0;
}

.service_mailtest input {
    margin: 0.1rem 0;
}

.service_mailtest textarea {
    margin: 0.1rem 0;
}

.service_mailtest button {
    margin: 1rem 0 0 0;
    
    grid-column: 1/3;
}

/*  -------------------------------------------- */

.service_opcache {
    display: flex;
    flex-direction: column;
}

.service_opcache .status {
    display: grid;
    grid-template-columns: auto 1fr;
}

.service_opcache .btn {
    margin-top: 0.75rem;
}

.service_opcache .btn:hover { background: #888; }

.service_opcache .status .key { font-weight: bold; margin-right: 1rem; }

.service_opcache .bars {
    display: flex;
    flex-direction: column;
}

.service_opcache .bars h2 {
    margin-bottom: 0.25rem;
}

.service_opcache .bars .progress {
    height: 1rem;
    width: 100%;
    background: #888;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    
    border: 1px solid #333;
    border-radius: 4px;
}

.service_opcache .bars .progress .progress-bar {
    border: 0 solid #333;
    /* border-right-width: 1px; */
    box-sizing: border-box;
}
.service_opcache .bars .progress .progress-bar:last-of-type {
    border-right-width: 0;
}

.service_opcache .bars .progress .progress-bar.progress-bar-success { background: #0B0; height: 100%; }
.service_opcache .bars .progress .progress-bar.progress-bar-warning { background: #F80; height: 100%; }
.service_opcache .bars .progress .progress-bar.progress-bar-danger  { background: #F00; height: 100%; }

.service_opcache .bars .progress .progress-bar .sr-only {
    display: none;
}

.service_opcache .data {
    margin-top: 2rem;
}

.service_opcache .data .oc_data_header {
    background: #AAA;
    border: 1px solid #000;
    
    margin: 0.5rem 0;
    
    cursor: pointer;
    
    padding: 0.05rem 0.25rem;
    font-weight: bold;
    font-size: 1.15rem;
    transition: 0.3s;
}

.service_opcache .data .oc_data_header:hover { padding-left: 1.00rem; }

.service_opcache .data .oc_data_content {
    background: #EEE;
    border: 1px solid #000;
}

.service_opcache .data .oc_data_content.collapsed {
    display: none;
}

.service_opcache .data .oc_data_content table {
    table-layout: fixed;
    border-collapse: collapse;    
    width: 100%;
}

.service_opcache .data .oc_data_content table th {
    border: 1px solid #888;
    padding: 0.1rem 0.4rem;
}
.service_opcache .data .oc_data_content table td {
    border: 1px solid #888;
    padding: 0.1rem 0.4rem;
}

.service_opcache .data .oc_data_content.srcvocd_001 table th {
    width: 250px;
}

.service_opcache .data .oc_data_content.srcvocd_002 table th {
    width: 350px;
}

.service_opcache .data .oc_data_content.srcvocd_003 table {
    table-layout: auto;
}

/*  -------------------------------------------- */

.service_cron .cron_lsr {
    border: 1px solid #444;
    padding: 0 0.3rem;
    border-radius: 4px;
}

.service_cron .cron_lsr span { font-weight: bold; margin-left: 2rem; }

.service_cron .cron_lsr.cron_lsr_okay {
    background-color: #0C0;
}

.service_cron .cron_lsr.cron_lsr_late {
    background-color: #C00;
}

.service_cron .cron_lsr.cron_lsr_never {
    background-color: #BBB;
}

.service_cron .cron_data_header {
    font-size: 1.5rem;
    font-weight: bold;
    margin-top: 1rem;
}

.service_cron .cron_data_content {
    background: #CCC;
    border: 1px solid #666;
    border-radius: 2px;
    
    padding: 0.2rem;
    margin: 0 0 0.75rem 0;
    font-family: monospace;
    
    white-space: pre;
    overflow-x: auto;
}

