*{
    margin: 0;
    padding: 0;
    font-family: Verdana, Geneva, Tahoma, sans-serif;
    font-size: 12pt;
    box-sizing: border-box;
}
html, body{
    width: 100%;
    height: 100%;
}

body{
    width: 100%;
    height: 100%;
    transition: 0.2s;
    overflow: hidden;
    position: absolute;
}
.version span{
    position: fixed;
    top: 2px;
    right: 2px;
    font-size: 7pt;
    color: #ffffff70;
}
/*==============================================================*/
.screen_group
{
    display: block;
    width: 100%;
    height: 100%;
    margin: auto;

    transition: 0.2s;
}
@media screen and (min-aspect-ratio: 1/1){
    .screen_group {
        width: 70%;
        height: 100%;
        margin: auto;

        transition: 0.2s;
    }
}

.screen{
    display: block;
    position: absolute;
    height: 100%;
    width: 100%;
    transition: 0.2s;
}
@media screen and (min-aspect-ratio: 1/1){
    .screen {
        width: 70%;
        transition: 0.2s;
    }
}

.screen{
    pointer-events: none; /* Делаем родительский элемент неинтерактивным */
}

.form{
    pointer-events: auto; /* Делаем дочерние элементы интерактивными */
    /*display: block;*/
    display: flex;
    flex-direction: column;
    
    padding: 10px;
    background-color: #fcfeff;
    border-radius: 10px;

    position: relative;
    height: 100%;
}

.form:not(.hidden){
    pointer-events: auto;
    display: flex;
    transform: translateY(0px);
    
    animation: formToVisible 0.4s;
}
.form.hidden{
    pointer-events: none;
    display:none;
    transition: transform 10s;

    animation: formToHidden 0.4s;
}
.form.disabled{
    pointer-events: none;
    background-color: #cad0d6ec;
    filter: grayscale(0.85) opacity(0.8);
}

@keyframes formToHidden {
    0% {
        pointer-events: none;
        display: flex;
        transform: translateY(0px);
        opacity: 1;
    }
    50% {
        pointer-events: none;
        display: none;
        transform: translateY(20px);
        opacity: 0;
    }
    100% 
    {
        pointer-events: none;
        display: none;
        transform: translateY(20px);
        opacity: 0;
    }
}
@keyframes formToVisible {
    0% {
        pointer-events: none;
        display: none;
        transform: translateY(20px);
        opacity: 0;
    }
    50% {
        pointer-events: none;
        display: flex;
        transform: translateY(20px);
        opacity: 0;
    }
    100% {
        pointer-events: auto;
        display: flex;
        transform: translateY(0px);
        opacity: 1;
    }
}

.form header{
    background-color: #6287ffe8;
    margin: -10px -10px 5px -10px;
    border-radius: 10px 10px 0 0;
    display: flex;
    padding: 12px 18px;
}
.form header img{
    text-align: center;
}
.form header>h1{
    text-transform: uppercase;
    font-size: 16pt;
    flex-grow: 1;
}
.form header a
{
    width: 22pt;
    padding-right: 6pt;
}
.form header img
{
    object-fit: contain;

    width:  calc(100% + 4pt);
    height: calc(100% + 4pt);
    margin: -2pt;

    position: relative;
}

