@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');

html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

h1:focus {
    outline: none;
}

a, .btn-link {
    color: #0071c1;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.content {
    padding-top: 1.1rem;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid red;
}

.validation-message {
    color: red;
}

#blazor-error-ui {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }



/*Task Matrix*/

a {
    text-decoration: none; /* �������� ������������� � ������ */
}

/*������ ������ � �������� ����*/
.tm-user, .tm-signin, .tm-about, .tm-language {
    visibility: hidden;
}

.jobs-container {
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 47vh 47vh;
}

/*��� ����� ������� 1*/
@media (max-width: 1099.98px), (max-height: 599.98px) {
    /*������ ������� ������ ����*/
    main .top-row {
        visibility: collapse !important;
        height: 0px !important;
    }

    .jobs-container {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 49.8vh 50vh;
    }

    /*�������� ������ � �������� ����*/
    .tm-user, .tm-signin, .tm-about, .tm-language {
        visibility: visible;
    }
}

/*�������������� � ����*/
.show {
    display: block;
    animation-name: show-animation;
    animation-duration: 1s;
}

@keyframes show-animation {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.hide {
    display: none;
}


/* ������ ������������ ���� � ���� ��� � ������ ����� (�����) */
.tm-theme-toggle,
.tm-theme-toggle svg {
    color: darkgray;
}

/* theme-aware borders for squares, dialogs and buttons */
:root[data-bs-theme="light"] .square,
:root[data-bs-theme="light"] .taskmatrix-container .container .col,
:root[data-bs-theme="light"] .rz-dialog,
:root[data-bs-theme="light"] .rz-button {
    border: 1px solid gray !important;
}

/* ensure all rz-buttons are same height */
.rz-button {
    height: 2.5rem !important;
}

/* small left spacing for save button container to avoid touching edge */
.todoitemdetail-page .row > .col > .d-flex > .rz-button:first-child {
    margin-left: 0.5rem;
}

@media (max-width: 576px) {
    /* keep a small gap at left even on mobile so button isn't flush against edge */
    .todoitemdetail-page .row > .col > .d-flex > .rz-button:first-child {
        margin-left: 0.25rem !important;
    }
    /* fix done button vertical offset on narrow screens */
    .todoitemdetail-page .row > .col > .d-flex > .rz-button[Name="ButtonDone"] {
        margin-top: 0 !important;
    }
}

:root[data-bs-theme="dark"] .square,
:root[data-bs-theme="dark"] .taskmatrix-container .container .col,
:root[data-bs-theme="dark"] .rz-dialog,
:root[data-bs-theme="dark"] .rz-button {
    border: 1px solid whitesmoke !important;
}

/* make sure buttons inside the edit form also get a visible border
   in dark theme; use a page-specific wrapper to override more specific
   Radzen rules if necessary */
:root[data-bs-theme="dark"] .todoitemdetail-page .rz-button {
    border: 1px solid whitesmoke !important;
}

/* global kill of the overlay div when dark theme is active */
:root[data-bs-theme="dark"] .overlay {
    display: none !important;
}
.tm-theme-toggle {
    margin-right: 0.5rem;
    border: none;
    background: none;
}
.tm-theme-toggle:hover {
    opacity: 0.85;
}

/*������ ������ �����*/
.tm-language_icon {
    color: darkgray;
    font-size: 1.1rem;
    margin: auto 10px;
}


@media (max-width: 801px) {

    .jobs-container {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 47vh 47vh;
    }
}




/*������������ ���������*/
@media (max-width: 1200.98px) {

    .top-row.auth {
        justify-content: center !important;
        display: none !important;
    }

    /* when sidebar collapses at 1200px, keep the 2x2 matrix layout
       but make sure both columns share the available space equally */
    .jobs-container {
        display: grid;
        gap: 4px;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 48vh 47vh; /* two balanced rows */
    }

    .tm-language_icon {
        color: darkgray;
        font-size: 0;
        margin: 0;
        visibility: hidden;
    }
}


