/* Custom styles used by module 'Starface' */

.attendance-widget {
    padding: 0 15px;
    min-height: 200px;
}
.attendance-widget h2 {
    color: #333;
    font-size: 20px;
    margin-bottom: 20px;
}

    .attendance-widget .btn-in,
    .attendance-widget .btn-out {
        min-width: 186px;
        font-size: 16px;
        font-weight: 500;
        text-align: center;
        color: #fff;
        text-decoration: none;
        border-radius: 6px;
        border: none;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
        transition: background 0.3s ease, transform 0.1s ease;
        cursor: pointer;
    }

    .attendance-widget .btn-in {
        background-color: #4ea72e;
    }

    .attendance-widget .btn-out {
        background-color: #e97132;
    }


    .attendance-widget .btn-in:hover,
    .attendance-widget .btn-out:hover {
        transform: translateY(-2px);
    }

        .attendance-widget .btn-in:active,
        .attendance-widget .btn-out:active {
            transform: translateY(0);
            box-shadow: 0 3px 6px rgba(0,0,0,0.15);
        }

        .attendance-widget .btn-in:disabled,
        .attendance-widget .btn-in[disabled],
        .attendance-widget .btn-out:disabled,
        .attendance-widget .btn-out[disabled] {
            background: #aac4e6;
            cursor: not-allowed;
            box-shadow: none;
        }

.attendance-widget .sub-title {
    font-size: larger;
}

.attendance-widget .link-my-logs {
    padding-top: 24px;
}


.table-picker tbody tr:hover td {
    cursor: pointer;
}

.table-picker td .picker-arrow {
    position: absolute;
    left: 10px;
    font-size: large;
    margin-top: -4px;
    color: #337ab7;
    display: none;
}

.table-picker tbody tr:hover td .picker-arrow {
    display: inline;
}

/* "Ver dados submetidos" dialog: the recruitment form has many fields, so use
   nearly the full viewport width (capped on very wide monitors). */
.recruitment-view-modal .modal-dialog {
    width: 96%;
    max-width: 1500px;
    margin-left: auto;
    margin-right: auto;
}

/* Candidate form: the form is long, so the action buttons stick to the bottom of the
   viewport (always reachable) instead of only at the very end.
   If an ancestor's overflow ever breaks sticky, swap position:sticky for position:fixed
   and add padding-bottom to .recruitment-candidate. */
.recruitment-actionbar {
    position: sticky;
    bottom: 0;
    background: #fff;
    border-top: 1px solid #ddd;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
    padding: 10px 16px;
    margin-top: 16px;
    z-index: 100;
    text-align: right;
}

.recruitment-actionbar .actionbar-hint {
    margin-right: 12px;
    vertical-align: middle;
}

@media (max-width: 600px) {
    .recruitment-actionbar { text-align: center; }
    .recruitment-actionbar .btn { display: block; width: 100%; margin: 4px 0; }
    .recruitment-actionbar .actionbar-hint { display: block; margin: 0 0 6px; }
}

/* Public application page: honeypot. Moved off-screen rather than display:none —
   the better form fillers skip anything hidden that way, and a field they skip
   catches nothing. Invisible to a person, still in the DOM for a bot. */
.hp-field {
    position: absolute;
    left: -9999px;
    top: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.recruitment-application .opening-item {
    border: 1px solid #e5e5e5;
    border-radius: 4px;
    padding: 16px;
    margin-bottom: 12px;
}

.recruitment-application .opening-item h4 {
    margin-top: 0;
}


/* Public openings listing */
.recruitment-openings { max-width: 860px; margin: 0 auto; }

.recruitment-openings .list-count { margin-bottom: 12px; }

.recruitment-openings .opening-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    border: 1px solid #e5e5e5;
    border-radius: 6px;
    padding: 18px 20px;
    margin-bottom: 12px;
    background: #fff;
    transition: box-shadow .15s ease, border-color .15s ease;
}
.recruitment-openings .opening-item:hover {
    border-color: #d0d7de;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
}
.recruitment-openings .opening-body { flex: 1 1 auto; min-width: 0; }
.recruitment-openings .opening-item h3 { margin: 0 0 4px; font-size: 18px; }
.recruitment-openings .opening-category { font-size: 11px; font-weight: normal; vertical-align: middle; }
.recruitment-openings .opening-filters { margin-bottom: 16px; }
.recruitment-openings .opening-meta { margin-bottom: 8px; }
.recruitment-openings .opening-meta .sep { opacity: .45; }
.recruitment-openings .opening-description { margin-bottom: 8px; }
.recruitment-openings .opening-closes { margin: 0; }
.recruitment-openings .opening-action { flex: 0 0 auto; }

.recruitment-openings .spontaneous-cta {
    border: 1px dashed #cfd6dd;
    border-radius: 6px;
    padding: 18px 20px;
    margin-top: 24px;
    background: #fafbfc;
}
.recruitment-openings .spontaneous-cta h3 { margin-top: 0; font-size: 17px; }

@media (max-width: 600px) {
    .recruitment-openings .opening-item { flex-direction: column; gap: 10px; }
    .recruitment-openings .opening-action .btn { width: 100%; }
}

/* Public opening detail + apply */
.recruitment-detail { max-width: 860px; margin: 0 auto; }
.recruitment-detail .opening-detail h2 { margin-top: 0; margin-bottom: 6px; }
.recruitment-detail .opening-category { font-size: 12px; font-weight: normal; vertical-align: middle; }
.recruitment-detail .opening-meta { margin-bottom: 14px; }
.recruitment-detail .opening-meta .sep { opacity: .45; }
.recruitment-detail .opening-description { margin-bottom: 14px; }
.recruitment-detail .apply-block { margin-top: 8px; }
.recruitment-detail .apply-block > h3 { margin-top: 0; }
.recruitment-detail .consent-line {
    margin: 16px 0;
    padding: 10px 14px;
    background: #f7f8fa;
    border: 1px solid #ececec;
    border-radius: 4px;
}
.recruitment-detail .consent-line label { font-weight: normal; margin: 0; }
.recruitment-detail .consent-line .text-muted { display: block; margin-left: 20px; font-size: 12px; }
.recruitment-detail .apply-done { margin-top: 16px; }