@media screen and (max-aspect-ratio: 1/1){
    .form{
        border-radius: 0;
    }
    .form header{
        border-radius: 0;
    }
}
/*==============================================================*/
.auto_space
{
    flex: 1; /* Заполняет оставшееся пространство */
    position: relative;
}
.records_list{
    overflow: auto;
    flex: 1; /* Заполняет оставшееся пространство */

    border-radius: 10px 10px 0 0;
    margin: 10px 0 0 0;

    position: relative;
    z-index: 100;

    padding: 4px;
    /*height: 46vh;*/
}
.records_list>ul{
    padding: 0;
}
.records_list>ul>li{
    /*margin: 5px 0px;*/
    padding: 3px;
}
.records_list>ul>li>div{
    padding: 5px 0px;
}
button.icon_button.records_list_add_button{
    border-radius: 0 0 10px 10px;
    background-image: url(../svgs/Add_White.svg);
    height: 22pt;
    display: block;
    width: 100%;

    margin-bottom: 12px;

    position: relative;
    z-index: 0;
}
/*==============================================================*/
button{
    height: 22pt;

    background-color: #6287ffe8;
    transition: 0.09s background-color;

    border-radius: 5px;
    border: 0;
    padding: 0 14px;
    min-width: 76px;
    font-family: inherit;

    font-size: 13pt;
}
button:hover {
    background-color: #82a3ff;
    transition: background-color 0.08s;
}
button:active {
    background-color: #384ece;
    transition: background-color 0.08s;
}
button:focus {
    /*outline: none;
    box-shadow: 0 0 0 1px #ffffffc5, 0 0 0 2.5px rgb(0, 132, 255);*/
    outline: none;
    box-shadow: inset 0 0 0 1px #0084ff, inset 0 0 0 2px #ffffffc5;
}
button[disabled] {
    outline: none;
    background-color: rgba(137, 145, 155, 0.815);
}
button.green{
    background-color: #07ce00e8;
}
button.green[disabled] {
    outline: none;
    background-color: rgba(137, 155, 148, 0.815);
}
button.green:hover{
    background-color: #15ff00;
}
/*==============================================================*/
.icon_button, 
.icon_button:hover,
.icon_button:active,
.icon_button:focus,
.icon_button[disabled]{
    height: 22pt;
    width: 22pt;
    background-size: 18pt;
    min-width: 0;
    color: transparent;
    background-repeat: no-repeat;
    background-position: center center;
    transition: 0.08s;
}
.trnsp.icon_button:hover {
    background-position-y: top;
    transition: 0.08s;
}
.trnsp.icon_button:active {
    background-position-y: bottom;
    transition: 0.08s;
}
.trnsp.icon_button{
    background-color: transparent;
}
.icon_button.copy{
    background-image: url(../svgs/FileCopy_White.svg);
}
.icon_button.show_aye.on{
    background-image: url(../svgs/ShowOn_White.svg);
}
.icon_button.show_aye.off{
    background-image: url(../svgs/ShowOff_White.svg);
}

.trnsp.icon_button.setting{
    background-image: url(../svgs/Settings_Blue.svg);
}
.trnsp.icon_button.delete{
    background-image: url(../svgs/Delete_Red.svg);
}
.trnsp.icon_button.logout_button{
    background-image: url(../svgs/Logout_White.svg);
    height: 25pt;
    width: 25pt;
    background-size: 22pt;
    margin: -3pt;
}
/*==============================================================*/
label{
    margin-right: 10px;
}
/*==============================================================*/
input{
    height: 22pt;
}
input[type="text"],
input[type="password"],
input[type="number"] {
    border: 0;
    background-color: transparent;
    color: black;
    padding: 0 4px;
    margin: 4px 0px;
    width: 100%;
    max-width: 300px;
    display: inline-block;
}
input[type="text"]::placeholder,
input[type="password"]::placeholder,
input[type="number"]::placeholder {
    font-style: italic;
    font-size: 10pt;
}
/*==============================================================*/
.label_input_pair{
    display: flex;
    align-items: center;
    padding: 0 10px;
}
.label_input_pair>label{
    min-width: 100px;
    order: 1; 
}
.label_input_pair>label+*{
    order: 2; 
    flex-grow: 0; 
    transition: 0.2s;
}
@media screen and (max-aspect-ratio: 1/1){
    .label_input_pair>label+*{
        flex-grow: 1; 
        max-width: 100%;
        transition: 0.2s;
    }
}
.label_input_pair>button{
    order: 3; 
    margin-left: 10px;
}

.input_button_pair{
    display: flex;
    align-items: center;
    padding: 0 10px;
}
.input_button_pair>input{
    min-width: 100px;
    flex-grow: 0; 
    order: 1; 
    margin-right: 10px;
    transition: 0.2s;
}
.input_button_pair>button{
    order: 2; 
    transition: 0.2s;
}
@media screen and (max-aspect-ratio: 1/1){
    .input_button_pair>input{
        flex-grow: 1; 
        max-width: 100% !important;
        transition: 0.2s;
    }
}
   
