*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}Derhtml{font-size:16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.5;color:#333;background-color:#f8f9fa}.app-header{background-color:#fff;border-bottom:1px solid #e9ecef;padding:0 1.25rem;height:56px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 4px #0000001a}.app-header__title{font-size:1rem;font-weight:600;color:#333}.app-main{max-width:800px;margin:2.5rem auto;padding:0 1.25rem}.card{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.25rem;margin-bottom:1.5rem}.card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.card__title{font-size:1rem;font-weight:600;color:#333;margin-bottom:0}.btn--icon{width:2rem;height:2rem;padding:0;font-size:1.25rem;line-height:1;border-radius:50%;flex-shrink:0}.login-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:#f8f9fa}.login-card{width:100%;max-width:400px;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:40px}.login-card__heading{font-size:1.25rem;font-weight:700;text-align:center;color:#333;margin-bottom:.25rem}.login-card__subheading{font-size:.875rem;color:#666;text-align:center;margin-bottom:1.5rem}.form-group{display:flex;flex-direction:column;margin-bottom:1rem}label{display:block;font-size:1rem;font-weight:500;color:#333;margin-bottom:.5rem}label .required{color:#dc3545;margin-left:2px}input[type=text],input[type=password],input[type=date]{width:100%;padding:8px 12px;border:1px solid #ccc;border-radius:4px;font-size:1rem;color:#333;background-color:#fff;box-sizing:border-box;transition:border-color .2s}input[type=text]:focus,input[type=password]:focus,input[type=date]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}input.input--invalid{border-color:#dc3545}input.input--invalid:focus{box-shadow:0 0 0 2px #dc354540}.field-error{font-size:.875rem;color:#dc3545;margin-top:4px}.checkbox-group{display:flex;align-items:center;gap:8px;margin-bottom:1rem;cursor:pointer}.checkbox-group input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-group label{font-size:1rem;font-weight:400;margin-bottom:0;cursor:pointer}.form-actions{display:flex;gap:.625rem;margin-top:1.25rem;flex-wrap:wrap}button{padding:.625rem 1.25rem;border:none;border-radius:4px;font-size:1rem;font-weight:700;cursor:pointer;transition:background-color .2s}button:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.btn--primary{background-color:#007bff;color:#fff}.btn--primary:hover:not(:disabled){background-color:#0056b3}.btn--full{width:100%}.btn--ghost{background-color:#6c757d;color:#fff}.btn--ghost:hover:not(:disabled){background-color:#5a6268}.btn--danger{background-color:#dc3545;color:#fff;padding:.375rem .75rem;font-size:.875rem}.btn--danger:hover:not(:disabled){background-color:#c82333}.alert{padding:1rem;border-radius:4px;font-size:.875rem;margin-bottom:1rem;text-align:center}.alert--error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.alert--success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.875rem}thead th{background-color:#f8f9fa;font-weight:600;color:#333;text-align:left;padding:.75rem .5rem;border-bottom:1px solid #eee;white-space:nowrap;position:sticky;top:0}tbody tr{border-bottom:1px solid #eee}tbody tr:last-child{border-bottom:none}tbody tr:hover{background-color:#f8f9fa;cursor:default}tbody td{padding:.75rem .5rem;color:#333;vertical-align:middle}.table-empty{text-align:center;font-style:italic;color:#666;padding:1.25rem}.badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;white-space:nowrap}.badge--created{background-color:#cce5ff;color:#004085}.badge--feedback{background-color:#d4edda;color:#155724}.badge--cancelled{background-color:#e2e3e5;color:#383d41}.badge--error{background-color:#f8d7da;color:#721c24}.badge--submitted{background-color:#d6d8ff;color:#2d2fa0}.badge--absence{background-color:#e2d9f3;color:#4a2080}.badge--processed{background-color:#c3e6cb;color:#0d5120}@media(max-width:768px){html{font-size:14px}.app-main{margin:1.5rem auto;padding:0 1rem}.login-card{padding:1.5rem}.form-actions{flex-direction:column}.form-actions button{width:100%}thead th,tbody td{padding:.625rem .375rem;font-size:.75rem}}@media(max-width:480px){.app-main{padding:0 .625rem}}
