html:has(.public-page),
body:has(.public-page) {
    margin: 0;
    background: #050a1c;
}

.dv-theme {
    --dv-text: #f5f8ff;
    --dv-soft: #c0cae2;
    --dv-muted: #8997b7;
    --dv-cyan: #20d8ff;
    --dv-border: rgba(116, 154, 255, 0.34);
    --dv-field-bg: rgba(7, 18, 48, 0.72);
    --dv-error: #ffb6c8;
}

.dv-input,
.dv-textarea,
.dv-select {
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: 2.9rem;
    margin: 0;
    padding: 0.8rem 0.9rem;
    border: 1px solid var(--dv-border, rgba(116, 154, 255, 0.34));
    border-radius: 9px;
    color: var(--dv-text, #f5f8ff);
    background: var(--dv-field-bg, rgba(7, 18, 48, 0.72));
    font: inherit;
    line-height: 1.5;
}

.dv-textarea {
    min-height: 12rem;
    resize: vertical;
}

.dv-select option {
    color: #f5f8ff;
    background: #0a1435;
}

.dv-input::placeholder,
.dv-textarea::placeholder {
    color: var(--dv-muted, #8997b7);
    opacity: 1;
}

.dv-checkbox {
    appearance: none;
    box-sizing: border-box;
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    margin: 0;
    border: 1px solid #6a789e;
    border-radius: 4px;
    background: transparent;
    cursor: pointer;
}

.dv-checkbox:checked {
    border-color: var(--dv-cyan, #20d8ff);
    background: linear-gradient(135deg, var(--dv-cyan, #20d8ff), #2474ff);
}

.dv-checkbox:checked::after {
    display: block;
    content: "✓";
    color: #06142d;
    font-weight: 900;
    text-align: center;
    line-height: 23px;
}

.dv-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    min-height: 2.9rem;
    padding: 0.55rem 1rem;
    border: 1px solid var(--dv-border, rgba(116, 154, 255, 0.34));
    border-radius: 6px;
    color: var(--dv-text, #f5f8ff);
    background: rgba(8, 20, 54, 0.6);
    font: inherit;
    font-weight: 650;
    line-height: 1.4;
    text-decoration: none;
    cursor: pointer;
}

.dv-button--primary {
    border-color: rgba(101, 229, 255, 0.38);
    color: #fff;
    background: linear-gradient(90deg, #20d8ff, #7b38ff);
}

.dv-button:hover:not(:disabled) {
    border-color: var(--dv-cyan, #20d8ff);
}

.dv-input:focus-visible,
.dv-textarea:focus-visible,
.dv-select:focus-visible,
.dv-checkbox:focus-visible,
.dv-button:focus-visible {
    outline: 2px solid var(--dv-cyan, #20d8ff) !important;
    outline-offset: 3px;
    box-shadow: none !important;
}

.dv-input[aria-invalid="true"],
.dv-textarea[aria-invalid="true"],
.dv-select[aria-invalid="true"] {
    border-color: var(--dv-error, #ffb6c8);
}

.dv-input:disabled,
.dv-textarea:disabled,
.dv-select:disabled,
.dv-checkbox:disabled,
.dv-button:disabled {
    opacity: 0.6;
    cursor: default;
}

.dv-error {
    margin: 0.4rem 0 0;
    color: var(--dv-error, #ffb6c8);
    font-size: 0.86rem;
    line-height: 1.5;
}

/* Embedded access fields keep the existing surrounding input frame. */
.client-access-page .client-access-input > .dv-input--embedded {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0;
    height: 46px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    color: #f5f8ff !important;
    background: transparent !important;
    font: inherit !important;
}

/* Historical budget rows already apply their own opacity. */
.portal-v2 .budget-table .dv-checkbox:disabled {
    opacity: 1;
}