.horizontal_buttons_group{
    display: flex;
}
.horizontal_buttons_group>button{
    flex-grow: 0; 
    margin-right: 10px;
    transition: 0.2s;
}
.horizontal_buttons_group>button:last-child {
    margin-right: 0;
}
@media screen and (max-aspect-ratio: 1/1){
    .horizontal_buttons_group>button{
        flex-grow: 1; 
        flex-basis: 0;
        transition: 0.2s;
    }
}
/*==============================================================*/
.passwords_list_element{
    display: flex;
    align-items: center;
    padding: 0 10px;
    background-color: #0000;
}
.passwords_list_element.checked
{
    background-color: #54b2ff36;
} 
.passwords_list_element:hover{
    background-color: #54b2ff18;
    transition: 0.1s;
}
.passwords_list_element.checked:hover{
    background-color: #54b2ff36;
    transition: 0.1s;
}
.passwords_list_element *{
    margin: 0 4px;
}
.passwords_list_element input[type="checkbox"] {
    order: 1; 
    margin-right: 0;
}
.passwords_list_element label {
    order: 2; 
    flex-grow: 1; 
}
.passwords_list_element button {
    order: 3; 
    margin: 0 3px;
}
/*==============================================================*/
.result_password_block{
    display: flex;
    align-items: center;
    padding: 0 10px;
}
.result_password_block label{
    order: 1; 
}
.result_password_block input{
    order: 2; 
    flex-grow: 1; 
    margin-right: 4px;
    transition: 0.2s;
}
.result_password_block button{
    order: 3; 
    margin: 0 2pt;
}
@media screen and (min-aspect-ratio: 1/1){
    .result_password_block input{
        flex-grow: 0; 
        transition: 0.2s;
    }
}
/*==============================================================*/
input[type="checkbox"] {
    position: relative;
    left: -9999px;
    display: inline-flex;
    align-items: center;
    user-select: none;
    width: 22pt;
    height: 22pt;
}
input[type="checkbox"]::before {
    position: relative;
    left: 9999px;

    content: '';
    display: inline-block;
    width: 22pt;
    height: 22pt;
    flex-shrink: 0;
    flex-grow: 0;

    margin-right: 0.5em;
    background-image: url(../svgs/CheckboxOff_Blue.svg);
    background-repeat: no-repeat;
    background-position: center center;
    transition: 0.08s;
}
input[type="checkbox"]:checked::before {
    background-image: url(../svgs/CheckboxOn_Blue.svg);
    transition: 0.08s;
}
/*==============================================================*/
#master_password_input{
    max-width: 300px;
    width: 100%;
}
















@media (prefers-color-scheme: light) {
    body{
        background-color: #d0cfd3;
    }
    .form{
        box-shadow: 0 0 15px -5px #08154bb0;
        color: #000000;
        background-color: #fcfeff;
    }
    .form.disabled{
        background-color: #cad0d6ec;
    }
    input[type="text"]::placeholder,
    input[type="password"]::placeholder,
    input[type="number"]::placeholder {
        color: #001d382f;
    }

    input[type="text"],
    input[type="password"],
    input[type="number"]{
        color: #000000;
    }

    .form header>h1{
        color: #ffffff;
    }
    button{
        color: #ffffff;
    }

    .records_list{
        background-color: transparent;
        box-shadow: inset 0 0 10px #0039b317, inset 0 0 50px #0039b317;
    }
    .records_list>ul>li{
        box-shadow: 0 14px 0 -12px #001d3809;
    }

    input[type="text"], 
    input[type="password"],
    input[type="number"] {
        box-shadow: inset 0 -3px 0 -1px #6287ffe8;
    }

    .error_label {
        color: rgb(236, 0, 59);
    }
}

@media (prefers-color-scheme: dark) {
    body{
        background-color: #17171a;
    }
    .form{
        box-shadow: 0 0 15px -5px #000000b0;
        color: #e3ebf1ec;
        background-color: #474b4e;
    }
    .form.disabled{
        background-color: #3b3e41;
    }
    input[type="text"]::placeholder,
    input[type="password"]::placeholder,
    input[type="number"]::placeholder {
        color: #d3ebff41;
    }

    input[type="text"],
    input[type="password"],
    input[type="number"]{
        color: #e3ebf1ec;
    }

    .form header>h1{
        /*color: #29282b;*/
        color: #ffffff;
    }
    button{
        /*color: #29282b;*/
        color: #ffffff;
    }

    .records_list{
        box-shadow: inset 0 0 10px #00000021, inset 0 0 50px #00000021;
    }
    .records_list>ul>li{
        box-shadow: 0 14px 0 -12px #000f1d1f;
    }

    input[type="text"], 
    input[type="password"],
    input[type="number"] {
        box-shadow: inset 0 -3px 0 -1px #e3ebf1c4;
    }

    .error_label {
        color: rgb(255, 125, 157);
    }
}


/*==============================================================*/
.hidden {
    display: none;
}
.error_label {
    font-size: 10pt;
}
.error_label:not(.hidden) {
    animation: errorLabelToHidden 0.264s;
}
.error_label.hidden {
    animation: errorLabelToVisible 0.1s;
}
@keyframes errorLabelToHidden {
    0% { filter: opacity(0.3); }
    33% { filter: opacity(1); }
    66% { filter: opacity(0.3); }
    100% { filter: opacity(1); }
}
@keyframes errorLabelToVisible {
    0% { display: inline; }
    99% { display: none; }
    100% { display: none; }
}

/*==============================================================*/


.password_input_blink {
    animation: shake 0.23s;
}

@keyframes shake {
    0% { transform: translateY(0); }
    8% { transform: translateY(-3px); }
    30% { transform: translateY(6px); }
    100% { transform: translateY(0); }
}