@import "https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Roboto+Mono:wght@400;500&display=swap";
:root{--color-black:#000;--color-white:#fff;--color-concrete:#f3f4f6;--color-gray:#6b7280;--color-gray-dark:#111827;--color-neon:#cf0;--color-stali-green:#239f40;--color-orange:#f50;--color-rust:#b91c1c;--color-success:#cf0;--color-success-text:#000;--color-warning:#f50;--color-warning-text:#fff;--color-danger:#f50;--color-danger-text:#fff;--color-bg:#fff;--color-bg-alt:#f3f4f6;--color-bg-card:#fff;--color-bg-hover:#000;--color-text:#000;--color-text-secondary:#111827;--color-text-muted:#6b7280;--color-border:#000;--color-primary:#000;--color-action:#000;--color-bg-secondary:#f3f4f6;--color-surface:#f3f4f6;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--font-heading:"Oswald","Arial Black",sans-serif;--font-body:"Roboto Mono","Courier New",monospace;--font-size-xs:.7rem;--font-size-sm:.8rem;--font-size-base:.9rem;--font-size-lg:1rem;--font-size-xl:1.25rem;--font-size-2xl:1.875rem;--font-size-3xl:2.5rem;--font-size-4xl:3rem;--radius-sm:0;--radius-md:0;--radius-lg:0;--radius-xl:0;--radius-full:0;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--touch-target:48px;--header-height:64px;--bottom-nav-height:72px;--max-width:480px;--border-width:2px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-tap-highlight-color:transparent;font-size:16px}:focus-visible{outline:3px solid var(--color-neon);outline-offset:3px}body{font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;line-height:1.5;font-size:var(--font-size-base);width:100%;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.1em;font-weight:700;line-height:1.1}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}p{color:var(--color-text-secondary);font-family:var(--font-body)}a{color:var(--color-black);text-underline-offset:3px;text-decoration:underline}a:hover{background:var(--color-black);color:var(--color-white);text-decoration:none}.container{width:100%;max-width:var(--max-width);padding:0 var(--space-md);margin:0 auto}.page{min-height:100dvh;padding-top:calc(var(--header-height) + var(--space-xl));padding-bottom:calc(var(--bottom-nav-height) + var(--space-lg))}.page-header{margin-bottom:var(--space-xl)}.page-title{font-size:var(--font-size-2xl);margin-bottom:var(--space-xs)}.page-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted)}.section{margin-bottom:var(--space-xl)}.section-title{font-size:var(--font-size-lg);margin-bottom:var(--space-md);align-items:center;gap:var(--space-sm);display:flex}.card{background:var(--color-bg-card);padding:var(--space-lg);border:var(--border-width)solid var(--color-black);border-radius:0}.card-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:flex-start;display:flex}.card-title{font-size:var(--font-size-lg);font-weight:600}.card-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);min-height:var(--touch-target);padding:var(--space-sm)var(--space-lg);font-family:var(--font-heading);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.1em;border:var(--border-width)solid var(--color-black);cursor:pointer;background:var(--color-white);color:var(--color-black);border-radius:0;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--color-black);color:var(--color-white)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--color-black);color:var(--color-white)}.btn-primary:hover:not(:disabled){background:var(--color-white);color:var(--color-black)}.btn-secondary{background:var(--color-concrete);color:var(--color-black)}.btn-secondary:hover:not(:disabled){background:var(--color-black);color:var(--color-white)}.btn-success{background:var(--color-neon);color:var(--color-black);border-color:var(--color-black)}.btn-success:hover:not(:disabled){background:var(--color-black);color:var(--color-neon)}.btn-danger{background:var(--color-orange);color:var(--color-white);border-color:var(--color-orange)}.btn-danger:hover:not(:disabled){background:var(--color-black);color:var(--color-orange);border-color:var(--color-black)}.btn-ghost{color:var(--color-black);border:var(--border-width)solid transparent;background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--color-black)}.btn-block{width:100%}.btn-sm{min-height:36px;padding:var(--space-xs)var(--space-md);font-size:var(--font-size-xs)}.btn-lg{min-height:52px;padding:var(--space-md)var(--space-xl);font-size:var(--font-size-lg)}.form-group{margin-bottom:var(--space-lg)}.form-label{font-family:var(--font-heading);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs);color:var(--color-text);font-weight:700;display:block}.form-input{box-sizing:border-box;width:100%;max-width:100%;min-height:var(--touch-target);padding:var(--space-sm)var(--space-md);font-family:var(--font-body);color:var(--color-text);background:var(--color-white);border:var(--border-width)solid var(--color-black);border-radius:0;font-size:1rem;transition:all .2s;display:block}.form-input:focus{outline:3px solid var(--color-neon);outline-offset:0;background:var(--color-white);color:var(--color-black);border-color:var(--color-black)}.form-input::placeholder{color:var(--color-text-muted)}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-sm)center;padding-right:var(--space-2xl);background-size:20px}.form-textarea{resize:vertical;min-height:100px}.form-error{color:var(--color-danger);font-size:var(--font-size-sm);margin-top:var(--space-xs)}.form-message{background:#fff7ed;border:2px solid;padding:10px 12px;line-height:1.45}.form-message-info{color:var(--color-black);background:var(--color-concrete)}.form-hint{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-top:var(--space-xs)}.checkbox-wrapper{align-items:center;gap:var(--space-md);min-height:var(--touch-target);cursor:pointer;display:flex}.checkbox{appearance:none;border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);cursor:pointer;flex-shrink:0;width:28px;height:28px;transition:all .2s}.checkbox:checked{background:var(--color-success);border-color:var(--color-success);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:18px}.checkbox:focus{outline:none;box-shadow:0 0 0 3px #22c55e4d}.badge{align-items:center;gap:var(--space-xs);padding:2px var(--space-sm);font-family:var(--font-body);font-size:var(--font-size-xs);text-transform:uppercase;border:1px solid var(--color-black);border-radius:0;font-weight:700;display:inline-flex}.badge-success{background:var(--color-neon);color:var(--color-black)}.badge-warning{background:var(--color-orange);color:var(--color-white)}.badge-danger{background:var(--color-rust);color:var(--color-white)}.badge-info{background:var(--color-concrete);color:var(--color-black)}.badge-neutral{background:var(--color-bg-hover);color:var(--color-bg)}.stats-grid{gap:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}.stat-card{background:var(--color-white);padding:var(--space-lg);text-align:center;box-shadow:none;border:var(--border-width)solid var(--color-black);border-radius:0;transition:transform .2s,background .2s}.stat-card:hover{box-shadow:4px 4px 0 var(--color-black);background:var(--color-concrete);transform:translate(-4px,-4px)}.stat-icon{color:var(--color-text-muted);margin-bottom:var(--space-sm);justify-content:center;display:flex}.stat-value{font-size:var(--font-size-3xl);margin-bottom:var(--space-xs);font-weight:700;line-height:1}.stat-value.success{color:var(--color-success)}.stat-value.warning{color:var(--color-warning)}.stat-value.danger{color:var(--color-danger)}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.empty-state{text-align:center;padding:var(--space-2xl)var(--space-lg);color:var(--color-text-muted)}.empty-state-icon{margin-bottom:var(--space-md);opacity:.5;font-size:3rem}.empty-state-title{font-size:var(--font-size-lg);margin-bottom:var(--space-sm);color:var(--color-text-secondary)}.loading{padding:var(--space-2xl);justify-content:center;align-items:center;display:flex}.spinner{border:4px solid var(--color-concrete);border-top-color:var(--color-black);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--color-concrete)25%,#e0e0e0 50%,var(--color-concrete)75%);background-size:200% 100%;border-radius:4px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.toast-container{bottom:90px;left:var(--space-md);right:var(--space-md);z-index:9999;gap:var(--space-sm);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{padding:var(--space-sm)var(--space-md);font-family:var(--font-body);font-size:var(--font-size-sm);border:2px solid var(--color-black);letter-spacing:.02em;font-weight:500;animation:.18s ease-out toast-slide-in}.toast--success{background:var(--color-neon);color:var(--color-black)}.toast--error{background:var(--color-black);color:var(--color-white)}.toast--info{background:var(--color-white);color:var(--color-black)}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.header{height:var(--header-height);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border);z-index:100;background:#fffffff2;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.header-content{width:100%;max-width:var(--max-width);padding:0 var(--space-md);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.header-logo{font-size:var(--font-size-xl);color:var(--color-primary);align-items:center;gap:var(--space-sm);font-weight:700;display:flex}.header-user{align-items:center;gap:var(--space-sm);display:flex}.header-avatar{background:var(--color-black);color:#fff;width:40px;height:40px;font-weight:600;font-size:var(--font-size-sm);border:2px solid var(--color-black);border-radius:0;justify-content:center;align-items:center;text-decoration:none;display:flex}.header-avatar:hover{background:var(--color-neon);color:var(--color-black)}.bottom-nav{height:var(--bottom-nav-height);background:var(--color-white);border-top:var(--border-width)solid var(--color-black);z-index:100;padding-bottom:env(safe-area-inset-bottom,0);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-content{width:100%;max-width:var(--max-width);justify-content:space-around;align-items:center;display:flex}.bottom-nav-item{min-width:var(--touch-target);min-height:var(--touch-target);padding:var(--space-sm);color:var(--color-text-muted);border-right:1px solid var(--color-concrete);flex-direction:column;flex:1;justify-content:center;align-items:center;text-decoration:none;transition:all .2s;display:flex}.bottom-nav-item:last-child{border-right:none}.bottom-nav-item:hover{background:var(--color-black);color:var(--color-white)}.bottom-nav-item.active{background:var(--color-black);color:var(--color-neon);font-weight:700}.bottom-nav-icon{justify-content:center;align-items:center;margin-bottom:2px;font-size:1.5rem;display:flex}.bottom-nav-icon svg{width:24px;height:24px}.bottom-nav-label{font-size:var(--font-size-xs);font-weight:500}.task-card{background:var(--color-white);padding:var(--space-md);align-items:flex-start;gap:var(--space-md);border-bottom:var(--border-width)solid var(--color-black);border-radius:0;margin-bottom:0;transition:background .2s;display:flex}.task-card:hover{background:var(--color-bg-alt)}.task-card.done{opacity:.6}.task-content{flex:1;min-width:0}.task-title{font-size:var(--font-size-base);margin-bottom:var(--space-xs);font-weight:500}.task-card.done .task-title{color:var(--color-text-muted);text-decoration:line-through}.task-description{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-sm);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.task-meta{align-items:center;gap:var(--space-md);font-size:var(--font-size-xs);color:var(--color-text-muted);display:flex}.task-deadline{align-items:center;gap:var(--space-xs);display:flex}.task-deadline.overdue{color:var(--color-danger)}.task-deadline.today{color:var(--color-warning)}.leave-card{background:var(--color-white);padding:var(--space-lg);margin-bottom:var(--space-md);border:var(--border-width)solid var(--color-black);border-left-width:8px;border-left-color:var(--color-warning);border-radius:0}.leave-card.approved{border-left-color:var(--color-neon)}.leave-card.rejected{border-left-color:var(--color-rust)}.leave-request-card{border:var(--border-width)solid var(--color-black);box-shadow:none;border-radius:0}.leave-request-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.leave-request-type{align-items:center;gap:var(--space-sm);font-weight:600;font-size:var(--font-size-base);color:var(--color-text);display:flex}.leave-type-icon{color:var(--color-text-muted)}.leave-request-user{margin-bottom:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.leave-request-dates{padding:var(--space-sm)0;border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.leave-date-range{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.leave-days{font-size:var(--font-size-lg);color:var(--color-action);font-weight:700}.leave-days span{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:400}.leave-request-actions{gap:var(--space-sm);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border);display:flex}.leave-request-actions .btn{flex:1}.staff-card{background:var(--color-white);padding:var(--space-lg);margin-bottom:var(--space-md);border:var(--border-width)solid var(--color-black);border-radius:0}.staff-header{align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);display:flex}.staff-avatar{background:var(--color-black);width:48px;height:48px;color:var(--color-white);font-weight:700;font-size:var(--font-size-lg);border:1px solid var(--color-black);border-radius:0;justify-content:center;align-items:center;display:flex}.staff-info{flex:1}.staff-name{font-weight:600;font-size:var(--font-size-lg)}.staff-email{font-size:var(--font-size-sm);color:var(--color-text-muted)}.balance-controls{gap:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}.balance-control{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--space-md)}.balance-label{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-sm)}.balance-input-group{align-items:center;gap:var(--space-sm);display:flex}.balance-btn{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg);width:36px;height:36px;color:var(--color-text);font-size:var(--font-size-lg);cursor:pointer;justify-content:center;align-items:center;transition:background .2s,color .2s;display:flex}.balance-btn:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-bg)}.balance-btn:disabled{opacity:.35;cursor:not-allowed}.balance-value{text-align:center;font-size:var(--font-size-xl);flex:1;font-weight:600}.auth-page{min-height:100dvh;padding:max(var(--space-md),env(safe-area-inset-top))max(var(--space-md),env(safe-area-inset-right))max(var(--space-md),env(safe-area-inset-bottom))max(var(--space-md),env(safe-area-inset-left));flex-direction:column;justify-content:center;align-items:center;display:flex}.auth-card{background:var(--color-white);width:100%;max-width:420px;padding:clamp(20px,6vw,var(--space-xl));border:var(--border-width)solid var(--color-black);box-shadow:8px 8px 0 var(--color-black);border-radius:0}.auth-logo{justify-content:center;align-items:center;gap:var(--space-sm);text-align:center;font-family:var(--font-heading);font-size:var(--font-size-3xl);text-transform:uppercase;margin-bottom:var(--space-md);color:var(--color-black);-webkit-text-fill-color:initial;background:0 0;font-weight:700;display:flex}.auth-logo-link{text-decoration:none}.auth-logo-link:hover{color:var(--color-black);background:0 0}.auth-step-title{font-size:var(--font-size-2xl);text-align:center;margin-bottom:var(--space-sm)}.auth-icon{width:52px;height:52px;margin:0 auto var(--space-md);color:var(--color-black);background:var(--color-neon);border:2px solid var(--color-black);justify-content:center;align-items:center;display:flex}.auth-subtitle{text-align:center;color:var(--color-text-muted);font-family:var(--font-body);margin-bottom:var(--space-xl)}.auth-footer{text-align:center;margin-top:var(--space-lg);font-size:var(--font-size-sm);color:var(--color-text-muted);font-family:var(--font-body)}.auth-footer-stack{gap:var(--space-sm);flex-direction:column;display:flex}.auth-recovery-link{min-height:44px;margin-top:var(--space-md);justify-content:center;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);display:flex}.phone-field{width:100%;display:flex}.phone-prefix{min-height:var(--touch-target);padding:var(--space-sm)12px;color:var(--color-text-muted);background:var(--color-concrete);border:var(--border-width)solid var(--color-black);border-right:0;flex-shrink:0;align-items:center;font-size:1rem;display:flex}.phone-field .form-input{border-left:0;flex:1;min-width:0}.phone-field:focus-within{outline:3px solid var(--color-neon)}.phone-field .form-input:focus{outline:0}.pin-input{letter-spacing:.3em;font-variant-numeric:tabular-nums}.security-note{margin-bottom:var(--space-lg);background:var(--color-concrete);border-left:4px solid var(--color-black);align-items:flex-start;gap:10px;padding:12px;display:flex}.security-note svg{flex-shrink:0;margin-top:1px}.security-note p,.security-intro,.section-footnote{font-size:var(--font-size-sm);color:var(--color-text-muted)}.text-button{min-height:36px;color:var(--color-black);font:inherit;font-size:var(--font-size-sm);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:4px;text-decoration:underline}.text-button:disabled{color:var(--color-text-muted);cursor:not-allowed}.auth-success{text-align:center}.auth-success>svg{margin-bottom:var(--space-md);color:var(--color-black)}.auth-success p{margin:0 auto var(--space-xl);color:var(--color-text-muted)}.account-card{gap:var(--space-sm)var(--space-md);grid-template-columns:auto 1fr;align-items:center;display:grid}.account-avatar{background:var(--color-black);width:52px;height:52px;color:var(--color-white);font-family:var(--font-heading);font-size:var(--font-size-lg);letter-spacing:.08em;grid-row:span 2;justify-content:center;align-items:center;display:flex}.account-identity{flex-direction:column;display:flex}.account-identity strong{font-size:var(--font-size-lg)}.account-identity span{color:var(--color-text-muted);font-size:var(--font-size-sm);text-transform:capitalize}.account-detail{align-items:center;gap:var(--space-sm);color:var(--color-text-muted);font-size:var(--font-size-sm);display:flex}.security-card{padding:var(--space-lg)}.security-intro{margin-bottom:var(--space-lg)}.security-success{text-align:center}.security-success>svg{margin-bottom:var(--space-md)}.security-success h3{margin-bottom:var(--space-sm)}.security-success p{color:var(--color-text-muted);margin-bottom:var(--space-lg)}.section-footnote{margin-top:var(--space-sm)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:.3s ease-out fadeIn}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--color-text-muted)}.text-success{color:var(--color-neon);background:var(--color-black);padding:0 4px}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.img-grayscale{filter:grayscale()contrast(1.2);transition:filter .3s}.img-grayscale:hover{filter:grayscale(0%)contrast()}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.hidden{display:none}.decision-btn{padding:var(--space-md);font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;border:2px solid var(--color-black);width:100%;font-size:1.5rem;font-weight:700;transition:all .1s}.decision-btn:disabled{opacity:.5;cursor:not-allowed}.decision-btn-reject{background:var(--color-white);color:var(--color-black)}.decision-btn-reject:hover:not(:disabled){background:var(--color-black);color:var(--color-orange)}.decision-btn-approve{background:var(--color-black);color:var(--color-white)}.decision-btn-approve:hover:not(:disabled){background:var(--color-white);color:var(--color-black);box-shadow:inset 0 0 0 2px var(--color-neon);border-color:var(--color-neon)}@media (min-width:768px){:root{--max-width:640px}.stats-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:380px){.header-action-label{display:none}.header-user{gap:var(--space-xs)}.auth-card{padding:var(--space-lg);box-shadow:5px 5px 0 var(--color-black)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
