/*
 * Blazor-specific additions to the ported legacy theme.
 * Everything else in this folder is the original site's CSS, unmodified.
 */

/* ------------------------------------------------------------------
   Project grids

   The legacy site used Isotope to lay out and filter the project tiles.
   Filtering is now done in C# (only matching tiles are rendered), so the
   grids need a real layout instead of Isotope's absolute positioning.
   The Projects page grid keeps Bootstrap's .row/.col-md-4 behaviour; only
   the homepage grid, which had no column classes, needs flex.
   ------------------------------------------------------------------ */
.our_project_details:not(.row) {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.our_project_details:not(.row) > .project_item {
    position: relative;
    flex: 0 0 282px;
    max-width: 282px;
}

.our_project_filter li {
    cursor: pointer;
}

.our_project_filter li a {
    cursor: pointer;
}

.projects_empty {
    padding: 40px 0;
    text-align: center;
    font-style: italic;
}

/* ------------------------------------------------------------------
   Forms — validation and busy state
   ------------------------------------------------------------------ */
.validation-message,
.field-validation-error {
    display: block;
    margin-top: 4px;
    color: #d9534f;
    font-size: 90%;
}

.validation-summary-errors {
    margin-bottom: 15px;
    padding: 10px 15px;
    border: 1px solid #ebccd1;
    border-radius: 3px;
    background: #f2dede;
    color: #a94442;
}

.validation-summary-errors ul {
    margin: 0;
    padding-left: 18px;
}

.form-control.invalid,
.form-control.modified.invalid {
    border-color: #d9534f;
}

.form-control.modified.valid {
    border-color: #cfcfcf;
}

.slider_btn[disabled] {
    opacity: .65;
    cursor: not-allowed;
}

.form-status {
    margin-top: 15px;
    padding: 12px 15px;
    border-radius: 3px;
}

.form-status.success {
    border: 1px solid #d6e9c6;
    background: #dff0d8;
    color: #3c763d;
}

.form-status.error {
    border: 1px solid #ebccd1;
    background: #f2dede;
    color: #a94442;
}

.file-hint {
    display: block;
    margin-top: 6px;
    font-size: 85%;
    color: #777;
}

/* ------------------------------------------------------------------
   Blazor circuit error banner
   ------------------------------------------------------------------ */
#blazor-error-ui {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1050;
    padding: 12px 20px;
    background: #ffffe0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, .2);
    color: #333;
}

#blazor-error-ui .dismiss {
    position: absolute;
    top: 8px;
    right: 12px;
    cursor: pointer;
}
