:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}#root{min-height:100svh}h1,h2,h3,p{margin:0}.app-header{background:#fff;border-bottom:1px solid #eaeaef;justify-content:space-between;align-items:center;padding:1.25rem 2rem;display:flex}.app-header__left{align-items:center;gap:1.5rem;display:flex}.app-header__nav-link{color:#00b0ff;font-size:.95rem;font-weight:600;text-decoration:none}.app-header__nav-link:hover{text-decoration:underline}.app-header__right{align-items:center;gap:2rem;display:flex}.app-header__user{align-items:center;gap:.75rem;display:flex}.app-header__user-name{color:#000;font-size:.95rem}.app-header__sign-out{font:inherit;color:#00b0ff;cursor:pointer;background:0 0;border:0;padding:0;font-size:.95rem;font-weight:600}.app-header__sign-out:hover{text-decoration:underline}.app-header__clock{flex-direction:column;align-items:flex-end;display:flex}.app-header__time{font-variant-numeric:tabular-nums;color:#000;font-size:1.5rem;font-weight:600}.app-header__date{color:#000;font-size:.85rem}.card-scan{flex-direction:column;align-items:center;gap:.6rem;width:100%;max-width:420px;display:flex}.card-scan__label{color:#4a4a5a;align-self:flex-start;padding-left:10px;font-size:.9rem;font-weight:600}.card-scan__row{gap:.75rem;display:flex}.card-scan__input{letter-spacing:.05em;border:2px solid #d9d9e3;border-radius:10px;outline:none;flex:1;padding:.85rem 1rem;font-size:1.25rem;transition:border-color .15s}.card-scan__input:focus{border-color:#ffbc00}.card-scan__button{color:#fff;cursor:pointer;background:#00b0ff;border:none;border-radius:10px;padding:.85rem 1.5rem;font-size:1rem;font-weight:600;transition:opacity .15s}.card-scan__button:hover{opacity:.9}.greeting-banner{text-align:center;border-radius:14px;width:100%;max-width:420px;padding:1.5rem;transition:background .2s}.greeting-banner--greeting{background:#e6f7ee;border:2px solid #34c77b}.greeting-banner--goodbye{background:#eef1fb;border:2px solid #5b6fd6}.greeting-banner--error{background:#fdeceb;border:2px solid #e6483e}.greeting-banner__name{color:#1a1a2e;margin:0 0 .35rem;font-size:1.1rem;font-weight:700}.greeting-banner__department{color:#6a6a7a;font-weight:400}.greeting-banner__text{color:#1a1a2e;margin:0 0 .35rem;font-size:1.15rem;font-weight:600}.greeting-banner__timestamp{color:#8a8a9a;margin:0;font-size:.8rem}.home-page{background:#fff;flex-direction:column;min-height:100vh;display:flex}.home-page__main{flex:1;padding:3rem 2rem;position:relative}.home-page__content{flex-direction:column;align-items:center;gap:1.5rem;width:100%;padding:0 2rem;display:flex;position:absolute;top:25%;left:50%;transform:translate(-50%)}.admin-sidebar{border-right:1px solid #eaeaef;flex-direction:column;flex-shrink:0;gap:.25rem;width:220px;padding:1.5rem 1rem;display:flex}.admin-sidebar__link{color:#4a4a5a;border-radius:8px;padding:.6rem .85rem;font-size:.9rem;font-weight:600;text-decoration:none}.admin-sidebar__link:hover{background:#f9f9fc}.admin-sidebar__link--active{color:#00b0ff;background:#e6f7ff}.admin-layout{background:#fff;flex-direction:column;min-height:100vh;display:flex}.admin-layout__body{flex:1;display:flex}.admin-layout__content{flex:1;min-width:0}.admin-page{padding:2rem}.admin-page__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.admin-page__title{color:#1a1a2e;font-size:1.3rem;font-weight:700}.admin-page__subtitle{color:#8a8a9a;margin-top:.15rem;font-size:.9rem}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.admin-toolbar__spacer{flex:1}.admin-search,.admin-select{font:inherit;color:#1a1a2e;background:#fff;border:1px solid #d9d9e3;border-radius:8px;outline:none;padding:.5rem .75rem;font-size:.9rem}.admin-search{min-width:240px}.admin-search:focus,.admin-select:focus{border-color:#00b0ff}.admin-btn{font:inherit;color:#00b0ff;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #00b0ff;border-radius:8px;padding:.5rem .9rem;font-size:.9rem;font-weight:600}.admin-btn:hover{background:#e6f7ff}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-btn--primary{color:#fff;background:#00b0ff}.admin-btn--primary:hover{opacity:.9;background:#00b0ff}.admin-btn--danger{color:#d92d20;border-color:#d92d20}.admin-btn--danger:hover{background:#fef3f2}.admin-btn--small{padding:.3rem .65rem;font-size:.8rem}.admin-table-wrapper{border:1px solid #eaeaef;border-radius:10px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #eaeaef;padding:.65rem 1rem}.admin-table thead th{color:#4a4a5a;background:#f9f9fc;font-weight:600}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table--clickable tbody tr{cursor:pointer}.admin-table--clickable tbody tr:hover{background:#f9f9fc}.admin-table .admin-table__num{text-align:right;font-variant-numeric:tabular-nums}.admin-table__muted{color:#8a8a9a}.admin-table__strong{color:#1a1a2e;font-weight:700}.admin-table__empty{text-align:center;color:#8a8a9a;padding:2rem 1rem}.admin-table .admin-table__actions{text-align:right}.admin-table__actions-inner{gap:.5rem;display:inline-flex}.admin-balance--positive{color:#0f9d6b}.admin-balance--negative{color:#d92d20}.admin-pill{white-space:nowrap;color:#4a4a5a;background:#f0f0f5;border-radius:999px;padding:.15rem .6rem;font-size:.78rem;font-weight:600;display:inline-block}.admin-pill--green{color:#0b7a53;background:#e3f7ee}.admin-pill--blue{color:#0086c3;background:#e6f7ff}.admin-pill--amber{color:#8a5d00;background:#fff4d6}.admin-pill--red{color:#b42318;background:#fee4e2}.admin-tiles{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.admin-tile{border:1px solid #eaeaef;border-radius:10px;padding:1rem 1.25rem}.admin-tile__label{color:#4a4a5a;font-size:.85rem;font-weight:600}.admin-tile__value{color:#1a1a2e;font-size:1.8rem;font-weight:700}.admin-section-title{color:#1a1a2e;margin:0 0 .75rem;font-size:1rem;font-weight:700}.admin-section{margin-bottom:2rem}.modal__backdrop{z-index:100;background:#1a1a2e80;justify-content:center;align-items:flex-start;padding:3rem 1.5rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:#fff;border-radius:14px;width:100%;max-width:480px;padding:1.5rem}.modal--wide{max-width:1000px}.modal__header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.modal__title{color:#1a1a2e;font-size:1.1rem;font-weight:700}.modal__close{color:#8a8a9a;cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.5rem;line-height:1}.modal__close:hover{color:#1a1a2e}.month-nav{align-items:center;gap:1rem;display:flex}.month-nav button{cursor:pointer;background:#fff;border:1px solid #d9d9e3;border-radius:8px;width:32px;height:32px;font-size:1.1rem}.month-nav button:hover{background:#f9f9fc}.month-nav__label{color:#1a1a2e;text-align:center;min-width:140px;font-size:1rem;font-weight:600}.admin-form{flex-direction:column;gap:.9rem;display:flex}.admin-form__field{flex-direction:column;gap:.35rem;display:flex}.admin-form__label{color:#4a4a5a;font-size:.85rem;font-weight:600}.admin-form__input,.admin-form__select{border:2px solid #d9d9e3;border-radius:8px;outline:none;padding:.6rem .75rem;font-family:inherit;font-size:1rem}.admin-form__input:focus,.admin-form__select:focus{border-color:#ffbc00}.admin-form__error{color:#d92d20;font-size:.8rem}.admin-form__checkbox-row{align-items:center;gap:.5rem;display:flex}.admin-form__actions{justify-content:flex-end;margin-top:.5rem;display:flex}.admin-form__button{cursor:pointer;border:none;border-radius:8px;padding:.6rem 1.25rem;font-size:.95rem;font-weight:600}.admin-form__button--primary{color:#fff;background:#00b0ff}.admin-form__button--primary:hover{opacity:.9}.timesheet-modal__toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.timesheet-modal__summary{background:#f9f9fc;border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1rem;padding:.85rem 1rem;display:grid}.timesheet-modal__summary>div{flex-direction:column;display:flex}.timesheet-modal__summary-label{color:#8a8a9a;font-size:.8rem}.timesheet-modal__summary strong{color:#1a1a2e;font-variant-numeric:tabular-nums;font-size:1.15rem}.timesheet-modal__summary strong.admin-balance--positive{color:#0f9d6b}.timesheet-modal__summary strong.admin-balance--negative{color:#d92d20}.timesheet-modal__row--off td{color:#b0b0c0;background:#fbfbfd}.timesheet-modal__row--editing td{background:#f4fbff}.timesheet-modal__edit{white-space:normal;flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.timesheet-modal__edit-date{align-self:center;min-width:90px}.timesheet-modal__edit-reason{flex:1;min-width:200px}.timesheet-modal__edit-actions{flex-wrap:wrap;gap:.5rem;display:flex}.timesheet-modal__edited{color:#8a8a9a;cursor:help;margin-left:.5rem;font-size:.75rem;font-style:italic}.day-details__empty{color:#8a8a9a;font-size:.9rem}.day-details{flex-direction:column;gap:.75rem;display:flex}.day-details__row{align-items:center;gap:.6rem;display:flex}.day-details__dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.day-details__name{color:#1a1a2e;font-weight:600}.day-details__meta{color:#8a8a9a;margin-left:auto;font-size:.85rem}.day-details__actions{flex-shrink:0;gap:.5rem;display:flex}.day-details__action{font:inherit;color:#00b0ff;cursor:pointer;background:0 0;border:none;padding:.15rem .3rem;font-size:.75rem;font-weight:600}.day-details__action:hover{text-decoration:underline}.day-details__action--danger{color:#e6483e}.day-details__edit-row{background:#f9f9fc;border-radius:8px;flex-direction:column;gap:.6rem;padding:.75rem;display:flex}.day-details__time-row{gap:.5rem;display:flex}.day-details__time-row .admin-form__field{flex:1}.day-details__edit-actions{align-items:center;gap:.75rem;display:flex}.day-details__cancel{font:inherit;color:#8a8a9a;cursor:pointer;background:0 0;border:none;font-size:.85rem}.day-details__cancel:hover{color:#1a1a2e}.shift-assignment__time-row{gap:.75rem;display:flex}.shift-assignment__time-row .admin-form__field{flex:1}.shift-assignment__mode{color:#1a1a2e;flex-wrap:wrap;gap:.5rem 1.1rem;font-size:.9rem;display:flex}.shift-assignment__mode-option{align-items:center;gap:.4rem;display:flex}.shift-assignment__weekdays{flex-wrap:wrap;gap:.4rem;display:flex}.shift-assignment__weekday{width:42px;height:36px;font:inherit;color:#4a4a5a;cursor:pointer;background:#fff;border:2px solid #d9d9e3;border-radius:8px;font-size:.8rem;font-weight:600}.shift-assignment__weekday:hover{border-color:#00b0ff}.shift-assignment__weekday--active{color:#fff;background:#00b0ff;border-color:#00b0ff}.admin-form__button:disabled{opacity:.5;cursor:not-allowed}.shift-assignment__hint{color:#8a8a9a;margin:-.4rem 0 0;font-size:.8rem}.admin-shifts__header-actions{align-items:center;gap:1rem;display:flex}.admin-shifts__legend{color:#4a4a5a;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem;font-size:.85rem;display:flex}.admin-shifts__legend-item{align-items:center;gap:.4rem;display:flex}.admin-shifts__dot{border-radius:50%;width:10px;height:10px;display:inline-block}.admin-shifts__calendar{border:1px solid #eaeaef;border-radius:10px;overflow:hidden}.admin-shifts__weekday-row,.admin-shifts__week{grid-template-columns:repeat(7,1fr);display:grid}.admin-shifts__weekday{text-align:center;color:#4a4a5a;background:#f9f9fc;border-bottom:1px solid #eaeaef;padding:.6rem;font-size:.8rem;font-weight:600}.admin-shifts__day{min-height:130px;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #eaeaef;border-top:none;border-left:none;border-radius:0;flex-direction:column;align-items:stretch;gap:.35rem;padding:.5rem;display:flex}.admin-shifts__day:hover{background:#f9f9fc}.admin-shifts__day--outside{color:#c9c9d9;background:#fbfbfd}.admin-shifts__day-number{font-size:.8rem;font-weight:600}.admin-shifts__entries{flex-direction:column;gap:.2rem;display:flex}.admin-shifts__chip{color:#fff;white-space:nowrap;text-overflow:ellipsis;border-radius:5px;padding:.1rem .4rem;font-size:.7rem;font-weight:600;overflow:hidden}.admin-shifts__chip--absence{opacity:.6}.absence-type-dot{border-radius:50%;width:10px;height:10px;margin-right:.5rem;display:inline-block}.spinner{justify-content:center;padding:4rem 0;display:flex}.spinner__ring{border:4px solid #eaeaef;border-top-color:#00b0ff;border-radius:50%;width:2.5rem;height:2.5rem;animation:.8s linear infinite spinner-rotate}@keyframes spinner-rotate{to{transform:rotate(360deg)}}
