/* Sunmaster HR - clean white, green primary, orange pending, red overdue/rejected */
:root {
    --sm-green: #0f7a3d;
    --sm-green-dark: #0a5c2d;
    --sm-green-light: #e6f4ec;
    --sm-orange: #e8820c;
    --sm-orange-light: #fdf1e0;
    --sm-red: #c62828;
    --sm-red-light: #fdecea;
}

body { background: #ffffff; padding-bottom: 70px; }
@media (min-width: 992px) { body { padding-bottom: 0; } }

.sm-navbar { background: var(--sm-green); }
.sm-navbar .nav-link { color: rgba(255,255,255,.85); }
.sm-navbar .nav-link:hover { color: #fff; }

.btn-primary { background: var(--sm-green); border-color: var(--sm-green); }
.btn-primary:hover, .btn-primary:focus { background: var(--sm-green-dark); border-color: var(--sm-green-dark); }
.btn-success { background: var(--sm-green); border-color: var(--sm-green); }
a, .link-primary { color: var(--sm-green); }

/* Touch-friendly controls */
.form-control, .form-select { min-height: 44px; }
.btn { min-height: 44px; }
.btn-sm { min-height: 34px; }

/* Summary cards */
.sm-card { border: 1px solid #e5e9e6; border-radius: .75rem; padding: .9rem 1rem; height: 100%;
           display: block; text-decoration: none; color: inherit; transition: box-shadow .15s; }
.sm-card:hover { box-shadow: 0 2px 10px rgba(0,0,0,.08); color: inherit; }
.sm-card .num { font-size: 1.6rem; font-weight: 700; line-height: 1.1; }
.sm-card .lbl { font-size: .78rem; color: #64716a; text-transform: uppercase; letter-spacing: .03em; }
.sm-card.green  { border-left: 4px solid var(--sm-green);  }
.sm-card.orange { border-left: 4px solid var(--sm-orange); }
.sm-card.red    { border-left: 4px solid var(--sm-red);    }

/* Status badges */
.badge-stage    { background: var(--sm-green-light);  color: var(--sm-green-dark); }
.badge-pending  { background: var(--sm-orange-light); color: var(--sm-orange); }
.badge-closed   { background: var(--sm-red-light);    color: var(--sm-red); }
.badge-joined   { background: var(--sm-green);        color: #fff; }

/* Workflow progress indicator: Calling > Interview > Documents > Offer > Joined */
.sm-steps { display: flex; gap: .25rem; overflow-x: auto; padding: .25rem 0; }
.sm-steps .step { flex: 1; min-width: 70px; text-align: center; font-size: .72rem; padding: .45rem .2rem;
                  background: #f1f3f2; color: #7a857f; border-radius: .4rem; white-space: nowrap; }
.sm-steps .step.done    { background: var(--sm-green-light); color: var(--sm-green-dark); }
.sm-steps .step.current { background: var(--sm-green); color: #fff; font-weight: 600; }
.sm-steps .step.closed  { background: var(--sm-red-light); color: var(--sm-red); font-weight: 600; }

/* Responsive tables become cards on small screens */
@media (max-width: 767px) {
    .table-cards thead { display: none; }
    .table-cards tr { display: block; border: 1px solid #e5e9e6; border-radius: .6rem;
                      margin-bottom: .7rem; padding: .5rem .75rem; }
    .table-cards td { display: flex; justify-content: space-between; gap: .75rem;
                      border: none; padding: .25rem 0; font-size: .9rem; }
    .table-cards td::before { content: attr(data-label); font-weight: 600; color: #64716a; }
}

/* Sticky save bar */
.sm-savebar { position: sticky; bottom: 70px; background: #fff; border-top: 1px solid #e5e9e6;
              padding: .6rem 0; z-index: 5; }
@media (min-width: 992px) { .sm-savebar { bottom: 0; } }

/* Bottom mobile action bar */
.sm-bottombar { position: fixed; bottom: 0; left: 0; right: 0; background: #fff;
                border-top: 1px solid #dfe5e1; display: flex; justify-content: space-around;
                align-items: center; padding: .3rem 0 calc(.3rem + env(safe-area-inset-bottom)); z-index: 100; }
.sm-bottombar a { text-align: center; color: #64716a; text-decoration: none; font-size: .65rem;
                  display: flex; flex-direction: column; min-width: 56px; }
.sm-bottombar a i { font-size: 1.25rem; }
.sm-bottombar .sm-fab { background: var(--sm-green); color: #fff; border-radius: 50%;
                        width: 52px; height: 52px; min-width: 52px; justify-content: center;
                        margin-top: -22px; box-shadow: 0 3px 8px rgba(15,122,61,.4); }
.sm-bottombar .sm-fab i { font-size: 1.5rem; }

.text-overdue { color: var(--sm-red); font-weight: 600; }
.text-pending { color: var(--sm-orange); font-weight: 600; }

/* Timeline */
.sm-timeline { border-left: 3px solid var(--sm-green-light); padding-left: 1rem; }
.sm-timeline .item { position: relative; padding-bottom: 1rem; }
.sm-timeline .item::before { content: ""; position: absolute; left: -1.42rem; top: .3rem;
    width: .7rem; height: .7rem; border-radius: 50%; background: var(--sm-green); }

@media print {
    .sm-navbar, .sm-bottombar, .sm-savebar, .btn { display: none !important; }
    body { padding: 0; }
}

/* Keep dashboard charts contained regardless of data */
.card canvas { max-height: 260px; width: 100% !important; }
