.required { color: #b00020; font-weight: bold; }
.cert-header { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.cert-logo { max-width: 230px; height: auto; }
.cert-card { margin-top: 20px; border-top: 8px solid #225444; border-radius: 6px; }
.small-note { margin-top: 12px; color: #666; font-size: 14px; }
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="search"] { width: 100%; border: none; border-bottom: 2px solid #b8b8b8; padding: 10px 4px; font-size: 16px; background: transparent; }
input:focus { outline: none; border-bottom-color: #225444; }
.actions-row { margin: 18px 0 40px; display: flex; justify-content: flex-start; }
.privacy-check { font-size: 15px; }
.success-card, .error-card { padding: 24px; background: white; }
.success-card { border-top-color: #2e7d32; }
.error-card { border-top-color: #b00020; }
.button-link, .admin-button { display: inline-block; text-decoration: none; background: #225444; color: white; border: 0; border-radius: 20px; padding: 10px 18px; cursor: pointer; font-weight: bold; }
.button-link:hover, .admin-button:hover { background: #2f745e; }
.admin-login-body, .admin-body { margin: 0; font-family: Arial, sans-serif; background: #efefef; color: #222; }
.login-box { max-width: 420px; margin: 80px auto; padding: 30px; background: white; border-top: 8px solid #225444; box-shadow: 0 4px 18px rgba(0,0,0,.15); border-radius: 6px; }
.login-logo { max-width: 220px; display: block; margin: 0 auto 15px; }
.login-box label { display: block; margin: 18px 0; font-weight: bold; }
.admin-error { color: #b00020; font-weight: bold; }
.admin-topbar { position: sticky; top: 0; z-index: 5; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 16px 24px; background: white; border-top: 16px solid #225444; box-shadow: 0 2px 12px rgba(0,0,0,.12); }
.admin-topbar h1 { margin: 0; font-size: 22px; }
.admin-topbar p { margin: 4px 0 0; color: #666; }
.admin-topbar nav { display: flex; gap: 10px; flex-wrap: wrap; }
.admin-button.secondary { background: #555; }
.admin-main { padding: 20px; }
.admin-tools { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.admin-tools input { max-width: 460px; background: white; border: 1px solid #ccc; border-radius: 6px; padding: 11px; }
.save-status { font-weight: bold; color: #225444; }
.table-wrap { overflow: auto; background: white; border: 1px solid #ccc; box-shadow: 0 2px 12px rgba(0,0,0,.08); max-height: calc(100vh - 170px); }
.admin-table { border-collapse: collapse; min-width: 1200px; width: 100%; }
.admin-table th, .admin-table td { border: 1px solid #d0d0d0; padding: 8px; min-width: 130px; vertical-align: top; }
.admin-table th { position: sticky; top: 0; background: #225444; color: white; cursor: pointer; z-index: 2; }
.admin-table td[contenteditable="true"] { background-clip: padding-box; }
.admin-table td[contenteditable="true"]:focus { outline: 3px solid #225444; background: white; }
.admin-table tr.estado-pendiente td { background-color: #fff; }
.admin-table tr.estado-proceso td { background-color: #fff3bf; }
.admin-table tr.estado-finalizada td { background-color: #d6f5d6; }
.actions-cell { min-width: 170px; white-space: nowrap; }
.finishBtn { border: 0; background: #225444; color: white; padding: 7px 10px; border-radius: 16px; cursor: pointer; }
@media (max-width: 700px) { .admin-topbar { align-items: flex-start; flex-direction: column; } .login-box { margin: 30px 15px; } }

/* Ajuste visual para que el formulario público mantenga el aspecto del formulario 37.zip */
.uned-form-header {
    position: sticky;
    top: 0;
    background: #fff;
    border-top: 20px solid #225444;
    z-index: 3;
}

.uned-header-inner {
    width: 100%;
    padding: 20px;
}

.uned-title-row {
    display: flex;
    align-items: center;
    gap: 20px;
    min-height: 70px;
}

.uned-header-logo {
    width: 92px;
    height: auto;
    display: block;
    flex: 0 0 auto;
}

.uned-title-row h1 {
    margin: 0;
    font-size: 16px;
    line-height: 1.25;
    font-weight: bold;
    color: #000;
}

.uned-message-box {
    margin-top: 26px;
    border: 2px solid #225444;
    background: #fff;
    padding: 6px;
    font-size: 16px;
    line-height: 1.25;
    text-align: left;
}

.form-center {
    padding-top: 20px;
}

.form-center h2 {
    margin: 0 0 10px;
    font-size: 18px;
    font-weight: bold;
    color: #000;
}

.form-center .divgroup {
    background-color: #fff;
    margin-top: 0;
    margin-bottom: 40px;
    padding: 10px;
    border: 2px solid #225444;
    border-radius: 0;
    box-shadow: none;
}

.form-center .divgroup:hover {
    box-shadow: 0 4px 10px #225444;
}

.form-center input[type="text"],
.form-center input[type="email"],
.form-center input[type="tel"] {
    width: 100%;
    height: 22px;
    padding: 1px 4px;
    border: 1px solid #9f9f9f;
    border-radius: 0;
    background: #fff;
    font-size: 14px;
}

.form-center input[type="text"]:focus,
.form-center input[type="email"]:focus,
.form-center input[type="tel"]:focus {
    outline: 1px solid #225444;
    border-color: #225444;
}

.privacy-inline {
    display: inline-block;
    margin: 0 0 20px;
    font-size: 16px;
    color: #000;
}

.privacy-inline input {
    accent-color: #225444;
}

.actions-row {
    margin: 0 0 40px;
}

.legacy-submit {
    background: #efefef;
    color: #000;
    border: 1px solid #8f8f8f;
    border-radius: 2px;
    padding: 3px 8px;
    font-size: 14px;
    font-weight: normal;
    cursor: pointer;
}

.legacy-submit:hover {
    background: #e0e0e0;
}

@media screen and (max-width: 799px) {
    .uned-header-inner {
        padding: 12px;
    }
    .uned-title-row {
        gap: 12px;
    }
    .uned-header-logo {
        width: 78px;
    }
    .uned-title-row h1 {
        font-size: 14px;
    }
    .uned-message-box {
        margin-top: 18px;
        font-size: 14px;
    }
}

/* Captcha */
.captcha-block {
    margin: 0 0 20px;
}

/* Mini editor Excel */
.excel-tools { position: sticky; top: 84px; z-index: 4; background: #efefef; padding: 8px 0; }
.excel-wrap { border: 1px solid #ccc; background: white; max-height: calc(100vh - 180px); overflow: auto; }
.excel-table { min-width: 1200px; table-layout: fixed; }
.excel-table th { top: 0; }
.excel-table td { height: 24px; min-width: 130px; padding: 5px 7px; white-space: pre-wrap; }
.excel-table td.selected-cell { outline: 3px solid #1a73e8 !important; outline-offset: -3px; }
.excel-table td[contenteditable="true"]:focus { outline: 3px solid #1a73e8; background-clip: padding-box; }
.light-btn { background: #f7f7f7; color: #222; border: 1px solid #aaa; }
.light-btn:hover { background: #fff; }
.yellow-btn { background: #b58a00; }
.yellow-btn:hover { background: #8c6b00; }
.green-btn { background: #2c7a3f; }
.green-btn:hover { background: #235f32; }
code { background: #f5f5f5; padding: 2px 5px; border-radius: 4px; }
