:root{--brand:#f5a623;--ink:#20252b;--surface:#f4f6f8}body{background:var(--surface);color:var(--ink)}.navbar-brand small{display:block;font-size:.68rem;font-weight:400}.sidebar{background:#fff}.sidebar .nav-link{color:#343a40;border-radius:.6rem;min-height:46px;padding:.72rem 1rem}.sidebar .nav-link:hover{background:#fff3cd}.btn,.form-control,.form-select{min-height:44px}.card{border:0;border-radius:1rem}.metric{border-left:5px solid var(--brand)}.attendance-card{border:2px solid #e8ebee;transition:border-color .15s,background-color .15s}.attendance-card.is-exception{border-color:#dc3545;background:#fff8f8}.exception-check{background:#f4f6f8;border-radius:.75rem;padding:.7rem .8rem .7rem 2.5rem}.exception-check .form-check-input{width:1.5rem;height:1.5rem;margin-top:0}.signature-box{border:2px dashed #6c757d;border-radius:.75rem;background:#fff;touch-action:none;overflow:hidden}.signature-box canvas{display:block;width:100%;height:180px;touch-action:none}.sticky-actions{position:sticky;bottom:0;background:rgba(255,255,255,.96);padding:.75rem;box-shadow:0 -4px 18px #0002;z-index:10}.leave-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#dee2e6;gap:1px}.leave-calendar-weekday{background:#f8f9fa;padding:.65rem;text-align:center;font-weight:700}.leave-calendar-day{background:#fff;min-height:130px;padding:.5rem;overflow:hidden}.leave-calendar-day.is-empty{background:#f1f3f5}.leave-calendar-day.is-today{box-shadow:inset 0 0 0 3px var(--brand)}.leave-calendar-number{font-weight:700;margin-bottom:.35rem}.leave-calendar-event{display:block;background:#fff3cd;color:#212529;border-left:4px solid var(--brand);border-radius:.35rem;padding:.3rem .4rem;margin-bottom:.3rem;text-decoration:none;font-size:.78rem;line-height:1.2}.leave-calendar-event span{display:block;color:#6c757d;margin-top:.15rem}@media(min-width:992px){.sidebar{position:fixed;top:62px;bottom:0;width:240px;border-right:1px solid #ddd}.main-content{margin-left:240px}}@media(max-width:991.98px){.offcanvas-lg{width:290px!important}.employee-table thead{display:none}.employee-table,.employee-table tbody,.employee-table tr,.employee-table td{display:block;width:100%}.employee-table tr{background:#fff;margin-bottom:1rem;padding:1rem;border-radius:1rem}.employee-table td{border:0;padding:.25rem}.leave-calendar{display:block;background:transparent}.leave-calendar-weekday{display:none}.leave-calendar-day{min-height:0;border-bottom:1px solid #ddd}.leave-calendar-day.is-empty{display:none}}

.register-sheet{background:#fff;color:#111;border-radius:.5rem;padding:12mm;margin-bottom:1rem;box-shadow:0 2px 12px #0001}.register-heading{display:grid;grid-template-columns:1fr 2fr 1fr;gap:1rem;align-items:start;margin-bottom:7mm;font-size:.9rem}.register-heading h1{font-size:1.2rem;margin:0 0 .35rem}.register-table{width:100%;border-collapse:collapse;font-size:.78rem}.register-table th,.register-table td{border:1px solid #111;padding:1.8mm;vertical-align:middle}.register-table th{text-align:center;background:#f0f0f0}.register-table tbody tr{height:13mm}.register-number{width:12mm}.register-time{width:16mm}.register-signature{width:34mm}.register-footer{display:grid;grid-template-columns:repeat(3,1fr);gap:12mm;margin-top:8mm;font-size:.82rem}.register-line{display:block;height:10mm;border-bottom:1px solid #111}

@media(max-width:991.98px){.register-sheet{overflow-x:auto}.register-table{min-width:950px}}

@media print{@page{size:A4 landscape;margin:8mm}body{background:#fff}.navbar,.sidebar,.register-controls{display:none!important}.main-content{margin:0!important}.main-content>.container-fluid{padding:0!important}.register-sheet{box-shadow:none;border-radius:0;padding:0;margin:0;page-break-after:always;break-after:page}.register-sheet-last{page-break-after:auto;break-after:auto}.register-heading{margin-bottom:5mm}.register-table{font-size:8pt}.register-table thead{display:table-header-group}.register-table tr{break-inside:avoid;page-break-inside:avoid}.register-table th,.register-table td{padding:1.2mm}.register-table tbody tr{height:11mm}.register-footer{margin-top:5mm}}

.theme-toggle,.install-app-button{min-height:36px;white-space:nowrap}
.brand-icon{border-radius:10px;box-shadow:0 2px 8px #0006;flex:0 0 auto}
.employee-accordion{display:grid;gap:.65rem}.employee-accordion .accordion-item{border:0;border-radius:1rem!important;overflow:hidden}.employee-accordion .accordion-button{min-height:58px;font-size:1.02rem}.employee-accordion .accordion-button:not(.collapsed){background:#fff3cd;color:#20252b;box-shadow:none}.employee-accordion .accordion-body{border-top:1px solid var(--bs-border-color)}
[data-bs-theme="dark"] body{background:#101418;color:#edf1f4}
[data-bs-theme="dark"] .sidebar{background:#171d22;border-color:#303840!important}
[data-bs-theme="dark"] .sidebar .nav-link{color:#e8ecef}
[data-bs-theme="dark"] .sidebar .nav-link:hover{background:#3a321f;color:#fff}
[data-bs-theme="dark"] .card{--bs-card-bg:#1b2228;--bs-card-color:#edf1f4}
[data-bs-theme="dark"] .attendance-card{border-color:#35404a}
[data-bs-theme="dark"] .attendance-card.is-exception{border-color:#dc3545;background:#311d20}
[data-bs-theme="dark"] .exception-check{background:#252d34}
[data-bs-theme="dark"] .sticky-actions{background:rgba(27,34,40,.96)}
[data-bs-theme="dark"] .leave-calendar{background:#3b454e}
[data-bs-theme="dark"] .leave-calendar-weekday{background:#252d34}
[data-bs-theme="dark"] .leave-calendar-day{background:#1b2228}
[data-bs-theme="dark"] .leave-calendar-day.is-empty{background:#151a1f}
[data-bs-theme="dark"] .leave-calendar-event{background:#3a321f;color:#fff2c2}
[data-bs-theme="dark"] .leave-calendar-event span{color:#c4cbd1}
[data-bs-theme="dark"] .alert-light{--bs-alert-bg:#252d34;--bs-alert-color:#edf1f4;--bs-alert-border-color:#3b454e}
[data-bs-theme="dark"] .text-dark{color:#edf1f4!important}
[data-bs-theme="dark"] .table{--bs-table-bg:transparent;--bs-table-color:#edf1f4;--bs-table-border-color:#35404a}
[data-bs-theme="dark"] .register-sheet{background:#fff;color:#111}
[data-bs-theme="dark"] .employee-accordion .accordion-button:not(.collapsed){background:#3a321f;color:#fff2c2}
.attendance-compact-list{display:grid;gap:.65rem}.attendance-compact-header{display:flex;align-items:center;gap:.75rem;min-height:62px;padding:.45rem .7rem .45rem 1rem}.attendance-name-button{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex:1;align-self:stretch;border:0;background:transparent;color:inherit;text-align:left;font-size:1rem}.attendance-chevron{font-size:1.35rem;color:#6c757d;transition:transform .2s}.attendance-name-button[aria-expanded="true"] .attendance-chevron{transform:rotate(180deg)}.attendance-absent-check{flex:0 0 auto;margin:0;padding:.55rem .75rem .55rem 2.55rem}.attendance-card .card-body{padding-top:1rem}

@media screen{
    :root,[data-bs-theme="light"]{--neo-bg:#edf2f7;--neo-panel:rgba(255,255,255,.78);--neo-panel-solid:#fff;--neo-border:rgba(65,82,101,.16);--neo-text:#17212b;--neo-muted:#637282;--neo-glow:rgba(245,166,35,.24);--neo-shadow:0 18px 45px rgba(30,45,60,.10);--neo-input:rgba(255,255,255,.88)}
    [data-bs-theme="dark"]{--neo-bg:#080d13;--neo-panel:rgba(19,27,36,.82);--neo-panel-solid:#131b24;--neo-border:rgba(152,174,195,.15);--neo-text:#edf5fb;--neo-muted:#94a7b9;--neo-glow:rgba(245,166,35,.22);--neo-shadow:0 22px 60px rgba(0,0,0,.34);--neo-input:rgba(10,16,23,.78)}
    html{scroll-behavior:smooth}
    body{min-height:100vh;background-color:var(--neo-bg)!important;background-image:radial-gradient(circle at 88% 5%,rgba(245,166,35,.13),transparent 28rem),radial-gradient(circle at 12% 88%,rgba(35,164,173,.10),transparent 32rem);background-attachment:fixed;color:var(--neo-text);font-family:"Segoe UI Variable","Segoe UI",system-ui,-apple-system,sans-serif;letter-spacing:.005em}
    .navbar{min-height:64px;background:linear-gradient(115deg,rgba(11,17,24,.98),rgba(30,38,47,.96) 58%,rgba(70,51,17,.94))!important;border-bottom:1px solid rgba(255,255,255,.09);box-shadow:0 10px 30px rgba(0,0,0,.22);backdrop-filter:blur(18px)}
    .navbar-brand strong{letter-spacing:.035em}.navbar-brand small{color:#b9c5cf}.brand-icon{box-shadow:0 0 0 1px rgba(255,255,255,.18),0 0 22px rgba(245,166,35,.32)}
    .sidebar{background:linear-gradient(180deg,var(--neo-panel-solid),color-mix(in srgb,var(--neo-panel-solid) 91%,#101820))!important;border-right:1px solid var(--neo-border)!important;box-shadow:14px 0 42px rgba(20,31,42,.08);backdrop-filter:blur(22px)}
    .sidebar .nav{gap:.28rem}.sidebar .nav-link{display:flex;align-items:center;gap:.75rem;color:var(--neo-muted)!important;border:1px solid transparent;border-radius:13px;transition:background .18s,border-color .18s,color .18s,transform .18s,box-shadow .18s}.sidebar .nav-link:hover{background:color-mix(in srgb,var(--brand) 12%,transparent)!important;border-color:color-mix(in srgb,var(--brand) 25%,transparent);color:var(--neo-text)!important;transform:translateX(3px)}
    .sidebar .nav-link.active{background:linear-gradient(100deg,rgba(245,166,35,.18),rgba(245,166,35,.06))!important;border-color:rgba(245,166,35,.42);color:var(--neo-text)!important;box-shadow:0 8px 24px var(--neo-glow)}
    .nav-orb{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:color-mix(in srgb,var(--neo-muted) 52%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--neo-muted) 8%,transparent)}.nav-link.active .nav-orb{background:var(--brand);box-shadow:0 0 0 5px rgba(245,166,35,.14),0 0 15px var(--brand)}
    .main-content{position:relative}.main-content>.container-fluid{max-width:1680px}
    .main-content h1,.main-content h2,.main-content h3{letter-spacing:-.025em}.main-content h1{font-weight:750}
    .card,.accordion-item,.modal-content{background:var(--neo-panel)!important;border:1px solid var(--neo-border)!important;box-shadow:var(--neo-shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
    .card{border-radius:18px}.card-body{position:relative}.metric{border-left:0!important;overflow:hidden}.metric::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,#ffc34d,#f28b18);box-shadow:0 0 18px var(--brand)}.metric .display-6{font-weight:760;color:color-mix(in srgb,var(--brand) 86%,var(--neo-text))}
    .btn{border-radius:12px;font-weight:650;letter-spacing:.01em;transition:transform .15s,box-shadow .15s,filter .15s}.btn:hover{transform:translateY(-1px)}.btn-warning{background:linear-gradient(135deg,#ffbd42,#f29a18);border-color:#f5a623;color:#17120a;box-shadow:0 8px 20px rgba(245,166,35,.2)}.btn-warning:hover{filter:brightness(1.04);box-shadow:0 10px 28px rgba(245,166,35,.32)}.btn-dark{background:linear-gradient(135deg,#263440,#111820);border-color:#354553;box-shadow:0 8px 20px rgba(0,0,0,.16)}.btn-outline-dark{border-color:color-mix(in srgb,var(--neo-text) 38%,transparent);color:var(--neo-text)}.btn-outline-dark:hover{background:var(--neo-text);color:var(--neo-bg)}
    .form-control,.form-select{background-color:var(--neo-input);border:1px solid var(--neo-border);border-radius:12px;color:var(--neo-text);box-shadow:inset 0 1px 0 rgba(255,255,255,.04);transition:border-color .15s,box-shadow .15s,background .15s}.form-control:focus,.form-select:focus{background-color:var(--neo-panel-solid);border-color:rgba(245,166,35,.72);box-shadow:0 0 0 .24rem rgba(245,166,35,.14),0 0 24px rgba(245,166,35,.10);color:var(--neo-text)}.form-check-input:checked{background-color:var(--brand);border-color:var(--brand);box-shadow:0 0 12px rgba(245,166,35,.28)}
    .table{--bs-table-bg:transparent;--bs-table-color:var(--neo-text);--bs-table-border-color:var(--neo-border)}.table>thead th{color:var(--neo-muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.07em}.table>tbody>tr{transition:background .15s}.table>tbody>tr:hover{background:color-mix(in srgb,var(--brand) 7%,transparent)}
    .accordion{--bs-accordion-bg:transparent;--bs-accordion-color:var(--neo-text);--bs-accordion-border-color:var(--neo-border);--bs-accordion-btn-bg:transparent;--bs-accordion-btn-color:var(--neo-text);--bs-accordion-active-bg:rgba(245,166,35,.12);--bs-accordion-active-color:var(--neo-text)}.employee-accordion .accordion-item{box-shadow:0 10px 30px rgba(20,31,42,.08)}
    .attendance-card{background:var(--neo-panel)!important;border-color:var(--neo-border);box-shadow:0 8px 25px rgba(20,31,42,.07)}.attendance-card:hover{border-color:rgba(245,166,35,.32)}.attendance-card.is-exception{border-color:rgba(220,53,69,.66);box-shadow:0 10px 30px rgba(220,53,69,.12)}.attendance-compact-header{background:linear-gradient(90deg,transparent,rgba(245,166,35,.025))}.attendance-name-button:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:9px}
    .modal-backdrop.show{opacity:.68;backdrop-filter:blur(5px)}.modal-content{border-radius:22px}.modal-header,.modal-footer{border-color:var(--neo-border)}
    .alert{border-radius:14px}.badge{border-radius:999px;padding:.48em .7em;letter-spacing:.025em}.text-secondary{color:var(--neo-muted)!important}
    .offcanvas-header{border-bottom:1px solid var(--neo-border)}
    ::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--neo-muted) 45%,transparent);border:3px solid transparent;background-clip:padding-box;border-radius:20px}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--brand) 75%,transparent);border:3px solid transparent;background-clip:padding-box}
}
@media screen and (min-width:992px){.sidebar{top:64px;width:252px}.main-content{margin-left:252px}}
@media screen and (max-width:991.98px){.sidebar{background:var(--neo-panel-solid)!important}.main-content>.container-fluid{padding-bottom:5rem!important}}
@media print{[data-bs-theme="dark"] body{background:#fff;color:#111}[data-bs-theme="dark"] .register-sheet{background:#fff;color:#111}}
