/* LN HRMS – application-wide professional theme override */
:root {
  --hrms-navy: #172b4d;
  --hrms-blue: #2563eb;
  --hrms-indigo: #4f46e5;
  --hrms-slate: #64748b;
  --hrms-line: #e7edf5;
  --hrms-canvas: #f5f7fb;
  --hrms-card: #ffffff;
  --hrms-success: #059669;
  --hrms-warning: #d97706;
  --hrms-danger: #dc2626;
}

body { background: var(--hrms-canvas); color: #334155; font-family: "Public Sans", sans-serif; }
.layout-wrapper { background: var(--hrms-canvas); }
.layout-menu { background: var(--hrms-navy) !important; border: 0; box-shadow: 10px 0 30px rgba(15, 23, 42, .08); }
.layout-menu .app-brand { height: 82px; margin: 0 !important; padding: 0 1.45rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.layout-menu .app-brand-text { color: #fff !important; font-size: 1.28rem !important; letter-spacing: -.35px; }
.layout-menu .menu-inner { padding: 1rem .75rem !important; }
.layout-menu .menu-link { color: #cbd5e1 !important; min-height: 44px; margin: 2px 0; padding: .68rem .82rem !important; border-radius: 9px !important; font-size: .84rem; font-weight: 500; }
.layout-menu .menu-link:hover { color: #fff !important; background: rgba(255,255,255,.10) !important; transform: none !important; }
.layout-menu .menu-item.active > .menu-link,
.layout-menu .menu-item.open > .menu-link { color: #fff !important; background: linear-gradient(90deg, #2563eb, #4f46e5) !important; box-shadow: 0 6px 15px rgba(37,99,235,.25) !important; }
.layout-menu .menu-icon, .layout-menu .bx { color: inherit !important; font-size: 1.14rem; }
.layout-menu .menu-sub .menu-link { color: #94a3b8 !important; min-height: 38px; font-size: .81rem; padding-left: 2.65rem !important; }
.layout-menu .menu-sub .menu-link:hover { color: #fff !important; }
.layout-menu .menu-header { color: #71809a !important; margin: 1.15rem .75rem .4rem !important; font-size: .64rem !important; letter-spacing: .09em !important; }

.layout-navbar { height: 66px; margin: 16px 20px 0; padding: 0 1.4rem; background: rgba(255,255,255,.92) !important; border: 1px solid rgba(226,232,240,.9); border-radius: 12px; box-shadow: 0 4px 18px rgba(15,23,42,.04); }
.layout-navbar .badge { background: #eef2ff !important; color: #4338ca !important; font-weight: 600; padding: .48rem .68rem; border-radius: 7px; }
.avatar.avatar-online:after { border-color: #fff; }
.content-wrapper { padding-top: .25rem; }
.container-xxl { max-width: 1440px; }
.container-p-y { padding-top: 1.75rem !important; padding-bottom: 2rem !important; }

h1,h2,h3,h4,h5,h6 { color: var(--hrms-navy); font-weight: 650; letter-spacing: -.025em; }
h4 { font-size: 1.35rem; }
.text-muted, .text-body-secondary { color: var(--hrms-slate) !important; }
.card { border: 1px solid var(--hrms-line); border-radius: 12px; box-shadow: 0 3px 12px rgba(15,23,42,.035); background: var(--hrms-card); overflow: hidden; }
.card-header { min-height: 58px; padding: 1.05rem 1.25rem; color: var(--hrms-navy); font-size: .94rem; font-weight: 650; background: #fff; border-bottom: 1px solid var(--hrms-line); }
.card-body { padding: 1.25rem; }
.dashboard-card { border: 1px solid var(--hrms-line) !important; box-shadow: none !important; }
.dashboard-card:hover, .quick-action-card:hover { transform: translateY(-3px) !important; box-shadow: 0 12px 24px rgba(15,23,42,.09) !important; }
.welcome-banner { border: 0; border-radius: 14px; background: linear-gradient(110deg, #172b4d 0%, #283e70 62%, #2563eb 100%) !important; box-shadow: 0 14px 28px rgba(37,99,235,.18); }
.welcome-banner .card-body { padding: 1.45rem 1.7rem; }
.welcome-banner h3 { font-weight: 650; }
.quick-action-card { border: 1px solid var(--hrms-line); transition: .2s ease; }

.btn { border-radius: 8px; padding: .55rem .9rem; font-weight: 600; font-size: .83rem; letter-spacing: .01em; }
.btn-primary { background: var(--hrms-blue); border-color: var(--hrms-blue); box-shadow: 0 4px 10px rgba(37,99,235,.18); }
.btn-primary:hover, .btn-primary:focus { background: #1d4ed8; border-color: #1d4ed8; }
.btn-outline-primary { color: var(--hrms-blue); border-color: #bfdbfe; background: #fff; }
.btn-outline-primary:hover { background: #eff6ff; color: #1d4ed8; border-color: #93c5fd; }
.form-control, .form-select, .select2-container--default .select2-selection--single { min-height: 40px; border-color: #dbe3ee; border-radius: 8px; color: #334155; }
.form-control:focus, .form-select:focus { border-color: #93c5fd; box-shadow: 0 0 0 .2rem rgba(37,99,235,.11); }
label, .form-label { color: #475569; font-size: .82rem; font-weight: 600; margin-bottom: .42rem; }
.input-group-text { border-color: #dbe3ee; background: #f8fafc; }

.table { margin-bottom: 0; }
.table > :not(caption) > * > * { padding: .85rem 1.15rem; border-bottom-color: #edf1f5; vertical-align: middle; }
.table thead th { color: #64748b; background: #f8fafc; border-bottom-width: 1px; font-size: .69rem; font-weight: 700; letter-spacing: .065em; text-transform: uppercase; }
.table-hover tbody tr:hover > * { background: #f8fbff; }
.badge { border-radius: 6px; padding: .4em .62em; font-size: .68rem; font-weight: 700; letter-spacing: .02em; }
.bg-label-primary { background: #eef2ff !important; color: #4f46e5 !important; }
.bg-label-success { background: #ecfdf5 !important; color: #059669 !important; }
.bg-label-warning { background: #fffbeb !important; color: #d97706 !important; }
.bg-label-danger { background: #fef2f2 !important; color: #dc2626 !important; }
.alert { border: 0; border-radius: 9px; font-size: .87rem; }
.pagination .page-link { color: var(--hrms-blue); border-color: var(--hrms-line); }
.pagination .active .page-link { background-color: var(--hrms-blue); border-color: var(--hrms-blue); }

@media (max-width: 1199.98px) { .layout-navbar { margin-left: 12px; margin-right: 12px; } }
@media (max-width: 575.98px) { .layout-navbar { margin-top: 8px; border-radius: 0; } .container-p-y { padding: 1rem !important; } .welcome-banner .card-body { padding: 1.1rem; } }

/* Executive dashboard */
.hrms-hero { min-height: 218px; position: relative; overflow: hidden; padding: 2rem 2.15rem; border-radius: 16px; color: #fff; background: linear-gradient(115deg, #112544, #1d3f72 68%, #2563eb); box-shadow: 0 18px 34px rgba(24, 59, 111, .19); }
.hrms-hero__content { position: relative; z-index: 2; max-width: 650px; }.hrms-eyebrow,.panel-kicker { margin: 0 0 .4rem; font-size: .64rem; font-weight: 700; letter-spacing: .11em; }.hrms-eyebrow { color: #b9d3ff; }.hrms-eyebrow span { display: inline-block; width: 6px; height: 6px; margin-right: 7px; border-radius: 50%; background: #60a5fa; }.hrms-hero h1 { margin: 0 0 .5rem; color: #fff; font-size: clamp(1.55rem, 3vw, 2rem); }.hrms-hero p { margin: 0; color: #dce9ff; font-size: .9rem; }.hrms-hero__meta { display: flex; gap: 1.25rem; margin-top: 1.25rem; color: #dce9ff; font-size: .78rem; }.hrms-hero__meta i { margin-right: .25rem; }.hrms-hero__art { position: absolute; right: 7%; bottom: -13px; font-size: 9.7rem; line-height: 1; color: rgba(255,255,255,.12); }.hrms-orb { position: absolute; border-radius: 50%; border: 1px solid rgba(255,255,255,.16); }.hrms-orb--one { width: 240px; height: 240px; right: -90px; bottom: -85px; }.hrms-orb--two { width: 145px; height: 145px; right: 75px; bottom: 30px; }
.metric-card { display: flex; gap: .95rem; align-items: center; min-height: 126px; padding: 1.1rem; border: 1px solid var(--hrms-line); border-radius: 13px; background: #fff; box-shadow: 0 3px 12px rgba(15,23,42,.03); transition: transform .2s, box-shadow .2s; }.metric-card:hover { transform: translateY(-3px); box-shadow: 0 11px 22px rgba(15,23,42,.08); }.metric-card__icon { display: grid; width: 43px; height: 43px; place-items: center; border-radius: 11px; font-size: 1.35rem; }.metric-card span,.metric-card small { display: block; color: #64748b; font-size: .73rem; }.metric-card strong { display: block; margin: .12rem 0; color: var(--hrms-navy); font-size: 1.55rem; letter-spacing: -.04em; }.metric-card--blue .metric-card__icon { color: #2563eb; background: #eff6ff; }.metric-card--green .metric-card__icon { color: #059669; background: #ecfdf5; }.metric-card--red .metric-card__icon { color: #dc2626; background: #fef2f2; }.metric-card--amber .metric-card__icon { color: #d97706; background: #fffbeb; }
.holiday-notice { display: flex; align-items: center; gap: .6rem; padding: .82rem 1rem; border: 1px solid #fde68a; border-radius: 10px; color: #92400e; background: #fffbeb; font-size: .84rem; }.holiday-notice i { font-size: 1.15rem; }
.dashboard-panel { overflow: hidden; }.dashboard-panel__heading { display: flex; align-items: center; justify-content: space-between; min-height: 78px; padding: 1.2rem 1.25rem .9rem; }.dashboard-panel__heading h5,.quick-actions h5 { margin: 0; font-size: 1rem; }.panel-kicker { color: #94a3b8; }.panel-link { color: #2563eb; font-size: .75rem; font-weight: 650; }.panel-link i { font-size: 1rem; vertical-align: -2px; }
.attendance-ring { --ring-color: #10b981; display: grid; width: 143px; height: 143px; margin: .4rem auto 1rem; place-items: center; border-radius: 50%; background: conic-gradient(var(--ring-color) calc(var(--attendance) * 1%), #edf2f7 0); }.attendance-ring:before { position: absolute; width: 115px; height: 115px; border-radius: 50%; background: #fff; content: ''; }.attendance-ring div { z-index: 1; text-align: center; }.attendance-ring strong { display: block; color: var(--hrms-navy); font-size: 1.45rem; }.attendance-ring span { color: #94a3b8; font-size: .7rem; }.attendance-legend { display: flex; justify-content: center; gap: 1.3rem; color: #64748b; font-size: .76rem; }.attendance-legend b { margin-left: .2rem; color: #334155; }.legend-dot { display: inline-block; width: 7px; height: 7px; margin-right: .25rem; border-radius: 50%; }.legend-dot--green { background: #10b981; }.legend-dot--red { background: #f43f5e; }
.leave-list__row,.holiday-list__row,.announcement-list__row { display: flex; align-items: center; gap: .72rem; padding: .75rem 0; border-bottom: 1px solid #eef2f6; }.leave-list__row:last-child,.holiday-list__row:last-child,.announcement-list__row:last-child { border: 0; }.employee-initial,.table-person span { display: grid; flex: 0 0 auto; width: 31px; height: 31px; place-items: center; border-radius: 50%; color: #4338ca; background: #eef2ff; font-size: .7rem; font-weight: 700; }.leave-list__row strong,.holiday-list__row strong,.announcement-list__row strong { display: block; color: #334155; font-size: .8rem; }.leave-list__row span,.holiday-list__row span,.announcement-list__row span { display: block; color: #94a3b8; font-size: .7rem; }.leave-list__row time { margin-left: auto; color: #64748b; font-size: .72rem; }.empty-state { padding: 1.4rem; color: #94a3b8; text-align: center; font-size: .8rem; }.empty-state i { display: block; margin-bottom: .35rem; font-size: 1.6rem; color: #cbd5e1; }.empty-state p { margin: 0; }
.hrms-activity-table thead th { padding: .7rem 1.25rem; }.hrms-activity-table tbody td { padding: .82rem 1.25rem; font-size: .78rem; }.table-person { display: flex; align-items: center; gap: .55rem; color: #334155; font-weight: 600; }.table-person span { width: 27px; height: 27px; }.status-pill { display: inline-flex; align-items: center; gap: .35rem; padding: .28rem .5rem; border-radius: 20px; font-size: .68rem; font-weight: 650; }.status-pill i { width: 6px; height: 6px; border-radius: 50%; }.status-pill--present { color: #047857; background: #ecfdf5; }.status-pill--present i { background: #10b981; }.status-pill--absent { color: #b91c1c; background: #fef2f2; }.status-pill--absent i { background: #ef4444; }.date-box { display: grid; width: 38px; height: 40px; place-items: center; border: 1px solid #dbeafe; border-radius: 8px; color: #2563eb; background: #eff6ff; line-height: 1; }.date-box b { font-size: .86rem; }.date-box span { color: #2563eb; font-size: .58rem; font-weight: 700; text-transform: uppercase; }
.priority-dot { width: 8px; height: 8px; border-radius: 50%; }.priority-dot--high { background: #ef4444; box-shadow: 0 0 0 4px #fef2f2; }.priority-dot--medium { background: #f59e0b; box-shadow: 0 0 0 4px #fffbeb; }.priority-dot--low { background: #10b981; box-shadow: 0 0 0 4px #ecfdf5; }.priority-label { margin-left: auto; padding: .2rem .45rem; border-radius: 5px; color: #64748b !important; background: #f8fafc; font-size: .62rem !important; text-transform: uppercase; }.quick-actions { padding: 1.25rem; border-radius: 12px; color: #fff; background: linear-gradient(145deg, #172b4d, #263f70); }.quick-actions h5 { color: #fff; }.quick-actions .panel-kicker { color: #a7c7ff; }.quick-actions__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; margin-top: 1.1rem; }.quick-actions__grid a { display: flex; flex-direction: column; gap: .55rem; min-height: 90px; padding: .8rem; border: 1px solid rgba(255,255,255,.1); border-radius: 9px; color: #dbeafe; background: rgba(255,255,255,.06); font-size: .72rem; font-weight: 600; transition: .18s; }.quick-actions__grid a:hover { color: #fff; background: rgba(255,255,255,.13); transform: translateY(-2px); }.quick-actions__grid i { color: #93c5fd; font-size: 1.25rem; }
.attendance-ring { position: relative; }
@media (max-width: 575.98px) { .hrms-hero { padding: 1.4rem; }.hrms-hero__art { right: -10%; font-size: 7rem; }.hrms-hero__meta { gap: .5rem; flex-direction: column; }.dashboard-panel__heading { padding: 1rem; }.hrms-activity-table tbody td,.hrms-activity-table thead th { padding-left: .75rem; padding-right: .75rem; } }
