:root{--color-bg:#fff;--color-surface:#fff;--color-text:#1a1a1a;--color-text-muted:#6b7280;--color-border:#e5e7eb;--color-accent:#111827;--color-hover:#f3f4f6;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius:8px;--content-width:960px;--page-padding-x:1.25rem}@media (width>=640px){:root{--page-padding-x:2rem}}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden}img,picture,svg,video{max-width:100%;display:block}input,textarea,select,button{font:inherit;color:inherit}button{cursor:pointer}.page{width:100%;max-width:var(--content-width);padding:1.5rem var(--page-padding-x) 3rem;margin-inline:auto}.stack>*+*{margin-top:1rem}.user-welcome{align-items:center;gap:.85rem;display:flex}.user-welcome__greeting{color:var(--color-text-muted);font-size:.9rem}.user-welcome__name{color:var(--color-text);font-weight:600}.user-welcome__avatar{background-color:var(--color-accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.85rem;font-weight:600;display:flex}.user-welcome__logout{color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);background-color:#fff;padding:.45rem .9rem;font-size:.85rem;font-weight:500;transition:background-color .15s}.user-welcome__logout:hover{background-color:var(--color-hover)}.navbar{height:64px;padding:0 var(--page-padding-x);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:10;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.navbar__logo{letter-spacing:-.02em;color:var(--color-text);background:0 0;border:none;padding:0;font-size:1.35rem;font-weight:700}.navbar__logo span{color:var(--color-text-muted)}.landing{width:100%;max-width:var(--content-width);padding:clamp(2rem, 8vh, 4.5rem) var(--page-padding-x) 3rem;text-align:center;margin-inline:auto}.landing__intro{margin-bottom:2.5rem}.landing__title{letter-spacing:-.02em;color:var(--color-text);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700}.landing__subtitle{margin-top:.75rem;max-width:42ch;color:var(--color-text-muted);margin-inline:auto;font-size:1rem}.landing__choices{grid-template-columns:1fr;gap:1rem;max-width:640px;margin-inline:auto;display:grid}@media (width>=640px){.landing__choices{grid-template-columns:1fr 1fr}}.choice-card{text-align:left;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:calc(var(--radius) * 1.5);flex-direction:column;gap:.5rem;padding:1.75rem 1.5rem;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.choice-card:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 6px 20px #11182714}.choice-card__label{color:var(--color-text);font-size:1.15rem;font-weight:600}.choice-card__text{color:var(--color-text-muted);font-size:.9rem}.auth{padding:clamp(2rem, 8vh, 4.5rem) var(--page-padding-x) 3rem;justify-content:center;display:flex}.auth__card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:calc(var(--radius) * 1.5);width:100%;max-width:400px;padding:1.5rem}@media (width>=640px){.auth__card{padding:2rem}}.auth__title{letter-spacing:-.02em;color:var(--color-text);font-size:1.5rem;font-weight:700}.auth__subtitle{color:var(--color-text-muted);margin-top:.35rem;font-size:.9rem}.auth__form{flex-direction:column;gap:.85rem;margin-top:1.5rem;display:flex}.auth__input{border:1px solid var(--color-border);border-radius:var(--radius);background-color:#fff;width:100%;padding:.65rem .8rem;font-size:.95rem}.auth__input:focus{border-color:var(--color-accent);outline:none}.auth__submit{color:#fff;background-color:var(--color-accent);border-radius:var(--radius);border:none;width:100%;margin-top:.25rem;padding:.7rem 1rem;font-size:.95rem;font-weight:600;transition:opacity .15s}.auth__submit:hover{opacity:.9}.auth__submit:disabled{opacity:.55;cursor:not-allowed}.auth__message,.auth__error{border-radius:var(--radius);margin-top:1rem;padding:.6rem .8rem;font-size:.85rem}.auth__message{color:#14532d;background-color:#f0fdf4;border:1px solid #bbf7d0}.auth__error{color:#991b1b;background-color:#fef2f2;border:1px solid #fecaca}.auth__toggle{color:var(--color-text-muted);text-align:center;margin-top:1.25rem;font-size:.9rem}.auth__link{font-size:inherit;color:var(--color-text);background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.dashboard{width:100%;max-width:var(--content-width);padding:clamp(1.5rem, 5vh, 3rem) var(--page-padding-x) 3rem;margin-inline:auto}.dashboard__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.dashboard__title{letter-spacing:-.02em;color:var(--color-text);font-size:clamp(1.35rem,3vw,1.75rem);font-weight:700}.dashboard__subtitle{color:var(--color-text-muted);margin-top:.25rem;font-size:.9rem}.dashboard__actions{flex-wrap:wrap;gap:.75rem;display:flex}.btn-primary{color:#fff;background-color:var(--color-accent);border-radius:var(--radius);border:none;padding:.6rem 1.1rem;font-size:.9rem;font-weight:600;transition:opacity .15s}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.dashboard__stats{grid-template-columns:repeat(auto-fit,minmax(140px,200px));gap:1rem;margin-bottom:1.5rem;display:grid}.stat{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem}.stat__value{color:var(--color-text);font-size:1.5rem;font-weight:700}.stat__label{color:var(--color-text-muted);font-size:.8rem}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.filter{color:var(--color-text-muted);border:1px solid var(--color-border);background-color:#fff;border-radius:999px;padding:.4rem .9rem;font-size:.85rem;font-weight:500;transition:color .15s,background-color .15s,border-color .15s}.filter:hover{color:var(--color-text)}.filter--active{color:#fff;background-color:var(--color-accent);border-color:var(--color-accent)}.requests{flex-direction:column;gap:.75rem;display:flex}.request{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;padding:1rem 1.25rem;display:flex}.request__main{flex-direction:column;gap:.25rem;min-width:0;display:flex}.request__type{color:var(--color-text);text-transform:capitalize;font-weight:600}.request__dates{color:var(--color-text-muted);font-size:.85rem}.request__reason{color:var(--color-text-muted);font-size:.8rem;font-style:italic}.request__side{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.badge{text-transform:capitalize;border-radius:999px;padding:.2rem .6rem;font-size:.75rem;font-weight:600}.badge--pending{color:#92400e;background-color:#fef3c7}.badge--approved{color:#14532d;background-color:#dcfce7}.badge--rejected{color:#991b1b;background-color:#fee2e2}.btn-outline{color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);background-color:#fff;padding:.4rem .8rem;font-size:.8rem;font-weight:500;transition:background-color .15s}.btn-outline:hover{background-color:var(--color-hover)}.btn-outline:disabled{opacity:.55;cursor:not-allowed}.btn-danger{color:#991b1b;border-color:#fecaca}.btn-danger:hover{background-color:#fef2f2}.empty{text-align:center;color:var(--color-text-muted);background-color:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius);padding:2rem 1rem;font-size:.9rem}.alert-error{color:#991b1b;border-radius:var(--radius);background-color:#fef2f2;border:1px solid #fecaca;margin-bottom:1rem;padding:.6rem .8rem;font-size:.85rem}.reject-form{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1.25rem;padding:1.25rem}.reject-form__title{color:var(--color-text);margin-bottom:.75rem;font-weight:600}.reject-form__input{border:1px solid var(--color-border);border-radius:var(--radius);resize:vertical;width:100%;min-height:80px;padding:.6rem .8rem;font-size:.9rem}.reject-form__input:focus{border-color:var(--color-accent);outline:none}.reject-form__actions{flex-wrap:wrap;gap:.75rem;margin-top:.75rem;display:flex}.request-leave{padding:clamp(1.5rem, 6vh, 3.5rem) var(--page-padding-x) 3rem;justify-content:center;display:flex}.request-leave__card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:calc(var(--radius) * 1.5);width:100%;max-width:480px;padding:1.5rem}@media (width>=640px){.request-leave__card{padding:2rem}}.request-leave__title{letter-spacing:-.02em;color:var(--color-text);font-size:1.5rem;font-weight:700}.request-leave__balance{color:var(--color-text-muted);margin-top:.35rem;font-size:.9rem}.request-leave__balance strong{color:var(--color-text);font-weight:600}.request-leave__form{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}.field{flex-direction:column;gap:.35rem;display:flex}.field__label{color:var(--color-text);font-size:.85rem;font-weight:500}.field__control{border:1px solid var(--color-border);border-radius:var(--radius);background-color:#fff;width:100%;padding:.6rem .75rem;font-size:.95rem}.field__control:focus{border-color:var(--color-accent);outline:none}textarea.field__control{resize:vertical;min-height:90px}.field-row{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=480px){.field-row{grid-template-columns:1fr 1fr}}.request-leave__actions{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.request-leave__submit{color:#fff;background-color:var(--color-accent);border-radius:var(--radius);border:none;flex:1;min-width:140px;padding:.7rem 1rem;font-size:.95rem;font-weight:600;transition:opacity .15s}.request-leave__submit:hover{opacity:.9}.request-leave__submit:disabled{opacity:.55;cursor:not-allowed}.request-leave__cancel{color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);background-color:#fff;padding:.7rem 1rem;font-size:.95rem;font-weight:500;transition:background-color .15s}.request-leave__cancel:hover{background-color:var(--color-hover)}.request-leave__error{color:#991b1b;border-radius:var(--radius);background-color:#fef2f2;border:1px solid #fecaca;margin-top:1rem;padding:.6rem .8rem;font-size:.85rem}
