:root{--app-radius:16px;--app-sidebar-width:275px;--app-black:#050505;--app-white:#fff;--app-muted:#6c727f;--app-border:rgba(100,110,125,.18);--app-shadow:0 12px 35px rgba(15,23,42,.07)}
*{box-sizing:border-box}html,body{font-family:"Mulish",system-ui,-apple-system,"Segoe UI",sans-serif}.app-wrapper{min-height:100vh}.app-icon{display:inline-block;vertical-align:-.18em;fill:currentColor;flex:none}.app-header{min-height:66px;border-bottom:1px solid var(--app-border);backdrop-filter:blur(14px)}.app-header .navbar-brand{font-size:.98rem}.btn-icon{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;border:0;background:transparent;transition:.2s ease}.btn-icon:hover{transform:translateY(-1px);background:var(--bs-tertiary-bg)}.theme-symbol{font-size:1.35rem}.notification-dot{position:absolute;right:1px;top:0;min-width:18px;height:18px;padding:0 4px;border-radius:10px;background:#e11d48;color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center;border:2px solid var(--bs-body-bg)}.user-menu-toggle{display:flex;align-items:center;gap:9px;border:0;background:transparent;padding:4px 8px;border-radius:13px}.user-menu-toggle:hover{background:var(--bs-tertiary-bg)}.user-menu-toggle small{display:block;color:var(--app-muted);font-size:.72rem}.avatar-sm{width:38px;height:38px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:#111;color:#fff;font-weight:800;overflow:hidden}.avatar-sm img{width:100%;height:100%;object-fit:cover}.app-sidebar{width:var(--app-sidebar-width);border-right:1px solid var(--app-border)}.sidebar-brand{height:66px;border-bottom:1px solid var(--app-border)}.brand-link{display:flex;align-items:center;gap:11px;height:100%;padding:0 18px;color:inherit;text-decoration:none}.brand-mark{width:38px;height:38px;border-radius:12px;background:#050505;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:900;font-size:1.15rem}.brand-image{width:40px;height:40px;object-fit:contain;border-radius:10px}.brand-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-menu{padding:10px}.sidebar-menu .nav-link{display:flex;align-items:center;gap:12px;border-radius:12px;padding:11px 13px;margin:3px 0;color:var(--bs-body-color);transition:.18s ease}.sidebar-menu .nav-link:hover{background:var(--bs-tertiary-bg);transform:translateX(2px)}.sidebar-menu .nav-link.active{background:#050505;color:#fff;box-shadow:0 8px 22px rgba(0,0,0,.18)}[data-bs-theme="dark"] .sidebar-menu .nav-link.active{background:#fff;color:#050505}.sidebar-menu .nav-link p{margin:0;font-weight:650;font-size:.92rem}.app-main{background:var(--bs-tertiary-bg)}.app-content-header{padding:24px 8px 13px}.app-content-header h1{font-size:1.65rem;font-weight:800;letter-spacing:-.03em}.page-subtitle{color:var(--app-muted);font-size:.85rem}.app-footer{border-top:1px solid var(--app-border);font-size:.8rem}.app-card,.card{border:1px solid var(--app-border);border-radius:var(--app-radius);box-shadow:var(--app-shadow);overflow:hidden}.app-card .card-header{padding:17px 20px;background:var(--bs-body-bg);border-bottom:1px solid var(--app-border)}.app-card .card-body{padding:20px}.card-title{font-size:1rem;font-weight:800}.metric-card{position:relative;padding:22px;border-radius:var(--app-radius);background:var(--bs-body-bg);border:1px solid var(--app-border);box-shadow:var(--app-shadow);overflow:hidden;transition:.2s ease}.metric-card:hover{transform:translateY(-3px)}.metric-card .metric-icon{width:48px;height:48px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:#050505;color:#fff;margin-bottom:20px}.metric-card .metric-value{font-size:2rem;font-weight:900;letter-spacing:-.04em}.metric-card .metric-label{color:var(--app-muted);font-weight:650;font-size:.85rem}.metric-card:after{content:"";position:absolute;right:-30px;bottom:-50px;width:140px;height:140px;border-radius:50%;background:linear-gradient(135deg,transparent,rgba(100,100,100,.06))}.table{--bs-table-bg:transparent}.table th{font-size:.77rem;text-transform:uppercase;letter-spacing:.04em;color:var(--app-muted);font-weight:800;white-space:nowrap}.table td{vertical-align:middle;font-size:.88rem}.form-control,.form-select{border-radius:11px;border-color:var(--app-border);min-height:43px}.form-control:focus,.form-select:focus{box-shadow:0 0 0 .22rem rgba(0,0,0,.08);border-color:#777}.btn{border-radius:11px;font-weight:700}.btn-dark{background:#050505;border-color:#050505}.section-title{font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--app-muted);margin:22px 0 12px}.required:after{content:" *";color:#dc3545}.nav-tabs{border-bottom:1px solid var(--app-border);gap:4px}.nav-tabs .nav-link{border:0;border-radius:10px 10px 0 0;font-weight:700;color:var(--app-muted)}.nav-tabs .nav-link.active{color:var(--bs-body-color);background:var(--bs-body-bg);border-bottom:3px solid #050505}.timeline-simple{position:relative;padding-left:24px}.timeline-simple:before{content:"";position:absolute;left:7px;top:4px;bottom:4px;width:2px;background:var(--app-border)}.timeline-item{position:relative;padding:0 0 18px 12px}.timeline-item:before{content:"";position:absolute;left:-21px;top:4px;width:12px;height:12px;border-radius:50%;background:#050505;border:3px solid var(--bs-body-bg);box-shadow:0 0 0 2px #050505}.timeline-item small{color:var(--app-muted)}.attendance-table input,.attendance-table select{min-width:96px}.attendance-table .day-weekend{background:rgba(100,100,100,.06)}.pdf-shell{max-width:900px;margin:auto}.pdf-document{background:#fff;color:#111;padding:34px;min-height:1120px;border:1px solid #ddd}.pdf-document .pdf-header{display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid #111;padding-bottom:18px;margin-bottom:24px}.pdf-document .pdf-logo{max-width:140px;max-height:65px;object-fit:contain}.pdf-document table{width:100%;border-collapse:collapse}.pdf-document th,.pdf-document td{border:1px solid #bbb;padding:8px;font-size:12px}.pdf-signatures{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:55px;text-align:center}.pdf-signature{border-top:1px solid #333;padding-top:8px}.login-page{min-height:100vh;background:radial-gradient(circle at top right,rgba(255,255,255,.12),transparent 32%),#050505;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:440px;border-radius:22px;background:#fff;color:#111;box-shadow:0 30px 90px rgba(0,0,0,.35);padding:34px}.login-logo{display:flex;align-items:center;justify-content:center;height:68px;margin-bottom:18px}.login-logo img{max-width:190px;max-height:68px;object-fit:contain}.login-mark{width:62px;height:62px;border-radius:18px;background:#050505;color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:900}.login-card h1{font-size:1.45rem;font-weight:900}.login-card .form-control{background:#f8f8f9}.install-wrap{min-height:100vh;background:#050505;padding:40px 15px}.install-card{max-width:900px;margin:auto;background:#fff;color:#111;border-radius:22px;padding:32px;box-shadow:0 30px 80px #0008}.profile-photo{width:130px;height:130px;border-radius:24px;object-fit:cover;background:#eee}.empty-state{text-align:center;padding:55px 20px;color:var(--app-muted)}.empty-state .app-icon{width:58px;height:58px;margin-bottom:14px;opacity:.55}.fade-up{animation:fadeUp .35s ease both}@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(max-width:991.98px){.app-sidebar{width:var(--app-sidebar-width)}.app-content-header{padding-top:18px}.pdf-document{padding:18px;min-height:auto}}@media print{.no-print,.app-header,.app-sidebar,.app-footer,.app-content-header{display:none!important}.app-main{margin:0!important}.app-content{padding:0!important}.pdf-document{border:0;box-shadow:none;padding:0}.pdf-shell{max-width:none}.pdf-signatures{break-inside:avoid}}
